Περιγραφή¶
ANSYS Fluent software is the most-powerful computational fluid dynamics (CFD) tool available, empowering you to go further and faster as you optimize your product's performance. Fluent includes well-validated physical modeling capabilities to deliver fast, accurate results across the widest range of CFD and multiphysics applications.
Διαχείριση αδειών
Το πανεπιστήμιο διαθέτει συγκεκριμένο αριθμό αδειών για τη χρήση του Ansys, επισκόπηση των οποίων μπορεί να γίνει από ένα login node (aristotle.it.auth.gr
) μέσω της εντολής:
# module load ansys
# lmutil lmstat -c 1055@ansys.it.auth.gr -f anshpc
Σε αρκετές περιπτώσεις και ιδιαίτερα όταν οι εργασίες που υποβάλλονται απαιτούν πολλούς πόρους (nodes και cores), καθώς ο scheduler (slurm) δεν λαμβάνει υπόψιν τις διαθέσιμες άδειες λογισμικού ενδέχεται μία εργασία να τερματίσει απροσδόκητα λόγω μην επαρκών αδειών anshpc
στο 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
ANSYS Fluent 2024R1¶
Παλαιότερες εκδόσεις
Για να χρησιμοποιήσετε κάποια παλιότερη έκδοση του ANSYS Fluent θα χρειαστεί να τροποποιήσετε
στα παρακάτω την module load
εντολή κατάλληλα (π.χ. module load ansys/2022R2
για την
έκδοση 2022R2
κοκ)
Παράδειγμα χρήσης¶
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας.
# mkdir FLUENT-2024R1-case
# cd FLUENT-2024R1-case
Μέσα στο φάκελο τοποθετούμε τα αρχεία εισόδου elbow_journal.jou και elbow0.cas.gz.
Το script που θα χρησιμοποιήσουμε εμφανίζεται παρακάτω:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2024R1-case
#SBATCH --partition=batch
#SBATCH --ntasks-per-node=20
#SBATCH --nodes=1
#SBATCH --licenses=ansys@ansys.it.auth.gr:16
#SBATCH --time=1:00:00
module load ansys/2024R1
fluent 3ddp -g -ssh -t$SLURM_NTASKS -i elbow_journal.jou
Αποθηκεύουμε τα περιεχόμενα σε ένα νέο αρχείο (έστω FLUENT-2024R1-case.sh
) και το υποβάλλουμε προς εκτέλεση με την εντολή:
# sbatch FLUENT-2024R1-case.sh
Παρακολουθούμε με squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f *.out
Εργασίες Fluent σε περισσότερα από ένα nodes¶
Για την εκτέλεση εργασιών Fluent
σε περισσότερα του ενός nodes, θα χρειαστεί να εφαρμόσουμε ορισμένες τροποποιήσεις στο script υποβολής, δημιουργώντας και ένα hostfile
όπου ορίζονται τα hostnames
των nodes όπου θα τρέξει το λογισμικό. Αποθηκεύουμε τα περιεχόμενα σε ένα νέο αρχείο (έστω FLUENT-2024R1-distributed-case.sh
).
SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2021R1-parallel-case
#SBATCH --ntasks-per-node=20
#SBATCH --nodes=2
#SBATCH --licenses=ansys@ansys.it.auth.gr:36
#SBATCH --time=30:00
module load ansys/2024R1
#CREATE HOSTFILE
srun hostname > ${SLURM_JOBID}.hostfile
#RUN FLUENT
fluent 3ddp -g -ssh -t $SLURM_NTASKS -cnf=${SLURM_JOBID}.hostfile -i elbow_journal.in
#AS SOON AS RUN IS COMPLETE, DELETE HOSTFILE
rm -f ${SLURM_JOBID}.hostfile
Επιλογή δικτυακής διασύνδεσης των nodes
Το Ansys Fluent
επιτρέπει στην υλοποίηση του MPI
να επιλέξει το βέλτιστη διαθέσιμη δικτυακή διασύνδεση μεταξύ των nodes. Στην περίπτωση των partitions rome
και batch
, επιλέγεται η διασύνδεση InfiniBand
που επιτρέπει επικοινωνίες υψηλής ταχύτητας μεταξύ των nodes. Μπορούμε εναλλακτικά να επιλέξουμε απευθείας την διασύνδεση InfiniBand
, προσθέτοντας στην εντολή του fluent
το option -pib
.
Εργασίες Fluent σε GPU node¶
Fluent GPU Solver
- Ο
Fluent GPU Solver
επεκτείνεται σε κάθε νεότερη έκδοση ώστε να ενσωματώσει τις λειτουργίες που υπάρχουν στον αντίστοιχο CPU Solver. - Ξεκινώντας το Fluent με ενεργοποιημένο τον
Native GPU Solver
, εμφανίζονται μη-διαθέσιμα ακόμη πεδία (grayed-out). Επιπλέον, το Fluent θα αλλάξει σε default ορισμένα settings και θα το εμφανίσει στην console (terminal). - Με δοκιμή και σφάλμα και ελέγχοντας τα errors/warnings που εμφανίζονται, μπορείτε να κρατήσετε μόνο τα boundary conditions/models/report definitions/κλπ που υποστηρίζονται.
Για την εκτέλεση εργασιών Fluent
σε 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-2024R1-gpu-case.sh, όπως φαίνεται παρακάτω:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2024R1-gpu-case
#SBATCH --partition=gpu
#SBATCH --gres=gpu:4
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --time=1:00:00
module load ansys/2024R1
time fluent 3ddp -g -gpu -ssh -i pipe_journal_gpu.jou
ΠΡΟΣΟΧΗ
Στο παραπάνω παράδειγμα, το 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.
Γραφικό Περιβάλλον¶
Για να χρησιμοποιήσουμε το γραφικό περιβάλλον του Ansys
στην συστοιχία μπορούμε να επισκεφτούμε με έναν browser την σελίδα: https://hpc.auth.gr και να ακολουθήσουμε τα παρακάτω βήματα:
-
Από το menu επιλέγουμε
Interactive Apps
->ANSYS Workbench
-
Στην συνέχεια επιλέγουμε στην φόρμα την έκδοση του
Ansys
, το χρονικό διάστημα (σε ώρες) και τον αριθμό τωνCPU cores
που θέλουμε να χρησιμοποιήσουμε: -
Eφόσον η εργασία ξεκινήσει, μπορούμε να επιλέξουμε
Launch ANSYS Workbench
. -
Αφού ανοίξουμε το
Workbench
, μπορούμε να επιλέξουμε τοFluent
από τοToolbox
menu με drag and drop στοProject Schematic
. -
Με double clik στην επιλογή
setup
θα ξεκινήσει τοFluent Launcher
. Σε περίπτωση που επιλέξουμεParallel
processing, ο αριθμός τωνSolver Processes
θα πρέπει να συμφωνεί με τον αριθμό των αριθμό τωνCPU cores
που έχουμε καθορίσει στο βήμα 2.