ANSYS¶
Licensing¶
Η αδειοδότηση των λογισμικών της Ansys γίνεται με βάση συγκεκριμένα features που αντιστοιχούν στις διαφορετικές εφαρμογές (π.χ. Fluent
, Mechanical
κλπ.). Κάθε φορά που εκκινούμε ένα λογισμικό π.χ. το Fluent
δεσμεύεται ένα count από τα features που αντιστοιχούν στο Fluent
. Όταν αναφερόμαστε σε CFD άδειες
αναφερόμαστε στα features αυτά. Το πλήθος των CFD αδειών
περιορίζει το πόσοι χρήστες/εργασίες μπορούν να χρησιμοποιούν το Fluent
ταυτόχρονα.
Το πανεπιστήμιο διαθέτει συγκεκριμένο αριθμό αδειών για τη χρήση του Ansys. Για να κάνουμε επισκόπηση των αδειών, θα χρειαστεί να συνδεθούμε στο περιβάλλον γραμμής εντολών (login node) του Αριστοτέλη και στη συνέχεια να εκτελέσουμε τις εντολές:
$ module load ansys
$ lmutil lmstat -c 1055@ansys.it.auth.gr -f <feature_name>
Η εντολή lmstat
δείχνει τη χρήση των features που θα επιλέξουμε, τη δεδομένη στιγμή.
Λογισμικό Ansys | Feature |
---|---|
CFD (Fluent) | cfd_base , cfd_solve_level1 , cfd_solve_level2 , cfd_solve_level3 |
HPC άδειες | anshpc |
HFSS | electronics_desktop , elec_solve_level1 , elec_solve_level2 , elec_solve_2d |
Διαθεσιμότητα αδειών ως κριτήριο δρομολόγησης
Τα λογισμικά της Ansys
στη βασική τους άδεια υποστηρίζουν εκτέλεση εργασιών σε έως 4 πυρήνες (CPU cores). Για εκτέλεση σε περισσότερους πυρήνες CPU η εφαρμογή χρειάζεται HPC άδειες (anshpc feature
).
Οι άδειες που απαιτούνται είναι ένα anshpc
count για κάθε core πλέον των 4 που περιλαμβάνονται στη βασική άδεια.
Έτσι ένα Fluent
job με 64 cores θα χρειαστεί:
1 count από τα CFD features
+ 60 counts του anshpc feature
Σε αρκετές περιπτώσεις και ιδιαίτερα όταν οι εργασίες που υποβάλλονται απαιτούν πολλούς πόρους (nodes και cores), καθώς ο scheduler (slurm) δεν λαμβάνει υπόψιν τις διαθέσιμες άδειες λογισμικού ενδέχεται μία εργασία να τερματίσει απροσδόκητα λόγω μην επαρκών αδειών anshpc
στο license server.
Συγκεκριμένα μόνο για τις άδειες HPC, υπάρχει η δυνατότητα προστασίας των εργασιών από δρομολόγηση, όταν δεν είναι διαθέσιμες άδειες anshpc
στον κεντρικό Ansys license server του πανεπιστημίου ansys.it.auth.gr. Ο δρομολογητής εργασιών Slurm υποστηρίζει ολοκλήρωση με το σύστημα του license server ώστε να βλέπει ανά πάσα στιγμή τη διαθεσιμότητα αδειών. Αυτό γίνεται με το --licenses directive. Έτσι ο δρομολογητής θα προσθέσει τη διαθεσιμότητα των αδειών στα κριτήρια της δρομολόγησης και η εργασία θα μπορεί να δρομολογηθεί σε κάποιο node μόνο εφόσον υπάρχουν άδειες στον license server.
Επομένως, η λύση για την παράκαμψη της συγκεκριμένης ιδιαιτερότητας είναι η χρήση της μεταβλητής #SBATCH --licenses=ansys@ansys.it.auth.gr:X
όπου μπορεί να οριστεί και ο απαιτούμενος αριθμός αδειών X
που επιθυμούμε για να την εργασία που θέλουμε να υποβάλουμε. Ο αριθμός αυτός υπολογίζεται εαν εκτιμήσουμε τον συνολικό αριθμό των πυρήνων (nodes*tasks_per_node
) που ζητάμε απο την εργασία και αφαιρέσουμε τους 4 πυρήνες για τους οποίους δεν χρεώνει ο license manager καμία άδεια.
Παράδειγμα
Για ένα job με τις παρακάτω ρυθμίσεις:
#SBATCH --ntasks-per-node=16
#SBATCH --nodes=2
2*16-4=28
,
τον οποιο και ορίζουμε με την παρακάτω μεταβλητή:
#SBATCH --licenses=ansys@ansys.it.auth.gr:28