Opis

GAMESS (General Atomic and Molecular Electronic Structure System) je ab initio računalno-kemijska aplikacija opće namjene te posjeduje sve uobičajene QM/MM metode.

GAMESS je otvorenog koda, a koristi MPI paralelizaciju. Određeni izračuni dopuštaju i OpenMP (threaded) paralelizaciju.

GAMESS se na računalnom klasteru Supek pokreće prilagođenom rungms.mpi skriptom.

Pravilno pokretanje GAMESS-a zahtjeva dobro razumijevanje PBS varijabli, odnosno načina kako se dodjeljuju resursi.

GAMESS zahtjeva da prilikom paralelizacije na svakom čvoru ima jednak i paran broj MPI procesa. Naravno, to znači da možete koristiti i samo jedan računalni čvor.

Verzije

VerzijaModulPodrškaParalelizacijaPrevodiocKnjižniceSupekPadobran
September 30, 2022 R2 Public Releasescientific/gamess/22.09CPUMPI + OpenMPCrayCraycheck mark button(error)

Službena dokumentacija

PBS varijable - resursi

test.pbs
#PBS -l select=4:mpiprocs=4:ncpus=4
#PBS -l place=scatter
PBS resursi mpiprocs i ncpus definirani su po select-u, odnosno po tzv. chunku (komadu čvora).

ncpus predstavlja broj zatraženih CPU jezgara po jednom selectu. To znači da je ukupan broj zatraženih CPU jezgara jednak select×ncpus.

Ako nije eksplicitno definiran, podrazumijeva se ncpus=1.


mpiprocs predstavlja broj MPI procesa po jednom selectu. To znači da je ukupan broj MPI procesa jednak select×mpiprocs.

Za svaki definirani select, u datoteku PBS_NODEFILE zapisuje se po select×mpiprocs hostname-ova, odnosno radnih čvorova (čiji je to komad). Koji će to biti čvorovi, ovisi o "raspodjeli" chunkova, odnosno selectova:

  • place=scatter će svaki chunk smjestiti na drugi čvor.
  • place=pack će svaki chunk smjestiti na isti čvor.
  • place=free će chunkove smjestiti na one čvorove koji su slobodni, bez konkretne pravilnosti.

Za svaki zapisani hostname, MPI pokretač mpiexec će pokrenuti će po jedan MPI proces.

Ako nije eksplicitno definiran, podrazmijeva se mpiprocs=1.

Kako bi se za svaki MPI proces dodijelila po jedna CPU jezgra, nužno je da su vrijednosti ncpus i mpiprocs iste.

OpenMP za svoju varijablu OMP_NUM_THREADS preuzima (podrazumijeva) vrijednost ncpus.

Ako ne koristite OpenMP, nužno je u skripti dodatno definirati i export OMP_NUM_THREADS=1, kako bi se pregazila podrazumijevana vrijednost.

PBS primjeri

U nadolazećim primjerima pokazat će se kako različito definirane select i mpiprocs varijable utječu na sadržaj PBS_NODEFILE datoteke.

Kako je ranije objašnjeno, MPI pokretač mpiexec čita sadržaj PBS_NODEFILE datoteke i za svaku liniju (hostname) pokreće po jedan MPI proces.


1. primjer

test.pbs
#PBS -l select=4:mpiprocs=2
#PBS -l place=scatter


PBS_NODEFILE
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b1n0.hsn.hpc.srce.hr
x8000c0s0b1n0.hsn.hpc.srce.hr
x8000c0s1b0n0.hsn.hpc.srce.hr
x8000c0s1b0n0.hsn.hpc.srce.hr
x8000c0s1b0n1.hsn.hpc.srce.hr
x8000c0s1b0n1.hsn.hpc.srce.hr

U gore prikazanoj PBS_NODEFILE datoteci možemo uočiti 4 jedinstvena hostname-a (select=4, place=scatter) od kojih se svaki ponavlja 2 puta (mpiprocs=2).

2. primjer

test.pbs
#PBS -l select=4:mpiprocs=2
#PBS -l place=pack


PBS_NODEFILE
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr

U gore prikazanoj PBS_NODEFILE datoteci možemo uočiti 8 istih hostname-ova, nastalih kao umnožak 4 chunka s istog čvora (select=4, place=scatter) i 2 MPI procesa po chunk-u (mpiprocs=2).

3. primjer

test.pbs
#PBS -l select=1:mpiprocs=8
#PBS -l place=pack


PBS_NODEFILE
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr

U gore prikazanoj PBS_NODEFILE datoteci možemo uočiti isti rezultat kao u 2. primjeru.

4. primjer

test.pbs
#PBS -l select=8
#PBS -l place=pack


PBS_NODEFILE
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr
x8000c0s0b0n1.hsn.hpc.srce.hr

U gore prikazanoj PBS_NODEFILE možemo uočiti isti rezultat kao u prethodna dva primjera, budući da se podrazumijeva mpiprocs=1.

GAMESS primjeri

U nadolazećim primjerima pokazat će se različiti načini pokretanja GAMESS-a.

Ulaznu datoteku input.inp možete kopirati iz code block-a niže.

input.inp
!   File created by the GAMESS Input Deck Generator Plugin for Avogadro
 $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 $END
 $CONTRL SCFTYP=RHF RUNTYP=ENERGY DFTTYP=B3LYP $END
 $SYSTEM MWORDS=4000 $END

 $DATA
Title
C1
Br    35,0     3,56792     6,20395     0,27301
O     8,0     5,99385     1,25485     2,14969
O     8,0     4,86398     4,86307     4,91333
O     8,0     9,36952     3,86128     5,45457
O     8,0     1,54687    -0,26364     1,35457
O     8,0    11,23010    -0,35017     7,71431
O     8,0     7,94882    -3,40000     7,34023
O     8,0     7,71226    -3,45738     5,09165
O     8,0     3,54573     4,66607    12,08432
O     8,0     1,06083     5,28575     1,66226
N     7,0     5,86736     3,50561     2,65626
N     7,0     6,76378     4,83325     6,09126
N     7,0     3,13636     1,03709     2,22294
N     7,0     8,95790     1,86028     6,26477
N     7,0     9,37450    -1,11066     6,82270
N     7,0     0,99106     3,20019     2,43191
N     7,0     0,47930     1,60281     6,30486
N     7,0    -4,09822     2,53404     3,48143
N     7,0     0,07650     0,11692     8,10206
N     7,0    -1,61601     1,03380     6,96204
N     7,0    -5,90834     3,08906     2,03608
N     7,0    -6,15293     3,20068     4,22719
C     6,0     6,77054     3,83619     3,77586
C     6,0     7,77853     4,83972     3,18590
C     6,0     7,86928     4,45830     1,73522
C     6,0     6,43765     4,05239     1,43978
C     6,0     5,33264     2,21094     2,56285
C     6,0     6,04418     4,51843     4,95775
C     6,0     3,85334     2,06871     3,03035
C     6,0     3,82518     1,69347     4,53030
C     6,0     7,43867     3,82045     6,93742
C     6,0     2,48426     2,08700     5,12569
C     6,0     6,42368     2,85151     7,55072
C     6,0     9,49202     1,34388     7,53402
C     6,0     8,62178     3,18402     6,16079
C     6,0    10,43357     2,39875     8,19614
C     6,0     1,81613     0,80150     1,92414
C     6,0     0,64934     1,77310     2,35908
C     6,0     1,92868     1,40766     6,36426
C     6,0    10,58420     2,18829     9,71051
C     6,0     5,63196     3,34613     8,74061
C     6,0    10,09604    -0,06626     7,32267
C     6,0    -0,77919     1,60233     1,79357
C     6,0    11,77364     2,60004     7,47908
C     6,0     8,04480    -1,29490     6,17027
C     6,0     6,90311    -0,60391     6,92005
C     6,0    -1,81048     1,99183     2,88756
C     6,0    10,80985     3,51979    10,42475
C     6,0     5,42320    -1,01713     6,76441
C     6,0     4,62016     4,30159     8,59811
C     6,0     5,86515     2,79198    10,01310
C     6,0    -3,21452     2,23620     2,34802
C     6,0     7,87635    -2,81520     6,11632
C     6,0     3,91433     4,75877     9,71382
C     6,0     5,13777     3,22430    11,12151
C     6,0     1,30848     4,10447     1,44103
C     6,0     5,04426    -2,41022     7,25155
C     6,0     4,58305    -0,03324     7,59020
C     6,0     4,18971     4,22448    10,96785
C     6,0    -0,27787     0,95739     7,10655
C     6,0     2,08674     3,67797     0,23409
C     6,0     3,21717     4,39098    -0,19055
C     6,0     1,80685     2,46734    -0,40829
C     6,0    -5,29455     2,91008     3,22888
C     6,0     4,15299     3,77527    -1,03839
C     6,0     2,75670     1,83756    -1,21452
C     6,0     3,95783     2,47120    -1,48620
H     1,0     6,20607     5,46475     6,65425
H     1,0     3,74093     0,30166     1,86990
H     1,0     9,63459     1,68432     5,52462
H     1,0    10,01025    -1,89644     6,68656
H     1,0     0,59762     3,67483     3,23782
H     1,0    -0,57546     0,02060     8,86321
H     1,0     1,03955     0,17581     8,39985
H     1,0    -1,88949     1,72173     6,26525
H     1,0    -2,17398     1,09309     7,79882
H     1,0    -6,86736     2,76982     2,04855
H     1,0    -5,40994     2,68962     1,24739
H     1,0    -5,65740     3,26954     5,11098
H     1,0    -6,68607     4,04472     4,04752
H     1,0     8,07045    -2,75206     8,06255
H     1,0     3,09190     5,49713    11,86526
H     1,0     7,24515     2,90504     4,09623
H     1,0     8,77279     4,80883     3,62297
H     1,0     7,41920     5,86992     3,29675
H     1,0     8,54500     3,61423     1,58821
H     1,0     8,20474     5,29051     1,10705
H     1,0     5,87825     4,96011     1,21269
H     1,0     6,37482     3,37867     0,59775
H     1,0     3,38113     3,03839     2,87192
H     1,0     4,62070     2,20001     5,06906
H     1,0     3,99648     0,61838     4,63248
H     1,0     7,90445     4,39567     7,74781
H     1,0     1,80261     1,75289     4,38402
H     1,0     2,36950     3,17263     5,17808
H     1,0     6,91970     1,95570     7,89964
H     1,0     5,72799     2,52435     6,78214
H     1,0     8,65416     1,19042     8,21306
H     1,0     9,92936     3,36725     8,11349
H     1,0     0,46571     1,43639     3,37840
H     1,0     2,14881     0,33513     6,30793
H     1,0     2,35175     1,84692     7,26882
H     1,0     9,66694     1,74974    10,12094
H     1,0    11,40373     1,49746     9,93107
H     1,0    -0,96209     0,56666     1,48408
H     1,0    -0,93324     2,24205     0,91930
H     1,0    12,46787     1,77469     7,65101
H     1,0    12,26079     3,51550     7,83202
H     1,0    11,63796     2,71101     6,39850
H     1,0     8,12843    -0,91806     5,14459
H     1,0     7,14143    -0,57307     7,98980
H     1,0     6,93468     0,42482     6,55774
H     1,0    -1,48860     2,90243     3,40933
H     1,0    -1,83994     1,20272     3,65067
H     1,0     9,99350     4,22023    10,20834
H     1,0    11,74724     3,98863    10,11234
H     1,0    10,83987     3,37390    11,50761
H     1,0     5,13946    -0,93789     5,70965
H     1,0     4,35297     4,69340     7,61837
H     1,0     6,60342     2,00600    10,15675
H     1,0    -3,18607     3,08078     1,65166
H     1,0    -3,56863     1,34313     1,82331
H     1,0     3,14195     5,50926     9,57976
H     1,0     5,31545     2,79011    12,10182
H     1,0     5,40037    -2,58094     8,27141
H     1,0     5,42058    -3,19176     6,59269
H     1,0     3,95298    -2,52695     7,25648
H     1,0     5,02155     0,15724     8,57356
H     1,0     3,56567    -0,39229     7,75619
H     1,0     4,50859     0,92190     7,07144
H     1,0     0,87795     1,93984    -0,23697
H     1,0     5,06428     4,29397    -1,32622
H     1,0     2,56523     0,83165    -1,58304
H     1,0     4,72425     1,96229    -2,06482
 $END

16 MPI procesa: 16 MPI procesa × 1 čvor

run.sge
#PBS -q cpu
#PBS -l select=1:mpiprocs=16:ncpus=16

export OMP_NUM_THREADS=1

cd ${PBS_O_WORKDIR}

module load scientific/gamess/22.09

rungms.mpi input.inp

16 MPI procesa: 4 MPI procesa × 4 čvora

run.sge
#PBS -q cpu
#PBS -l select=4:mpiprocs=4:ncpus=4
#PBS -l place=scatter

export OMP_NUM_THREADS=1

cd ${PBS_O_WORKDIR}

module load scientific/gamess/22.09

rungms.mpi input.inp