Obliczenia GPGPU to wykorzystanie procesorów graficznych wspólnie z jednostką CPU do przyspieszenia obliczeń naukowych i inżynierskich. Infrastruktura PL-Grid oferuje swoim użytkownikom dostęp do maszyny zawierającej karty GPGPU.Jest to Zeus CPGPU w ACK CYFRONET AGH. Zeus GPGPU jest grupą serwerów obliczeniowych zawierających karty GPGPU udostępnianych użytkownikom poprzez system kolejkowy.Obecnie w Zeusie GPGPU dostępne dla użytkowników są 504 rdzenie obliczeniowe, 204 karty GPGPU oraz 3,5 TB pamięci operacyjnej. Oprogramowanie dostępne na klastrze Zeus GPGPU to: Terachem, Gromacs,,NAMD, GAMESS.
Dostęp do GPGPU jest możliwy jednie z poziomu systemu kolejkowego klastra Zeus. Należy zatem najpierw uzyskać dostęp do lokalnego systemu kolejkowego na klastrze Zeus w ACK CYFRONET AGH, aktywując w portalu użytkownika odpowiednie usługi (wskazane jako "usługi nadrzędne").
Następnie należy wypełnić motywację i aplikować o usługę.
Zadanie należy umieścić w kolejce gpgpu na klastrze Zeus.
Poza ustawieniem w skrypcie typowych parametrów istotnych dla systemu kolejkowego, konieczna jest specyfikacja parametru gpus oznaczającego żądaną liczbę kart graficznych na pojedynczym węźle obliczeniowym. Często oprogramowanie wymaga, aby karta była jednocześnie dostępna dla wielu procesów. Należy wtedy dodatkowo ustawić jej tryb pracy na shared, specyfikując gpus=1:shared lub gpus=2:shared. Inne możliwe tryby pracy to exclusive_thread i exclusive_process.
W razie potrzeby identyfikatory przydzielonych przez system kolejkowy kart graficznych można sprawdzić wyświetlając zawartość pliku wskazywanego przez zmienną środowiskową $PBS_GPUFILE.
Przykładowe skrypty dla systemu kolejkowego
#!/bin/sh # TeraChem can run on a single node only #PBS -l nodes=1:ppn=2:terachem:gpus=2:exclusive_process #PBS -N sample_terachem #PBS -q gpgpu cd $PBS_O_WORKDIR # initializing proper environment for TeraChem module add gpu/terachem # actual job $TERACHEMRUN ch.inp > ch.log
#!/bin/sh #PBS -l nodes=3:ppn=12:gpus=2:shared #PBS -N sample_namd #PBS -q gpgpu cd $PBS_O_WORKDIR # initializing proper environment for NAMD with GPU support module add gpu/namd # actual job runnamd stmv.namd > stmv2_2x2.log
#!/bin/sh # the number of GPUs requested # at the moment it must be set to 2 per node #PBS -l nodes=2:ppn=4:gpus=2:exclusive_process #PBS -N sample_gamess #PBS -q gpgpu # changing directory to the one from which the job is submitted cd $PBS_O_WORKDIR # initializing proper environment for GAMESS with GPU support module add gpu/gamess # actual job rungms noq15 >& noq15.log