Υποβολή εργασιών στην Υπολογιστική Συστοιχία του ΑΠΘ

Σε αυτό το εγχειρίδιο, μπορείτε να βρείτε οδηγίες σχετικά με την χρήση PBS commands για την υποβολή εργασιών στην Υπολογιστική Συστοιχία του ΑΠΘ.

Σύνδεση στο Login node

Η υποβολή εργασιών στην Υπολογιστική Συστοιχία του ΑΠΘ, γίνεται μέσω του Login node.

Για τον σκοπό αυτόν θα πρέπει πρώτα να συνδεθούμε στον server μέσω ssh. Μπορείτε να βρείτε σχετικές οδηγίες για Linux ή για Mac OS X εδώ και για Windows εδώ.

Για μεταφορά αρχείων από και προς τον server ακολουθούμε τις οδηγίες για Linux ή για Mac OS X εδώ και για Windows εδώ.

Στη συνέχεια θα πρέπει να μεταφερθούμε στο $SCRATCHDIR, χρησιμοποιώντας την εντολή:

 

$  cd  $SCRATCHDIR

 

ΣΗΜΑΝΤΙΚΟ: Τα δεδομένα που εναποτίθενται στο $SCRATCHDIR θεωρούνται προσωρινά. Ως εκ τούτου αρχεία που δεν έχουν γίνει access (read, open, close κτλ) για χρονικό διάστημα ενός έτους διαγράφονται αυτόματα από το σύστημα. Για τον λόγο αυτό θα πρέπει να λαμβάνεται ειδική φροντίδα ώστε τυχόν απαραίτητα/σημαντικά αρχεία να μεταφέρονται στο εκάστοτε $HOME directory του login node. 

 

Δημιουργία ενός απλού script για την υποβολή μίας εργασίας

Το παρακάτω script είναι ένα παράδειγμα μίας πολύ απλής (σειριακής) PBS εργασίας:

#!/bin/bash
#PBS -N testjob
#PBS -q auth
#PBS -j oe

cd $PBS_O_WORKDIR

hostname
date > datefile

Οι PBS options καθορίζονται στην αρχή του script. Οι δύο πρώτες δηλώνουν το όνομα της εργασίας και την job queue στην οποία θα υποβληθεί η εργασία.

Η επιλογή -j oe χρησιμοποιείται για να δηλώσει ότι τα standard error και standard output streams της εργασίας θα επιστραφούν στο ίδιο αρχείο εξόδου μετά την ολοκλήρωση της εργασίας.

Περισσότερες επιλογές οι οποίες μπορούν να χρησιμοποιηθούν σε ένα script για την υποβολή μίας PBS εργασίας, καθώς και η επεξήγησή τους υπάρχουν στο manual της εντολής qsub, το οποίο μπορούμε να το δούμε χρησιμοποιώντας την εντολή:

$ man qsub

Η μεταβλητή $PBS_O_WORKDIR αποθηκεύει το path του φακέλου από το οποίο έχουμε υποβάλει την εργασία. Έτσι, η παρακάτω γραμμή η οποία υπάρχει στο script:

cd $PBS_O_WORKDIR

χρησιμοποιείται έτσι ώστε να τρέξουν οι εντολές που την ακολουθούν εντός του φακέλου από τον οποίο έχουμε υποβάλει την εργασία.

Μπορούμε να παρακολουθούμε την εξέλιξη της εργασίας μέσω των αρχείων εξόδου που παράγονται απευθείας στον φάκελο από όπου την υποβάλαμε.

Σημειώστε ότι η γραμμή:

date > datefile

θα τυπώσει την έξοδο της εντολής date στο αρχείο datefile (αντί του stadard output).

Το αρχείο αυτό θα δημιουργηθεί εντός του φακέλου  $PBS_O_WORKDIR κατά την διάρκεια της εκτέλεσης της εργασίας.

Επομένως, σε περίπτωση που υποβάλουμε μία δεύτερη εργασία από τον ίδιο φάκελο, το αρχείο datefile θα εγγραφεί εκ νέου με αποτέλεσμα να χαθούν τα περιεχόμενα που είχαν παραχθεί κατά την προηγούμενη εκτέλεση της εργασίας.

Για να δώσουμε μοναδικά ονόματα στα παραγώμενα αρχεία των εργασίων μας, μπορούμε να χρησιμοποιούμε την μεταβλητή $PBS_JOBID, η οποία αποθηκεύει το ID που έχει αποδοθεί στην εργασία από το batch system.

Για αυτόν το σκοπό μπορούμε να τροποποιήσουμε το όνομα του αρχείου εξόδου ως εξής: datefile.$PBS_JOBID. Επομένως, η γραμμή θα γίνει:

date > datefile.$PBS_JOBID

Έτσι αποφεύγουμε το ενδεχόμενο ένα μεταγενέστερο job να γράψει πάνω από αρχεία εξόδου ενός προγενέστερου.

Υποβολή της εργασίας στην Υπολογιστική συστοιχία του ΑΠΘ

Για να υποβάλουμε την εργασία στην Υπολογιστική Συστοιχία του ΑΠΘ, αποθηκεύουμε το script της προηγούμενης ενότητας ως script.sh και τρέχουμε την παρακάτω εντολή από το $SCRATCHDIR

$ qsub submit.sh

Περισσότερες πληροφορίες για την εντολή qsub, μπορούμε να δούμε χρησιμοποιώντας την παρακάτω εντολή που εμφανίζει το σχετικό manual:

$ man qsub

Έλεγχος του status της εργασίας

Για να ελέγξουμε το status στο οποίο βρίσκεται μία εργασία που έχουμε υποβάλει στην Υπολογιστική Συστοιχία του ΑΠΘ, μπορούμε να χρησιμοποιούμε την εντολή:

$ qstat

Το παρακάτω είναι ένα παράδειγμα της εξόδου που δίνει η εντολή qstat.

$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
3766683.cream01            testjob          alcharal               0 R see           
3766684.cream01            testjob          alcharal               0 Q see

 

Το state της εργασίας μπορεί να είναι ένα από τα παρακάτω:

C -  Job is completed after having run.
E -  Job is exiting after having run.
Q -  job is queued.
R -  job is running.
W -  job is waiting to be executed.

 

Ακύρωση της εκτέλεσης μίας εργασίας

Για να ακυρώσουμε την εκτέλεση μίας εργασίας η οποία εκτελείται στην Υπολογιστική Συστοιχία του ΑΠΘ, μπορούμε να χρησιμοποιούμε την εντολή qdel σε συνδυασμό με το ID της εργασίας που θέλουμε να ακυρώσουμε. Για παράδειγμα:

$ qdel 3766684

Η παραπάνω εντολή θα μπορούσε να χρησιμοποιηθεί για να ακυρώσει την εκτέλεση της εργασίας που εμφανίζεται κάτω από την εντολή qstat στην προηγούμενη παράγραφο.

 

Ενημέρωση για το status μίας εργασίας

Εάν θέλουμε να ενημερωθούμε μέσω email σχετικά με το status της εργασίας που έχουμε υποβάλει στην Ιδρυματική συστοιχία, μπορούμε να προσθέσουμε τα παρακάτω PBS directives.

#PBS -M myaccount@example.gr
#PBS -m abe

Για να προσδιορίσουμε πότε θα θέλαμε να λάβουμε μήνυμα στην ηλεκτρονική μας διεύθυνση, επιλέγουμε όλους ή κάποιους από τους χαρακτήρες (a,b,e) έτσι ώστε να μας αποστέλλεται μήνυμα:

  • a - εάν η εργασία γίνει aborted από το batch system
  • b - όταν ξεκινήσει η εκτέλεση της εργασίας
  • e - όταν ολοκληρωθεί η εκτέλεση της εργασίας
Υποβολή παράλληλων εργασιών

Ένα παράδειγμα script για την υποβολή μίας MPI εργασίας είναι το εξής:

#!/bin/bash
#PBS -q auth
#PBS -N mpi-mm
#PBS -j oe
#PBS -l nodes=1:ppn=8

module load mpi
cd $PBS_O_WORKDIR

mpiexec -np $PBS_NP ./mm


Η επιλογή nodes=1:ppn=8 χρησιμοποιείται έτσι ώστε για την εκτέλεση της εργασίας να δεσμευθεί ένα (1) node με διαθέσιμους 8 υπολογιστικούς πυρήνες (επεξεργαστές). Αντίστοιχα αν επιθυμούμε να εκτελεστεί το job μας σε 2 nodes με 4 διαθέσιμους πυρήνες σε κάθε ένα θα χρησιμοποιούσαμε το εξής:

#PBS -l nodes=2:ppn=4


Η επιλογή της εφαρμογής (που θα πρέπει στη προκειμένη περίπτωση να έχει γίνει compile με mpich2 υλοποίηση) γίνεται στη γραμμή export I2G_MPI_APPLICATION=mm στο παραπάνω script και είναι συγεκριμμένα το όρισμα που ακολουθεί το σύμβολο '='. Το συγκεκριμμένο παράδειγμα μπορεί κανείς να το κατεβάσει από το gitlab repo

 
Με εικόνες