CPMD

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania

< 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.)

EmbedVideo nie rozpoznaje usługi wideo „googlevideo”.

Informacje ogólne

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:

  • Praca z pseudopotencjałami norm-conserving oraz ultrasoft,
  • przybliżenia LDA, LSD i GGA, energia swobodna,
  • układy periodyczne i aperiodyczne, k-points,
  • symetria punktowa i przestrzenna,
  • optymalizacja funkcji falowej (bezpośrednia, diagonalizacja, ...),
  • dynamika molekularna zespołów mikrokanonicznego (NVE), kanonicznego (NVT) oraz izotermiczno-izobarycznego (NPT),
  • dynamika molekularna typu path intagral,
  • response functions.
  • stany wzbudzone.
  • własności elektronowe.

CPMD w WCSS

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.2.

Zalecenia ogólne
  • Prosimy o nie tworzenie dużych plików trajektorii ani restartów w katalogach domowych /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.
  • Prosimy o nie używanie polecenia 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
  • Wszystkie potencjały, także niestandardowe - dostępne na stronach domowych CPMD, zostały zainstalowane w katalogach /usr/local/CPMD-xxx/PPLIBNEW/. Jeśli zachodzi potrzeba użycia własnych potencjałów, to przed wykonaniem skryptu sub-cpmd (opisane poniżej), należy ustawić zmienną środowiskową:
export PP_LIBRARY_PATH=/moj/katalog_z_PP/
  • Prosimy nie używać własnych skryptów do wstawiania zadań. Utrudnia to wprowadzanie zmian systemowych.

Leo

wersja: 3.9.2, 3.11.1, 3.13.2

Na Leo CPMD działa sekwencyjnie i równolegle. Wstawianie zadań CPMD do poszczególnych kolejek systemu PBS odbywa się przez wywołanie skryptu (lokalizacja: /usr/local/bin) sub-cpmd. Zadania typu Path Integrals prosimy wstawiać do kolejki skryptem sub-cpmd-PI.

Nova

wersja: 3.11.1, 3.13.2

Na klastrze Nova dostępna jest wersja równoległa (kompilacja z MKL, MVAPICH).

Wstawianie zadań do kolejki

Wstawianie zadań CPMD do poszczególnych kolejek systemu PBS odbywa się przez wywołanie skryptu (lokalizacja: /usr/local/bin):

sub-cpmd plik_wejsciowy.inp [kolejka] [liczba_cpu] [pamiec_per_cpu_w_MB]

gdzie:

  • plik_wejsciowy.inp - plik z danymi programu
  • pamiec_per_cpu_w_MB - pamięć operacyjna per 1 cpu podana w MB (domyślnie 1800 MB).
  • kolejka - kolejka PBS, w której ma być uruchomione zadanie (domyślnie parallel)
  • liczba_cpu - liczba procesorów na których ma liczyć się zadanie (domyślnie 4).

Skrypt uruchamia najnowszą wersję programu. Wyniki obliczeń będą wygenerowane do pliku z rozszerzeniem .out.

Uwagi

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.

Plik wyników tworzony jest na dysku /home/. Tworzenie plików RESTART itp. na dysku /home/ jest zabronione. Pliki te będą automatycznie kasowane.

Uwagi

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.

Wykres piłowy dla przyspieszenia obliczeń równoległych CPMD na Gromadzie

Konfiguracja testów:

  • plik wejściowy CPMD (pobrany ze strony autora pakietu)
  • CPMD VER 3.9.1
  • klaster Gromada (nieobciążony, sieć Infiniband, węzły dwuprocesorowe)
  • MPICH z dev VMI (do obsługi sieci Infiniband), konfiguracja w obrębie węzła shared, między węzłami distributed.

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

Dokumentacja CPMD dostępna jest na każdym z serwerów w katalogu instalacji, np. na Leo: /usr/local/CPMD/manual/manual.pdf .

CPMD w sieci

Bibliografia

  • Jorge Kohanoff: Electronic Structure Calculations for Solids and Molecules: Theory and Computational Methods. Cambridge University Press (May 31, 2006), s. 384. ISBN: 0521815916. (w języku angielskim)

Zobacz też: