Εγκατάσταση του λογισμικού ANSYS¶
Το ANSYS αποτελεί ένα από τα πλέον διαδεδομένα λογισμικά προσομοίωσης μηχανικής, το οποίο χρησιμοποιείται για την ανάλυση και την πρόβλεψη της συμπεριφοράς και της απόδοσης προϊόντων σε πραγματικές συνθήκες. Καλύπτει ένα ευρύ φάσμα εφαρμογών της φυσικής, όπως η ανάλυση κατασκευών, η μηχανική ρευστών (CFD), τα ηλεκτρονικά και τα οπτικά συστήματα. Μέσω της χρήσης εικονικών δοκιμών, το ANSYS δίνει τη δυνατότητα σε επιχειρήσεις και μηχανικούς να επιταχύνουν την καινοτομία, να μειώσουν το κόστος ανάπτυξης και να βελτιώσουν την αξιοπιστία των προϊόντων τους. Το λογισμικό βρίσκει εφαρμογή σε πολλούς κλάδους, όπως η αεροδιαστημική, η αυτοκινητοβιομηχανία και η υγειονομική περίθαλψη, αντικαθιστώντας σε μεγάλο βαθμό την ανάγκη για φυσικά πρωτότυπα.
Για περισσότερες πληροφορίες σχετικά με το λογισμικό, επισκεφθείτε την επίσημη ιστοσελίδα: [https://www.ansys.com/].
Διαχείριση αδειών
Το πανεπιστήμιο διαθέτει συγκεκριμένο αριθμό αδειών για τη χρήση του Ansys, επισκόπηση των οποίων μπορεί να γίνει από ένα login node (aristotle.it.auth.gr) μέσω της εντολής:
# module load ansys
# lmutil lmstat -c 1055@ansys.it.auth.gr -f anshpc
Πριν από οποιαδήποτε ενέργεια, είναι απαραίτητο ο χρήστης να έχει συνδεθεί επιτυχώς στο Nefeli cluster. Οι οδηγίες σύνδεσης παρέχονται στον ακόλουθο οδηγό.
ANSYS FLUENT 2025R2¶
Παράδειγμα χρήσης¶
Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας.
# mkdir FLUENT-2025R2-Nefeli
# cd FLUENT-2025R2-Nefeli
Μέσα στο φάκελο τοποθετούμε τα αρχεία εισόδου μας, έστωelbow_journal.jou και elbow0.cas.gz.
Το script που θα χρησιμοποιήσουμε εμφανίζεται παρακάτω:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2025R2-Nefeli
#SBATCH --partition=highcpu
#SBATCH --ntasks-per-node=4
#SBATCH --nodes=1
#SBATCH --time=1:00:00
module load ansys/2025R2
fluent 3ddp -g -ssh -t$SLURM_NTASKS -i elbow_journal.jou
Αποθηκεύουμε τα περιεχόμενα σε ένα νέο αρχείο (έστω FLUENT-2025R2-Nefeli.sh) και το υποβάλλουμε προς εκτέλεση με την εντολή:
# sbatch FLUENT-2025R2-Nefeli.sh
Παρακολουθούμε με squeue την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f *.out
Εργασίες σε Partition για jobs με χρήση GPU¶
Για την εκτέλεση εργασιών, έστω Fluent σε partitions για jobs με χρήση GPU, μπορούμε να χρησιμοποιήσουμε το αρχείο εισόδου pipe.cas.h5 και το παρακάτω journal file pipe_journal_gpu.jou:
Fluent GPU journal
parallel/gpgpu/select 0
parallel/gpgpu/show
rc pipe.cas.h5
it 150
wd pipe.dat.h5
exit
yes
Επιπλέον, για να επιλέξουμε να εκτελεστεί η εργασία σε ένα GPU node, θα πρέπει να τροποποιήσουμε το script υποβολής FLUENT-2025R2-Nefeli-gpu.sh, όπως φαίνεται παρακάτω:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=ANSYS-FLUENT-2025R2-GPU
#SBATCH --partition=l4
#SBATCH --ntasks-per-node=1
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --time=01:00:00
module load ansys/2025R2
# gpgpu should match the number of GPUs requested
time fluent 3ddp -g -t -gpgpu=1 -ssh -i pipe_journal_gpu.jou
# gpgpu should match the number of GPUs requested
ΠΡΟΣΟΧΗ
Στο παραπάνω παράδειγμα, το Fluent εκτιμά σωστά τον αριθμό των δεσμευμένων GPU και τις χρησιμοποιεί όλες. Αν διαπιστώσετε ότι αυτό δεν συμβαίνει στην εργασία σας, μπορείτε να αντικαταστήσετε το flag -gpu στην τελευταία εντολή με ένα από τα εξής:
-gpu=0,1,2,3, δίνοντας τα ID των GPU που θα χρησιμοποιηθούν. Η αρίθμηση αναμένεται να ξεκινά από το 0 και να αυξάνεται κατά 1, όμως καλό είναι να επιβεβαιώσουμε τα ID προσθέτοντας στο journal την γραμμήparallel/gpgpu/show.-t4 -gpgpu=4(ή-t$SLURM_GPUS -gpgpu=$SLURM_GPUS, χρησιμοποιώντας την αντίστοιχη παράμετρο slurm). Προσοχή, τα flag-tκαι-gpgpuχρειάζονται υποχρεωτικά τον αριθμό των GPU, αλλιώς θα χρησιμοποιηθεί μόνο μία.
Σε κάθε περίπτωση, προκειμένου να αποφευχθεί η σπατάλη πόρων, προτείνεται πριν στείλετε κάποιο μεγάλο job να στείλετε μια μικρή δοκιμαστική εργασία για να ελέγξετε την χρήση των GPU με την βοήθεια της εντολής nvidia-smi όπως περιγράφεται στο Ερώτημα 14 του FAQ.