< Podręcznik użytkownika KDM < Oprogramowanie KDM < Oprogramowanie naukowe
|
CPMD (ang. Car-Parrinello Molecular Dynamics) - pakiet z dziedziny dynamiki molekularnej, implementujący metodologię Car-Parinello. Pierwszą wersję pakietu napisał Jurg Hutter w laboratorium badawczym IBM w Zurichu, kolejne wersje rozwijane były przy współudziale ludzi i organizacji z całego świata. Obecnie za licencjonowanie pakietu odpowiada IBM corp i MPI Stuttgart. Po dopełnieniu formalności licencyjnych pakiet jest udostępniany za darmo organizacjom niekomercyjnym.
Przykładowa animacja dynamiki ruchu protonu w dimerze kwasu monochlorooactowego w temperaturze 450K, obliczona metodą CPMD (z pracy doktorskiej Piotra Durlaka pt. "Teoretyczne badanie właściwości i dynamiki ruchu protonu w prostych kwasach karboksylowych", promotor: prof. dr hab. Zdzisław Latajka, Wydział Chemii Uniwersytetu Wrocławskiego, 2007 r.)
{{#ev:googlevideo|2202744854524015506|400}}
Spis treści |
CPMD dostępny jest na wiele architektur i jest dobrze zrównoleglony (przy użyciu MPI i Mixed MPI/SMP). Główne własności pakietu:
CPMD dostępny jest na Leo i Novej w wersji sekwencyjnej i równoległej. Zainstalowany został pakiet w wersjach 3.9, 3.11, 3.13.
/home. Powoduje to blokowanie serwerów NFS a tym samym całych klastrów i wszystkich pozostałych zadań obliczeniowych. Duże pliki prosimy generować wyłącznie na dyskach /scratch.
qdel do kończenia zadania (CPMD niepoprawnie obsługuje sygnały). Zamiast tego, w katalogu zadania należy utworzyć pusty plik o nazwie EXIT i poczekać na automatyczne zakończenie się zadania:
touch EXIT
sub-cpmd (opisane poniżej), należy ustawić zmienną środowiskową:
export PP_LIBRARY_PATH=/moj/katalog_z_PP/
Wstawianie zadań CPMD do poszczególnych kolejek systemu PBS odbywa się przez wywołanie skryptu (lokalizacja: /usr/local/bin):
sub-cpmd plik.inp wielkosc_pamieci_w_MB [kolejka] [liczba-procesorow]
gdzie:
plik.inp - plik z danymi programu
wielkosc_pamieci-w-MB - pamięć operacyjna dla całego zadania, musi być podana w MB.
kolejka - kolejka PBS, w której ma być uruchomione zadanie (domyślnie parallel)
liczba_procesorow - domyślnie zadanie uruchamiane jest na 4 procesorach, wartość tego parametru powinna być wielokrotnością 4.
Skrypt domyślnie uruchamia najnowszą wersję programu. Wyniki obliczeń będą wygenerowane do pliku o tej samej nazwie z rozszerzeniem .out.
wersja: 3.9.2, 3.11.1, 3.13.2
Na Leo CPMD działa sekwencyjnie i równolegle. Zadania typu Path Integrals prosimy wstawiać do kolejki skryptem sub-cpmd-PI.
wersja: 3.11.1, 3.13.2
Na klastrze Nova dostępna jest wersja równoległa (kompilacja z MKL, MVAPICH).
Zadania wstawiane poleceniem sub-cpmd standardowo startują z dysku /lustre/scratch/, który jest współdzielony przez wszystkie węzły, w tym dostępowy.
Jeżeli użytkownik w swoim skrypcie startowym ustawi katalog roboczy na /scratch/, wówczas zadania korzystają z dysków lokalnych na poszczególnych węzłach. Zadanie składuje pliki tymczasowe tylko na jednym węźle, nawet jeśli jest równoległe i liczy się na kilku węzłach. Tam pozostają pliki RESTART itd. Jest to pierwszy węzeł z listy, podanej w wyniku wywołania polecenia:
> qstat -n NUMER_ZADANIA
lub w pliku wyników w wierszu: "THIS JOB RUNS ON: wn001.egee".
Plik wyników tworzony jest na dysku /home/. Tworzenie plików RESTART itp. na dysku /home/ jest zabronione. Pliki te będą automatycznie kasowane.
CPMD był testowany na wielu maszynach obliczeniowych (Grom, Układ, Gromada). Testy wykazały nie do końca przewidywalne zachowanie pakietu podczas uruchomień równoległych i jego wrażliwość na zmiany parametrów wejściowych.
Testy przedstawione poniżej odbywały się na nieobciążonych węzłach klastra Gromada. Wyników testów nie można traktować jako podstawy do ścisłego określenia wydajności obliczeniowej klastra, celem testowych uruchomień nie było benchmarkowanie. Wyniki wskazują natomiast na problemy pojawiające się podczas równoległego uruchamiania programu.
Konfiguracja testów:
Uzyskane wyniki ilustruje wykres przyspieszenia. Jak widać, jest to wykres piłowy, wykresy o podobnej charakterystyce (chociaż bardziej wyrównane) były uzyskiwane podczas testów na innych serwerach. Program zrównolegla się bardzo dobrze dla pewnych ilości procesorów, podczas gdy dla innych osiąga wyniki bliskie sekwencyjnemu. Średnia tendencja przyspieszenia jest wzrostowa, jednak złe rezultaty uzyskiwane dla niektórych konfiguracji wymagają uważnego doboru parametrów.
Wyniki trudno jednoznacznie zinterpretować, ponieważ nie wykazują bezpośredniej zależności od żadnego z parametrów środowiska i parametrów wejściowych programu. Program liczy FFT i możliwe, że dłuższe czasy dla większej liczby procesorów wynikają z nieoptymalnego podziału danego problemu pomiędzy procesory, jednak nie udało się ustalić tego jednoznacznie. Z informacji autora pakietu wynika, że program może wykazywać tego typu nieregularności, jednak ustalenie przyczyny nie jest proste, ze względu na skomplikowane i trudne do identyfikacji zależności między dziedziną i parametrami programu a czasem wykonania.
Zwiększanie parametru CUTOFF powoduje szybki wzrost czasu obliczeń, jak również większe zużycie pamięci.
Nie jest zalecane uruchamianie wersji równoległej programu CPMD jednoprocesowo. Jest to związane z wielokrotnie wyższym zużyciem pamięci niż w wersji sekwencyjnej, dokumentacja podaje, że nawet 10-krotnie wyższym. Prowadzi to do niepotrzebnych strat zasobów.
Dokumentacja CPMD dostępna jest na każdym z serwerów w katalogu instalacji, np. na Leo: /usr/local/CPMD/manual/manual.pdf .
Zobacz też:
| Oprogramowanie naukowe | Abaqus ⋅ ABINIT ⋅ Accelrys ⋅ ACES2 ⋅ ADF ⋅ ANSYS Fluent ⋅ APBS ⋅ AutoDock ⋅ CAMFR ⋅ CPMD ⋅ Dalton ⋅ FDS-SMV ⋅ FreeFEM ⋅ GAMESS ⋅ Gaussian ⋅ Gromacs ⋅ Hmmer ⋅ LAMMPS ⋅ Matlab ⋅ Meep ⋅ Molcas ⋅ Molden ⋅ Molpro ⋅ MOPAC ⋅ MPB ⋅ NAMD ⋅ NWChem ⋅ OpenFOAM ⋅ Pro/ENGINEER ⋅ ProtoMol ⋅ R ⋅ SIESTA ⋅ Sybyl ⋅ TURBOMOLE |
|---|