Αρχική σελίδα » Τεχνική Υποστήριξη » Εκτέλεση προγραμμάτων » Σύστημα ουρών Torque - Εντολές στο xt cluster

Σύστημα ουρών Torque - Εντολές στο xt cluster

Για να εκτελέσουμε τα προγράμματά μας στο xt cluster προχωρούμε στα εξής βήματα:

Κάνουμε login στην μηχανή xt20.cc.uoa.gr. Το login γίνεται μέσω κάποιου προγράμματος secure shell πρωτοκόλλου (SSH).

Ο χρήστης αναπτύσσει στην login (front-end) μηχανή τα προγράμματά του και χρησιμοποιεί τους διαθέσιμους μεταφραστές gcc/c++,  gfortran, intel fortran και mpicc (MPI για παράλληλη επεξεργασία).

Αφού σχηματιστεί το εκτελέσιμο πρόγραμμα, αυτό υποβάλεται για εκτέλεση  σε ένα απο τα μηχανήματα xt21, xt22, xt23, xt24 ή xt25 (που είναι οι υπολογιστικοί κόμβοι του cluster), μέσω του συστήματος ουρών  Torque-PBS. Υπάρχουν τρείς (3) ουρές:

  • parallel για προγράμματα (jobs) με απαιτήσεις περισσότερες της μιάς CPU (core) (4 jobs ανά χρήστη και όριο χρόνου 25 μέρες)
  • serial για προγράμματα για μία CPU (8 jobs ανά χρήστη και όριο χρόνου 25 μέρες)
  • short και στα δύο συστήματα για προγράμματα για μία CPU (4  εκτελέσεις ανά  χρήστη και όριο χρόνου 2 ώρες). Η ουρά αυτή χρησιμοποιείται κυρίως για δοκιμές.

Κάθε χρήστης έχει δικαίωμα εκτέλεσης μέχρι 8 εργασιών (jobs) στο σύστημα. Ο χρήστης μπορεί να υποβάλλει, να παρακολουθεί ή να διαγράφει εργασίες (jobs) από το BATCH σύστημα ουρών, χρησιμοποιώντας  τις παρακάτω εντολές (πάντα στο xt20):

Qsub  - Υποβολή εργασιών

 qsub  myscript.pbs

όπου myscript είναι το script file που περιέχει μέσα  τα #PBS  directives (παράμετροι υποβολής)  και την εντολή κλήσης του  εκτελέσιμου  στην μηχανή εκτέλεσης.  Τα directives είναι η άλλη μορφή των επιλογών του qsub στη γραμμή εντολής.

Για παράδειγμα με την εντολή:

qsub -q parallel myscript.pbs

υποβάλλουμε το πρόγραμμα στην ουρά parallel. Αν δεν προσδιορίσουμε όνομα ουράς - oύτε εκεί, ούτε μέσα στο script  - η τρέχουσα ουρά (default) είναι η serial, ενώ με την εντολή:

qsub -lnodes=1:ppn=2 myscript.pbs

δεσμεύουμε 2 επεξεργαστές (cores) στη μηχανή εκτέλεσης.

Με την υποβολή της εργασίας, το σύστημα επιστρέφει έναν αριθμό, ο οποίος είναι το job id της εργασίας μας.

Προσοχή
Με τα  #PBS directives δεσμεύουμε μόνο τους υπολογιστικούς πόρους (αριθμό επεξεργαστών, μνήμη κλπ.) για την εργασία μας.
Ένα εκτελέσιμο πρόγραμμα για να τρέξει παράλληλα, θα πρέπει να είναι ήδη παραλληλοποιημένο και να δηλωθεί με τον αντίστοιχο για κάθε πρόγραμμα τρόπο. Αυτό είναι σημαντικό να το γνωρίζουμε για τις παράλληλες εκδόσεις των πακέτων λογισμικού, που θέλουμε τα εκτελέσουμε.

Παρακάτω είναι τα παραδείγματα  script για αντίστοιχες περιπτώσεις:

Qdel  - Διαγραφή εργασιών

qdel  job_id όπου job_id είναι το job id της εργασίας, που θέλουμε να διαγράψουμε.

Qstat - Επισκόπηση εργασιών

 qstat -a εμφανίζονται όλα τα jobs που εκτελούνται ή περιμένουν σε όλες τις ουρές του συστήματος. 

ΣΗΜΕΙΩΣΗ:  Περισσότερες παραμέτρους για τις παραπάνω εντολές μπορείτε να βρείτε μέσω των εντολών:  man qsub,  man qdel   ή  man qstat, τις οποίες μπορείτε να δώσετε στο xt20.