Μετάβαση στο περιεχόμενο

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
Αυτό δεσμεύει εσωτερικά το slurm από το να ξεκινήσει το job εως ότου υπάρχουν όντως διαθέσιμες άδειες στον license server προκειμένου να ξεκινήσει.

Available Software