Pagal T.Railos dokumentaciją.
Nuo 2018-11-23 superkompiuteryje reikia užsikrauti reikiamą Comsol versiją su „module load“ komanda prieš atliekant skaičiavimus su juo.
I. Comsol pradinių failų paruošimas gali būti atliekamas pasileidžiant Comsol keliais būdais:
ssh -X cluster module load comsol/5.4_s comsol
II. Pirmiausia COMSOL modelyje reikėtų numatyti, kaip galėtų būti lygiagretinami skaičiavimai. Mano atveju yra atliekama serija nepriklausomų skaičiavimų pagal tam tikro parametro reikšmę, todėl jie gali būti išskirstomi per pasirinktą kiekį skaičiavimo mazgų. Tam man užteko pažymėti „Distribute parameters“ opciją (prisegu screenshot'ą). Bet kitokio modelio atveju gali būti ir kažkaip kitaip.
III. Prisijungti prie superkompiuterio per SSH, įsikelti modelį, išsaugotą .mph formatu. Daugiau informacijos apie prisijungimą ir darbą su superkompiuteriu: https://mif.vu.lt/cluster/#login
IV. Susikurti SLURM užduoties skriptą, paleidžiantį įkeltą modelį. Skripto pavyzdys:
#!/bin/bash #SBATCH -p short #SBATCH -N 5 #SBATCH --ntasks-per-node=1 #SBATCH --cpus-per-task=12 #SBATCH -C alpha module load comsol/5.4_r comsol -mpibootstrap slurm -mpifabrics tcp:tcp -nn 5 -nnhost 1 -np 12 batch -inputfile modelis.mph -outputfile modelio_sprendimas.mph -batchlog modelis.log
Naudojamų klasterio mazgų skaičius (šiuo atveju 5) turi būti nurodomas ir skripto pradžioje (-N parametras), ir „comsol“ komandoje prie -nn parametro. Kiti parametrai -nnhost ir -np gali likti tokie patys, jie nurodo atitinkamai kiek COMSOL instance'ų paleidžiama viename mazge ir kiek CPU kiekvienas instance'as naudoja.
Skriptą išsaugoti tame pačiame kataloge, kur įkeltas modelio failas, pavadinti pvz. „job.sh“.
V. Sukurti SLURM užduotį:
sbatch job.sh
Užduotis turėtų matytis įvykdžius šią komandą:
squeue
Pradžioje jos būsena gali būti CF (laukiama, kol startuos visi užsakyti skaičiavimų mazgai), po to turėtų pasikeisti į būseną R (užduotis vykdoma). Modelio kataloge turėtų atsirasti „slurm-<užduoties ID>.out“ failas, jame bus naudojamų mazgų sąrašas. Taip pat modelio vykdymo progresą galima matyti .log faile, kuris skaičiavimų metu bus nuolat pildomas.
Man yra buvę atvejų, kai sukūrus SLURM užduotį, skaičiavimai kažkodėl nestartuodavo (užduotis tiesiog kabėdavo „squeue“ sąraše). Tokiu atveju galima pabandyti atšaukti užduotį ir sukurti iš naujo:
scancel <užduoties ID> sbatch job.sh
VI. Sėkmingai pasibaigus skaičiavimams, tame pačiame kataloge turėtų atsirasti kitas, didesnis .mph failas. Jį galima parsisiųsti, atsidaryti su COMSOL ir rezultatus eksportuoti norimu formatu. Arba dar galima iš anksto modelyje sukonfigūruoti eksportavimą į .csv failą (Results → Export), tokiu atveju rezultatai turėtų atsirasti modelio kataloge po skaičiavimų.