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

Περιγραφή

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/../shared_files/licensing/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 2021R1

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

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

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

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

# mkdir FLUENT-2021R1-case
# cd FLUENT-2021R1-case

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

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

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

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

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

# sbatch FLUENT-2021R1-case.sh

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

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

# tail -f *.out

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

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

SLURM submission script
#!/bin/bash
#SBATCH --job-name=FLUENT-2021R1-case
#SBATCH --ntasks-per-node=20
#SBATCH --nodes=2
#SBATCH --licenses=ansys@ansys.it.auth.gr:36
#SBATCH --time=30:00

module load ansys/2021R1

#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

Εργασίες Fluent σε GPU node

Για την εκτέλεση εργασιών Fluent σε GPU, θα χρειαστεί να εφαρμόσουμε ορισμένες τροποποιήσεις στο joural αρχείο, για την επιλογή της GPU που θα χρησιμοποιηθεί. Για το συγκεκριμένο παράδειγμα μπορούμε να χρησιμοποιήσουμε το παρακάτω journal file:

Fluent GPU journal
parallel/gpgpu/select 0
parallel/gpgpu/show
rc elbow0.cas.gz
solve/set/amg-options/amg-gpgpu-options/epsilon 
yes
0.1
"FGMRES"
20
4
1
1
"JACOBI"
it 150 
wd elbow150.dat 
exit 
yes

Επιπλέον, για να επιλέξουμε να εκτελεστεί η εργασία σε ένα GPU node, θα πρέπει να τροποποιήσουμε το script υποβολής, όπως φαίνεται παρακάτω:

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

module load ansys/2021R1

time fluent 3ddp -g -gpgpu=1 -i elbow_journal_gpu.in

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

Για να χρησιμοποιήσουμε το γραφικό περιβάλλον του 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


τελευταία ενημέρωση: June 29, 2022