מערכת התורים PBS

הגדרה ותפקידים ראשיים

הגדרה: PBS הינה מע' לפיצול עומס עבודת חישובים. המע' מטפלת, מנהלת ומפקחת על עומס עבודת החישובים במערך מחשבים

תורים: משתמשים שולחים תוכניות אל מערכת ניהול המשאבים אשר מפנה אותם אל התורים. הן ממתינות בתורים עד שהמערכת פנויה להריצן.

תזמון: תהליך בחירת המשימות, מיקום הריצה ומועד נקבע ע"י נוהלים מוגדרים מראש. המטרה היא לאזן בין צרכי חישוב ומטרות המערכת תוך הגדלת יעילות השימוש במשאבים.

ניטור: מעקב ושימור משאבי המערכת, הבטחת נוהלי שימוש, תוך התחשבות בנוהלי שימוש בתוכנות ומגבלות שימוש של משתמשים ומנהלי מערכת. מעקב וניטור נוהלי תזמון.

 

שילוח של תהליך לתור: פקודת qsub

qsub הינה פקודה אשר משמשת למשלוח תהליך אל תור של מערכת PBS. בעת משלוח התהליך אל התור יש לפרט מהם המשאבים המבוקשים ומאפיינים נוספים של התהליך. נתונים אלו יוגדרו בקובץ הביצוע. תחביר הפקודה המומלץ בשרת זאוס:

> qsub [options] scriptfile

קבצי ביצוע של PBS הינם מסוג (shell script) ויש למקמם בחוצץ של המשתמש. פרטים נוספים על פקודה זו ניתן לראות באמצעות הפקודה

> man qsub

מזהה התהליך (JOB_ID): לאחר שילוח מוצלח של התהליך אל התור, מתקבל מזהה תהליך בפורמט הבא:

> sequence_number.server_name
> 12345.zeus

 

מבנה קובץ סקריפט התהליך

הקובץ יהיה מסוג (shell): bin/bash/!#

פרמטרים אשר נשלחים אל שרת התורים PBS מתחילים בתווים "PBS#".

הקובץ מכיל שמות קבצים ו/או פקודות:

משתני סביבה

מאפייני קלט/פלט

פקודות לביצוע

 

שורות נוספות המתחילות ב # הינן הערות

 

דוגמא לסקריפט עבור שימוש במס' ליבות ב PBS

#!/bin/sh
#PBS  -N  job_name
#PBS  -q  queue_name
#PBS  -m  abe
#PBS  -M  user@technion.ac.il
#PBS  -l select=1:ncpus=N
#PBS  -l select=mem=P GB
#PBS  -l walltime=24:00:00
PBS_O_WORKDIR=$HOME/mydir
cd $PBS_O_WORKDIR
./program.exe < input.file > output.file 2>&1

ניתן להשתמש במחולל סקריפט להרצת תהליך PBS כאן

 

בדיקת מצב התהליך/התור באמצעות הפקודה qstat

הפקודה qstat משמשת לבחינת מצב התורים, תהליכי אצווה ושרתים

מידע מפורט לשימוש באמצעות הפקודה: man qstat

שימושים נפוצים בפקודה:

qstat -a : פרט כל התהליכים הממתינים בכל התורים

qstat -1n : כל התהליכים במערכת עם שמות הצמתים

qstat -f jobID : מידע מפורט עבור תהליך

qstat -q : מצב כל התורים במערכת

qstat -qf queueName : מידע מפורט לגבי תור ספציפי

qstat -1Gn queueName : כל התהליכים הרצים על תור ספציפי כולל שמות צמתים

 

מחיקת תהליך מתור באמצעות הפקודה qdel

הפקודה qdel משמשת למחיקת תהליך מתור או בעת ריצה. כל חלקי התהליך נפסקים בעת שימוש בפקודה. רק המשתמש או האדמיניסטרטור יכולים למחוק תהליך ב PBS.

מידע מפורט לשימוש באמצעות הפקודה: man qdel

מידע שימושי

qdel jobID : מחיקת תהליך מתור

qdel -W force jobID : מחיקת תהליך בכח בעת ריצה

 

בדיקת תוצאות ופתרון בעיות

שמרו מס' תהליך לצורך בדיקות עתידיות

בדקו הודעות שגיאה וקבצי פלט בקבצים בשם: jobName.jobID, jobName.jobID

בדיקת פרטי תהליך, גם לאחר N ימים: tracejob [-n N] jobID

תהליך במצב E תופס משאבים ויימחק

 

הרצת תהליך במצב אינראקטיבי לצורך בדיקת שגיאות: qsub -I pbs_script

התהליך נשלח אל התור. כשמתחיל לרוץ מפעיל את הפקודות שמיועדות ל PBS וממתין לתגובת המשתמש/ת. במצב זה ניתן להפעיל את הפקודות אחת אות ולראות את תגובת המערכת על המסך וכך לקבל מידע נוסף על המופיע בקובץ הפלט.

 

בדיקת התהליך בעת הריצה

כניסה לצומת: ssh node_name

בחינת התהליכים הרצים בצומת : top /u login

בדיקת ניצולת המעבד: top /u login /1

הסרת תהליך מצומת: kill -9 PID

בדיקת שגיאות, פלט ושאר קבצים בבעלות המשתמש/ת: ls -rtl /gtmp

 

ניתן להעתיק את הפלט מהצומת אל תיקית הבית.