Περιγραφή¶
MATLAB is a high-level programming language and interactive environment for numerical computation, visualization and programming.
MATLAB R2022b και R2024a¶
Οι εκδόσεις R2022b
και R2024a
του Matlab μπορούν να χρησιμοποιηθούν στην συστοιχία ακολουθώντας τις οδηγίες που εμφανίζονται παρακάτω, ενεργοποιώντας αφενός το module:
# module load matlab/R2022b
και αφετέρου το module:
# module load matlab/R2024a
All toolboxes are available
Στις συγκεκριμένες εκδόσεις, με τη νέα Campus-Wide άδεια, μπορούν να χρησιμοποιηθούν όλα τα διαθέσιμα toolboxes του Matlab.
MATLAB R2021a¶
Παράδειγμα χρήσης¶
Για το παράδειγμα αυτό χρησιμοποιούμε τα εξής M-files
:
myfact.m
: function για τον υπολογισμό του παραγοντικού που δίνεται ως argument.average.m
: script για τον υπολογισμό του μέσου όρου των τιμών ενός συγκεκριμένου vector.
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας, έστω matlab-R2021a-case.sh
.
# mkdir matlab-R2021a-case
# cd matlab-R2021a-case
Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH -J Matlab-Job
#SBATCH -p batch
#SBATCH -t 15:00
#### load module ####
module load matlab/R2021a
#### RUN MATLAB JOB ####
echo "Starting Matlab"
matlab -nodisplay << EOF &> matlab.out
a = 15;
disp(a)
disp("Calculating factorial:")
myfact(a)
disp("Calculating average:")
average
exit
EOF
EOF - Here document
Όλες οι εντολές που περιλαμβάνονται μεταξύ των δύο παρακάτω γραμμών θα τρέξουν στο Matlab:
matlab -nodisplay << EOF &> matlab.out
#
# Matlab code here...
#
EOF
Η σύνταξη αυτή είναι γνωστή ως here document και χρησιμοποιείται συνήθως όταν θέλουμε να τρέξουμε πολλές εντολές χωρίς να τις αποθηκεύσουμε σε κάποιο αρχείο. Συγκεκριμένα, δίνουμε εντολή εκκίνησης της κονσόλας του Matlab και ως ορίσματα της δίνουμε όλες τις γραμμές μέχρι το limitstring, EOF
. Τα αποτελέσματα των εντολών θα αποθηκευτούν στο αρχείο matlab.out
.
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>
ως εξής:
# sbatch matlab-R2021a-case.sh
Παρακολουθούμε με την εντολή squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f *.out
Yποβολή παραμετρικών σειριακών εργασιών¶
Tο παρακάτω χρησιμοποιείται για να να τρέξουμε τη συνάρτηση myfact
4 φορές με ορίσματα 1, 2, 3 και 4.
Δημιουργούμε ενα νέο φάκελο με όνομα matlabdir και σε αυτόν μεταφέρουμε τo αρχείο myfact.m που δημιουργήσαμε και το script για την υποβολή, έστω matlab-R2021a-parametric-case.sh
:
SLURM submission script
#!/bin/bash
#SBATCH -J Matlab-ParamJob
#SBATCH -a 1-4
#### load module ###
module load matlab/R2021a
#### RUN MATLAB JOB ####
echo "Starting Matlab"
matlab -nodisplay << EOF &>> matlab.out
MyParameter = $SLURM_ARRAY_TASK_ID
disp("Execute function with parameter: " + MyParameter)
myfact(MyParameter)
save('myworkspace')
exit
EOF
Με την εντολή MyParameter = $SLURM_ARRAY_TASK_ID
περνάμε την τιμή του $SLURM_ARRAY_TASK_ID
στη μεταβλητή MyParameter
του MATLAB την οποία μπορούμε να επεξεργαστούμε όπως θέλουμε.
Παραλληλισμός Διεργασιών¶
Για τη δημιουργία διεργασιών που απαιτούν παράλληλους υπολογισμούς, απαιτείται η χρήση του Parallel Computing Toolbox. Οι εξειδικευμένες εντολές για αυτή τη χρήση, καθώς επίσης και σχετικές πληροφορίες μπορούν να βρεθούν στην επίσημη σελίδα της Mathworks για τη χρήση του πακέτου. Αξίζει να αναφέρουμε πως πολλές διεργασίες, όπως ο πολλαπλασιασμός μητρώων, η Matlab τις παραλληλίζει αυτόματα στη βάση των διαθέσιμων CPU.
Εναλλακτική σύνταξη και παραμετρικές εργασίες¶
Ένας εναλλακτικός τρόπος με τον οποίο μπορούμε να εκτελέσουμε ρουτίνες στη matlab
, είναι η δημιουργία εκτελέσιμων αρχείων της μορφής .m
και στη συνέχεια να τα υποβάλλουμε με την εντολή :
matlab -nodisplay -nosplash -r "run('job.m'); exit"
Η σύνταξη αυτή επιτρέπει την αποστολή παραμετρικών εργασιών και δυνατότητα χρήσης του εκτελέσιμου μέσω γραφικού περιβάλλοντος.
Γραφικό Περιβάλλον¶
Μπορούμε να ξεκινήσουμε το γραφικό περβάλλον του Matlab
στην υπολογιστική συστοιχία από το web portal της υπολογιστικής συστοιχίας, ακολουθώντας τα βήματα που περιγράφονται στις οδηγίες για την εκκίνηση του γραφικού περιβάλλοντος του Matlab.