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

Περιγραφή

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

ANSYS Fluent 2023R2

Παλαιότερες εκδόσεις

Για να χρησιμοποιήσετε κάποια παλιότερη έκδοση του ANSYS Fluent θα χρειαστεί να τροποποιήσετε στα παρακάτω την module load εντολή κατάλληλα (π.χ. module load ansys/2022R2 για την έκδοση 2022R2 κοκ)

Παράδειγμα χρήσης

Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου και το script υποβολής της εργασίας.

# mkdir FLUENT-2023R2-case
# cd FLUENT-2023R2-case

Μέσα στο φάκελο τοποθετούμε τα αρχεία εισόδου elbow_journal.jou και elbow0.cas.gz.

Το script που θα χρησιμοποιήσουμε εμφανίζεται παρακάτω:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2023R2-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/2023R2

fluent 3ddp -g -ssh -t$SLURM_NTASKS -i elbow_journal.jou

Αποθηκεύουμε τα περιεχόμενα σε ένα νέο αρχείο (έστω FLUENT-2023R2-case.sh) και το υποβάλλουμε προς εκτέλεση με την εντολή:

# sbatch FLUENT-2023R2-case.sh

Παρακολουθούμε με squeue την εξέλιξη της εργασίας.

Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:

# tail -f *.out

Εργασίες Fluent σε περισσότερα από ένα nodes

Για την εκτέλεση εργασιών Fluent σε περισσότερα του ενός nodes, θα χρειαστεί να εφαρμόσουμε ορισμένες τροποποιήσεις στο script υποβολής, δημιουργώντας και ένα hostfile όπου ορίζονται τα hostnames των nodes όπου θα τρέξει το λογισμικό. Αποθηκεύουμε τα περιεχόμενα σε ένα νέο αρχείο (έστω FLUENT-2023R2-distributed-case.sh).

SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2023R2-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/2023R2

#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 μπορούμε να χρησιμοποιήσουμε το αρχείο εισόδου 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-2023R2-gpu-case.sh, όπως φαίνεται παρακάτω:

SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2023R2-gpu-case
#SBATCH --partition=gpu
#SBATCH --gres=gpu:1
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --time=1:00:00

module load ansys/2023R2

time fluent 3ddp -g -gpgpu=1 -ssh -i pipe_journal_gpu.jou
# gpgpu should match the number of GPUs requested

Γραφικό Περιβάλλον

Για να χρησιμοποιήσουμε το γραφικό περιβάλλον του Ansys στην συστοιχία μπορούμε να επισκεφτούμε με έναν browser την σελίδα: https://hpc.auth.gr και να ακολουθήσουμε τα παρακάτω βήματα:

  1. Από το menu επιλέγουμε Interactive Apps -> ANSYS Workbench

  2. Στην συνέχεια επιλέγουμε στην φόρμα την έκδοση του Ansys, το χρονικό διάστημα (σε ώρες) και τον αριθμό των CPU cores που θέλουμε να χρησιμοποιήσουμε:

    Ansys Workbench Form

  3. Eφόσον η εργασία ξεκινήσει, μπορούμε να επιλέξουμε Launch ANSYS Workbench.

  4. Αφού ανοίξουμε το Workbench, μπορούμε να επιλέξουμε το Fluent από το Toolbox menu με drag and drop στο Project Schematic.

    Ansys Fluent

  5. Με double clik στην επιλογή setup θα ξεκινήσει το Fluent Launcher. Σε περίπτωση που επιλέξουμε Parallel processing, ο αριθμός των Solver Processes θα πρέπει να συμφωνεί με τον αριθμό των αριθμό των CPU cores που έχουμε καθορίσει στο βήμα 2.

    Ansys Fluent