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

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

 

  • Για να αποκτήσετε πρόσβαση στην Ιδρυματική συστοιχία μπορείτε να υποβάλετε την online αίτηση εδω.
  • Μόλις ενεργοποιηθεί ο λογαριασμός σας, μπορείτε να συνδεθείτε στο UI μέσω SSH.
    Μπορείτε να βρείτε σχετικές οδηγίες για Linux ή για Mac OS X εδώ και για Windows εδώ.

 

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

Εναλλακτικά μπορείτε να χρησιμοποιήσετε τον client MobaXterm για να συνδεθείτε μέσω SSH στο User Interface και να μεταφέρετε αρχεία μέσω sftp.

Εκκίνηση της κονσόλας του Matlab στο User Interface της Ιδρυματικής συστοιχίας

Για να ενεργοποιήσουμε το περιβάλλον του Matlab στο UI μπορούμε να χρησιμοποιήσουμε την παρακάτω την εντολή:

$ module load matlab

Στην συνέχεια, μπορούμε να ξεκινήσουμε την κονσόλα του Matlab με την εντολή:

$ matlab -c $LM_LICENSE_FILE -nodisplay

Αφού ξεκινήσει η κονσόλα του Matlab μπορούμε να τρέξουμε Matlab commands. Για παράδειγμα, μπορούμε να δημιουργήσουμε έναν πίνακα ως εξής:

A = [21 42 -3; 2 -3 101; -24 31 10]

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


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

$  cd $SCRATCHDIR

Έπειτα δημιουργούμε ένα καινούργιο φάκελο για την εργασία που θέλουμε να υποβάλουμε με την εντολή:

$  mkdir matlab_example

 

Παράδειγμα

Έστω ότι θέλουμε να τρέξουμε την συνάρτηση Matlab: test_func

  • Τα αρχεία του παραδείγματος βρίσκονται εδώ.
  • Τοποθετούμε τα αρχεία του παραδείγματος στον φάκελο που δημιουργήσαμε παραπάνω.
  • Για την εκτέλεση της συνάρτησης test_func στην Ιδρυματική συστοιχία, δημιουργούμε το αρχείο υποβολής submit_matlab_job.pbs
    Στο συγκεκριμένο παράδειγμα, για ευκολία, δίνεται έτοιμο το αρχείο submit_matlab_job.pbs .

 

Επεξήγηση εντολών που περιλαμβάνονται στο αρχείο submit_matlab_job.pbs:

Με τη Matlab εντολή: test_func(10) θα εκτελεστεί η συνάρτηση που περιγράφεται στο M file: test_func.m με όρισμα 10.

Με τη Matlab εντολή:  save('myworkspace') γίνεται αποθήκευση του workspace του Μatlab σε ένα αρχείο .mat

Όλες οι εντολές που περιλαμβάνονται μεταξύ των δύο παρακάτω γραμμών θα τρέξουν στο Matlab:

matlab -c $LM_LICENSE_FILE -nodisplay << EOF &> matlab.out
.
.
.
EOF

 

Υποβολή και έλεγχος του status της εργασίας μας


Μπορούμε να υποβάλουμε την εργασία μας με την εντολή:


$  qsub submit_matlab_job.pbs

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

$ qstat

Αναλυτικές πληροφορίες για την υποβολή εργασιών στην Ιδρυματική συστοιχία είναι διαθέσιμες εδώ.

Παράλληλη υποβολή σειριακών εργασιών


Χρησιμοποιούμε το script MatlabParamJob.pbs για την υποβολή του αρχείου test_func.m τέσσερις φορές για τιμές από 1 έως 4.

Οι εργασίες για τις τέσσερις διαφορετικές παραμέτρους (1 έως και 4) θα εκτελεστούν παράλληλα.

Με το παρακάτω PBS directive στο script υποβολής ορίζουμε ένα array.

#PBS -t 1-4


Με την εντολή: 

$ qsub MatlabParamJob.pbs

θα υποβληθούν ταυτόχρονα 4 εργασίες στην συστοιχία. Κάθε εργασία θα λαμβάνει στη μεταβλητή $PBS_ARRAYID μία τιμή από το array (1 έως και 4).

 

Αν θέλουμε διαφορετικό βήμα στο job array, μπορούμε να διαιρέσουμε το MyParameter με κάποια τιμή var1.
Το αντίστοιχο script βρίσκεται εδώ.

var1 = 0.5
MyParameter=$(bc <<<"scale=2 ; $PBS_ARRAYID / $var1" )

Η παράμετρος scale ορίζει τον αριθμό των δεκαδικών ψηφίων.

 

Επιπρόσθετα, έχουμε τη δυνατότητα να κάνουμε πιο περίπλοκες πράξεις στο MyParameter:

var1 = 0.5
MyParameter=$(bc <<<"scale=2 ; ($PBS_ARRAYID / $var1)+5*(3+1)" )

 
Με εικόνες