שימוש ב - matlab יחד עם Condor

ישנן שתי אפשרויות להריץ script-ים של matlab ב- condor . אפשרות אחת היא ע"י הרצה של matlab שללא ממשק גרפי תריץ את הסקריפט. זה יעשה ע"י הרצה של:

'(...,matlab -nodisplay -nojvm -nosplash -r 'func(arg1,arg2

או:

'... matlab -nodisplay -nojvm -nosplash -r 'func arg1 arg2

בדרך זו יש להוסיף את הפקודה "quit" בסוף סקריפט הmatlab, מכיוון שאחרת matlab ממשיך לפעול (ולחכות לפקודות) לאחר ביצוע הסקריפט (למרות שבהרצה ב condor כשלא מספקים input לא יהיה קלט לmatlab והוא ייסגר). אם הסקריפט מהווה פונקציה (השורה הראשונה בקובץ היא function func_name) זכרו שהיא לא תחזור לכן אם יש צורך בהדפסה למסך של הערך המוחזר, יש לבצע זאת בתוך הפונקציה לפני quit.

קבצי דוגמה: סקריפט matlab להרצה- mult.m קובץ להורדה,סקריפט להרצת הסקריפט הקודם- run.csh  קובץ להורדה,קובץ הגשה ל condor (יש לשנות את השורה הראשונה שתכיל את ה path עד לקובץ כמו בפלט הפקודה pwd בטרמינל)- run.cmd קובץ להורדה. יש לשים את כל הקבצים באותה ספריה.

 

דרך שניה להריץ script-ים של matlab ב- condor היא ע"י היפוך של ה-script למודול מקומפל ואז ניתן להריצו באמצעות condor.

יש להכין את קובץ ההרצה ב-matlab בפורמט של פונקציה (ניתן לעשות זאת ע"י הוספת השורה { function {function name בתחילת הקובץ). ניתן להוריד את הקובץ דוגמא sample.m קובץ להורדה

אשר מגריל 2 מטריצות, כופל אותן ובודק את מימדי המטרציה החדשה.

הפיכת ה-script לתכנית C וקימפול התכנית ע"י הפקודה: mcc -m sample.m (בכדי להראות פרטים: mv-) ולאחר הקימפול יהיה מודול מוכן להרצה (קובץ להרצה sample וקובץ נוסף הכרחי sample.ctf ).

כעת ניתן להריץ את הקובץ שהכנו. לצורך כך נכין script חדש ובו נגדיר את משתנה הסביבה LD_LIBRARY_PATH שיכלול את הספריות הדרושות:

  • <matlab_root>/sys/os/glnx86
  • <matlab_root>/bin/glnx86
  • <matlab_root>/sys/java/jre/glnx86/jre1.5.0/lib/i386/native_threads
  • <matlab_root>/sys/java/jre/glnx86/jre1.5.0/lib/i386/client
  • <matlab_root>/sys/java/jre/glnx86/jre1.5.0/lib/i386

כאשר matlab_root הוא /usr/local/stow/matlab-7.0.4-R14SP2/lib/matlab-7.0.4-R14SP2 בנוסף נגדיר שני משתנים נוספים: XAPPLRESDIR=<matlab_root>/X11/app-defaults , ו- LD_PRELOAD=/lib/libgcc_s.so.1 וכעת ניתן לשלוח את העבודה לריצה ככל עבודה אחרת. קבצי דוגמה והסבר מפורט יותר מופיעים בקישור הבא: matlab_in_condor.zip קובץ להורדה, כאשר סקריפט ההרצה הוא multi.sh וקובץ ההגשה לcondor הוא multi.cmd