Ansys Fluent CFD - Linux

    Pentru a rula un job Ansys CFD este obligatoriu următorul pas, specific instalării sistemului Cluster2:

  • Trebuie specificată coada de execuție care va fi folosită pentru jobul de calcul paralel. Acest lucru se realizează prin crearea unui fișier text care să conțină numele cozii pe prima linie, iar fișierul trebuie să fie salvat cu numele fluent_queue.txt în directorul de bază al utilizatorului (/home/<nume_de_login> în Linux sau W: în Windows). În cazul în care fișierul nu există sau nu conține un nume de coadă valid joburile vor fi lansate folosind coada de execuție implicită (short). Mai multe detalii despre cozile de execuție pot fi găsite în secțiunea „Sistemul de joburi

    În sistemul Linux Ansys Fluent CFD poate fi rulat în două moduri: interactiv, similar cu modul de lucru din Windows sau prin intermediul unui job și al unui jurnal de comenzi. Varianta de a rula prin intermediul unui job este cea recomandată deoarece nu sunt blocate resurse ale nodurilor de conectare.

        Ansys Fluent CFD - Linux - în mod interactiv

    Primul pas care trebuie efectuat pentru a rula un job Ansys CFD în mod interactiv în sistemul Linux este de a încărca într-un terminal modulul corespunzător variantei de Fluent dorite prin comanda module load fluent-<nr_versiune_fluent> și apoi lansarea comenzii fluent care va porni interfața grafică a programului. Un exemplu este ilustrat în continuare:

[username@master ~]$ module load fluent-2019r1
[username@master ~]$ fluent
[username@master ~]

        După pornirea programului va fi afișată o interfață grafică prin intermediul căreia se poate configura aplicația pentru rularea unui job pe sistemul de calcul paralel. 

    Setările care trebuie efectuate sunt următoarele:

  • Use job scheduler: DA
  • Processing options: Parallel per PBS
  • Solver / Processes: trebuie ales numărul de core-uri pe care va rula simularea (verificați disponibilitatea maximă prin alegerea minimului între maximul permis de coada de execuție și 528, numărul maxim de procese conform licenței existente)
  • Tab-ul General Options:
    • Working directory: Trebuie specificat directorul în care va lucra Ansys Fluent, de obicei directorul de bază /home/<nume_de_login>
    • Fluent Root Path: /home/app/ansys/ansys2019r1/v193/fluent - această setare va fi probabil preconfigurată de sistem, însă trebuie scris exact cum este indicat, cu schimbarea numărului de versiune în /home/app/ansys/ansys162/v162/fluent sau /home/app/ansys/ansys171/v171/fluent, în funcție de ce versiune de Ansys Fluent este folosită.
  • Tab-ul Parallel Settings:
    • Interconnects: infiniband 
      deși nu este obligatorie această setare, putând fi lăsată pe default, Ansys Fluent va determina interfațarea optimă între procesele de calcul paralele.
    • MPI Types: intel sau pcmpi
      se poate lăsa pe default sau se poate alege una din bibliotecile MPI care va fi folosită pentru intercomunicarea între procese.
    • Remote Spawn Command: SSH
    • Select IP Interface: DA - 10.3.2.2
  • Tab-ul Scheduler:
    • Use PBSPro: DA
    • PBS Submission Host
      trebuie completat cu numele serverului pe care rulează managerul de joburi: master (sau master.hpc.ugal.ro)
  • Tab-ul Environment:
    • PBS_QUEUE = <numele_cozii_dorite> este obligatorie setarea acestei variabile de mediu pentru a comunica sistemului PBS sub ce coadă de execuție se doreștea rularea jobului, Dacă această variabilă nu este setată jobul va rula implicit sub coada short.
    • PBS_PPN = 24  indică sistemului PBS câte core-uri trebuie folosite în fiecare nod de calcul. Dacă nu este specificat sistemul PBS va realiza optimizarea repartizării core-urilor la nivelul nodurilor de calcul pentru o umplerea eficientă. Dacă este specificat atunci sistemul PBS va aloca un numărul de noduri egal cu <nr_de_core-uri_solicitate> / PBS_PPN
    • Se pot preciza în cadrul casetelor text existente variabilele de mediu necesare compilării funcțiilor definite de utilizator (UDF), dacă este necesar acest aspect.

    După realizarea tuturor setărilor menționate mai sus se apasă butonul „Ok” și mediul Ansys Fluent se va deschide.

        Ansys Fluent CFD - Linux - lansare job

    Această variantă este recomandată pentru a rula o simulare în Ansys Fluent CFD deoarece nu presupune menținerea unei conexiuni deschise pe un server de conectare, jobul executându-se direct pe serverele de calcul paralel fără a fi nevoie de o interfață grafică activă.

    Pentru a rula un job Ansys în primul rând trebuie pregătit fișierul jurnal care conține instrucțiunile specifice Ansys Fluent. Acest fișier poate fi generat din interafața grafică (fără a fi nevoie să fie pornit un job pentru acest lucru) sau creat cu un editor de text simplu. Un exemplu de astfel de fișier jurnal este ilustrat în continuare:

[username@master ~]$ more job1.in
file/read-case-data test_case_14M_cells.cas         # se citește fișierul care conține cazul
solve/iterate 1000                             # se realizează calculele pentru 1000 de iterații
exit                                     # se părăsește programul
no                                         # se răspunde No la întrebarea „Discard results?” ceea ce are ca efect salvarea datelor
[username@master ~]

    Al doilea pas este constituit din realizarea fișierului care va lansa jobul, conform instrucțiunilor din secțiunea „Gestiunea joburilor”. Un exemplu pentru un fișier job este ilustrat în continuare, incluzând comentarii asupra fiecărei linii din fișier. Fișierul text poate fi descărcat de aici.

[username@master ~]$ more fluent_job1.job
#!/bin/bash
# stabilirea numarului de procesoare si a numarului de procesoare per nod de calcul dorite, trebuie să existe o singură directivă #PBS -l select
# si anume 2 noduri cu cate 24 procesoare fiecare, repartizare directă a nucleelor pe nodurile de calcul
#PBS -l select=2:ncpus=24:mpiprocs=24
sau alternativa este de a lăsa sistemul PBS să repartizeze nucleele la nivelul nodurilor disponibile
#PBS -l select=48
# setarea timpului maxim de executare a jobului la 1h si 30 de minute 
#PBS -l walltime=1:30:00
# jobul va fi trimis către coada de execuție short
#PBS -q short
# denumirea literala a jobului pentru o identificare ulterioara
#PBS -N Fluent_Job 
# trimiterea unui email de informare la pornire (begin), la sfarsit (end) si in cazul opririi executarii (abortion)
#PBS -m bea
# adresa de email la care se vor trimite mesajele
#PBS -M Această adresă de email este protejată contra spambots. Trebuie să activați JavaScript pentru a o vedea. 
# schimbarea directorului de unde a fost lansat jobul
cd $PBS_O_WORKDIR
# urmeaza pregatirea mediului pentru lansarea fluent
# se schimbă directorul de lucru
cd /home/<nume_de_login>/fluent
# se șterge fișierul (temporar) pnodes
rm -f pnodes
# se crează fișierul pnodes care va conține lista cu toate nodurile pe care se va executa jobul,
# plecând de la variabila de mediu $PBS_NODEFILE
cat $PBS_NODEFILE | sort > pnodes

# se exportă numărul de procesoare/core-uri configurate în cadrul jobului
# în variabila de mediu ncpus care va fi folosită în cadrul liniei de comandă pentru lansarea Ansys Fluent
# atenție!! nu confundați `  cu '
export ncpus=`cat pnodes| wc -l`
# se încarcă mediul pentru Ansys Fluent v. 2019r1
module load fluent-2019r1
# se lansează în execuție Ansys Fluent
# cu redirectarea mesajelor afișate pe consolă în fișierul rezultat.out
fluent 3ddp -g -t$ncpus -pinfiniband.ofed -mpcmpi -cnf=pnodes -i job1.in > /home/<nume_de_login>/rezultat.out
[username@master ~]

    După editarea fișierului pentru job trebuie lansat jobul folosind comanda qsub:

[username@master ~]$ qsub fluent_job1.job
498.master.hpc.ugal.ro
[username@master ~]

    Se poate vedea starea jobului folosind comanda qstat:

[username@master ~]$ qstat
Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
498.master                Fluent_job       username               0 R short
[username@master ~]

    Mesajele care sunt furnizate de către program pot fi afișate în timp real prin folosirea comenzii tail ca în exemplul următor:

[username@master ~]$ tail -f rezultat.out
/home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/bin/fluent -r19.3.0 3ddp -g -t48 -pinfiniband.ofed -mpcmpi -cnf=pnodes -i job1.in
/home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/cortex/lnamd64/cortex.19.3.0 -f fluent -g -mpcmpi -i job1.in (fluent "3ddp -pinfiniband -host -r19.3.0 -t48 -mpi=ibmmpi -cnf=pnodes -path/home/app/ansys/ansys2019r1/v193/fluent -ssh")
/home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/bin/fluent -r19.3.0 3ddp -pinfiniband -host -t48 -mpi=ibmmpi -cnf=pnodes -path/home/app/ansys/ansys2019r1/v193/fluent -ssh -cx node-23:44293:40131
Starting /home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/lnamd64/3ddp_host/fluent.19.3.0 host -cx node-23:44293:40131 "(list (rpsetvar(QUOTE parallel/function) "fluent 3ddp -flux -node -r19.3.0 -t48 -pinfiniband -mpi=ibmmpi -cnf=pnodes -ssh") (rpsetvar (QUOTE parallel/rhost) "") (rpsetvar (QUOTE parallel/ruser) "") (rpsetvar (QUOTE parallel/nprocs_string) "48") (rpsetvar (QUOTE parallel/auto-spawn?) #t) (rpsetvar (QUOTE parallel/trace-level) 0) (rpsetvar (QUOTE parallel/remote-shell) 1) (rpsetvar (QUOTE parallel/path) "/home/app/ansys/ansys2019r1/v193/fluent") (rpsetvar (QUOTE parallel/hostsfile) "pnodes") )"

              Welcome to ANSYS Fluent 2019 R1

              Copyright 1987-2018 ANSYS, Inc. All Rights Reserved.
              Unauthorized use, distribution or duplication is prohibited.
              This product is subject to U.S. laws governing export and re-export.
              For full Legal Notice, see documentation.
Build Time: Dec 04 2018 13:42:27 EST  Build Id: 10141

     --------------------------------------------------------------
     This is an academic version of ANSYS FLUENT. Usage of this product
     license is limited to the terms and conditions specified in your ANSYS
     license form, additional terms section.
     --------------------------------------------------------------
Host spawning Node 0 on machine "node-23.hpc.ugal.ro" (unix).
/home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/bin/fluent -r19.3.0 3ddp -flux -node -t48 -pinfiniband -mpi=ibmmpi -cnf=pnodes -ssh -mport 10.3.2.123:10.3.2.123:43840:0
Starting /home/app/ansys/ansys2019r1/v193/fluent/fluent19.3.0/multiport/mpi/lnamd64/ibmmpi/bin/mpirun -e MPI_IBV_NO_FORK_SAFE=1 -e MPI_USE_MALLOPT_MMAP_MAX=0 -prot -IBV -e MPI_HASIC_IBV=1 -f /tmp/fluent-appfile.username.1658
Host 0 -- ip 10.3.2.123 -- ranks 0 - 23
Host 1 -- ip 10.3.2.124 -- ranks 24 - 47
 host | 0    1
======|===========
    0 : SHM  IBV
    1 : IBV  SHM

 Prot -  All Intra-node communication is: SHM
 Prot -  All Inter-node communication is: IBV

--------------------------------------------------------------------------------------
ID      Hostname             Core   O.S.      PID        Vendor
--------------------------------------------------------------------------------------
n24-47  node-24.hpc.ugal.ro  24/24  Linux-64  3490-3513  Intel(R) Xeon(R) E5-2680 v3
n0-23   node-23.hpc.ugal.ro  24/24  Linux-64  3040-3063  Intel(R) Xeon(R) E5-2680 v3
host    node-23.hpc.ugal.ro         Linux-64  825        Intel(R) Xeon(R) E5-2680 v3

MPI Option Selected: ibmmpi
Selected system interconnect: InfiniBand
--------------------------------------------------------------------------------------

 VKI license is not available. Corresponding TUI and GUI options for import and export will not be available.                                                                                     
Reading journal file job1.in...

> file/read-case-data test_case/cas_dat/test_case.cas.gz
WARNING: Rank:0 Machine node-23.hpc.ugal.ro has 34 % of RAM filled with file buffer caches.
This can cause potential performance issues. Please use -cflush flag to flush the cache.
(In case of any trouble with that, try the TUI/Scheme command '(flush-cache)'.)

WARNING: Rank:24 Machine node-24.hpc.ugal.ro has 32 % of RAM filled with file buffer caches.
This can cause potential performance issues. Please use -cflush flag to flush the cache.
(In case of any trouble with that, try the TUI/Scheme command '(flush-cache)'.)

Multicore processors detected. Processor affinity set!

Reading "\"| gunzip -c \\\"test_case/cas_dat/test_case.cas.gz\\\"\""...

Buffering for file scan...

Dropping old-style context pbns single-phase steady from the case file.
Dropping old-style context pbns single-phase steady buoyant from the case file.
Dropping old-style context pbns single-phase transient from the case file.
Dropping old-style context dbns compressible steady from the case file.
Dropping old-style context dbns incompressible steady from the case file.
Dropping old-style context dbns compressible transient from the case file.
Dropping old-style context dbns incompressible transient from the case file.
Dropping old-style context eulerian multiphase from the case file.
Dropping old-style context mixture multiphase from the case file.

11931846 polyhedra cells, zone  3, binary.
Warning: reading 64 partition grid onto 48 compute node machine;
         will auto partition.
11931846 cell partition ids, zone  3, 64 partitions, binary.
68607770 polygonal interior faces, zone  2, binary.
 1230901 polygonal wall faces, zone  1, binary.
    2682 polygonal wall faces, zone  8, binary.
    3196 polygonal wall faces, zone  9, binary.
   19271 polygonal wall faces, zone 11, binary.



..........

 

Ultima actualizare 19 februarie 2020

 

Ultimele actualizări

Informații generale