CPMD: Różnice pomiędzy wersjami

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
 
(Nie pokazano 14 wersji utworzonych przez 4 użytkowników)
Linia 1: Linia 1:
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]]</small>
+
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < CPMD</small>
{{zasobytab|logo= |serwery=[[Leo]]<br>[[Nova]]}}
+
{{aplikacja|nazwa=CPMD|logo=[[Plik:cpmd.jpg|noframe|center]] |serwer=[[Bem]]|wersja='''3.15.3''', 4.1}}
 
'''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.
 
'''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}}
 
  
 
== Informacje ogólne ==
 
== Informacje ogólne ==
Linia 16: Linia 12:
 
* dynamika molekularna zespołów mikrokanonicznego (NVE), kanonicznego (NVT) oraz izotermiczno-izobarycznego (NPT),
 
* dynamika molekularna zespołów mikrokanonicznego (NVE), kanonicznego (NVT) oraz izotermiczno-izobarycznego (NPT),
 
* dynamika molekularna typu ''path intagral'',
 
* dynamika molekularna typu ''path intagral'',
* ''response functions''.
+
* ''response functions'',
* stany wzbudzone.
+
* stany wzbudzone,
 
* własności elektronowe.
 
* własności elektronowe.
  
 
== CPMD w WCSS ==
 
== CPMD w WCSS ==
CPMD dostępny jest na [[Leo]] i [[Nova|Novej]] w wersji sekwencyjnej i równoległej. Zainstalowany został pakiet w wersjach 3.9, 3.11, 3.13.2.
+
CPMD dostępny jest na klastrze [[Bem]] w wersjach 3.15.3 (domyślna) oraz 4.1.
  
 
;Zalecenia ogólne
 
;Zalecenia ogólne
 
* Prosimy o nie tworzenie dużych plików trajektorii ani restartów w katalogach domowych <code>/home</code>. 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 '''<code>/scratch</code>'''.
 
* Prosimy o nie tworzenie dużych plików trajektorii ani restartów w katalogach domowych <code>/home</code>. 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 '''<code>/scratch</code>'''.
* Prosimy o nie używanie polecenia '''<code>qdel</code>''' 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:
+
* Prosimy nie używać polecenia '''<code>qdel</code>''' 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
 
  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 <code>sub-cpmd</code> (opisane poniżej), należy ustawić zmienną środowiskową:
 
* 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 <code>sub-cpmd</code> (opisane poniżej), należy ustawić zmienną środowiskową:
Linia 31: Linia 27:
 
* Prosimy nie używać własnych skryptów do wstawiania zadań. Utrudnia to wprowadzanie zmian systemowych.
 
* Prosimy nie używać własnych skryptów do wstawiania zadań. Utrudnia to wprowadzanie zmian systemowych.
  
=== [[Leo]] ===
+
=== Bem ===
wersja: 3.9.2, 3.11.1, 3.13.2
+
wersja: 3.15.3
 
 
Na Leo CPMD działa sekwencyjnie i równolegle.
 
 
 
;Wstawianie zadań do kolejki
 
Wstawianie zadań CPMD do poszczególnych kolejek systemu PBS odbywa się przez wywołanie skryptu (lokalizacja: /usr/local/bin) <code>sub-cpmd</code>. Zadania typu Path Integrals prosimy wstawiać do kolejki skryptem <code>sub-cpmd-PI</code>.
 
  
=== [[Nova]] ===
 
wersja: 3.11.1, 3.13.2
 
  
Na klastrze Nova dostępna jest wersja równoległa (kompilacja z MKL, MVAPICH).  
+
Wstawianie zadań CPMD do systemu kolejkowego [[PBS]] odbywa się przez wywołanie skryptu sub-cpmd (lokalizacja: <code>/usr/local/bin//usr/local/bin/sub-cpmd</code>).
  
;Wstawianie zadań do kolejki
+
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:
  
Wstawianie zadań CPMD do poszczególnych kolejek systemu [[PBS]] odbywa się przez wywołanie skryptu (lokalizacja: <code>/usr/local/bin</code>):
+
>sub-cpmd
 +
Usage: /usr/local/bin/sub-cpmd input_file [parameters]
 +
Parameters:
 +
-q queue (default - main)
 +
-n nodes (default - 1)
 +
-p cores (per node, default - 1)
 +
-m memory (per node, in MB, default - 2000)
 +
-w walltime (in hours, default - 504)
 +
-s pseudopotentials_path (default /usr/local/cpmd/intel-15.0/3.15.3/PPLIBNEW)
 +
 +
Na przykład
  
  sub-cpmd plik_wejsciowy.inp [kolejka] [liczba_cpu] [pamiec_per_cpu_w_MB]
+
  > sub-cpmd test.inp -q main -n 1 -p 2 -m 4000 -w 2 -s $HOME/potencjal
  
gdzie:
+
Zadanie uruchomione zostanie na 2 rdzeniach (w obrębie jednego węzła), wymaga 4000 MB RAM  (po 2000 MB na proces), walltime zadania jest równy 2 godziny.
* <code>plik_wejsciowy.inp</code> - plik z danymi programu
 
* <code>pamiec_per_cpu_w_MB</code> - pamięć operacyjna per 1 cpu podana w MB (domyślnie 1800 MB).
 
* <code>kolejka</code> - kolejka PBS, w której ma być uruchomione zadanie (domyślnie parallel)
 
* <code>liczba_cpu</code> - 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 <code>.out</code>.
 
  
 
; Uwagi
 
; Uwagi
Zadania wstawiane poleceniem sub-cpmd standardowo startują z dysku <code>/lustre/scratch/</code>, który jest współdzielony przez wszystkie węzły, w tym dostępowy.
+
*Skrypt uruchamia domyślną wersję programu. Wyniki obliczeń będą wygenerowane do pliku z rozszerzeniem <code>.out</code>.
 
+
*Zadania wstawiane poleceniem sub-cpmd standardowo startują z dysku <code>/lustre/scratch/</code>, który jest współdzielony przez wszystkie węzły, w tym dostępowy.
Plik wyników tworzony jest na dysku <code>/home/</code>. Tworzenie plików RESTART itp. na dysku <code>/home/</code> jest zabronione. Pliki te będą automatycznie kasowane.
+
*Plik wyników tworzony jest na dysku <code>/home/</code>. Tworzenie plików RESTART itp. na dysku <code>/home/</code> 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.
 
 
 
[[Grafika:Cpmd-si63-70ryd-infini.gif|thumb|400px|right|Wykres piłowy dla przyspieszenia obliczeń równoległych CPMD na [[Gromada|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.
+
=== Informacje o wykorzystaniu ===
 +
{{Podziękowanie_WCSS}}
  
 
== Dokumentacja ==
 
== Dokumentacja ==
Dokumentacja CPMD dostępna jest na każdym z serwerów w katalogu instalacji, np. na Leo: /usr/local/CPMD/manual/manual.pdf .
+
Dokumentacja CPMD dostępna jest na każdym z serwerów w katalogu instalacji.
  
 
=== CPMD w sieci ===
 
=== CPMD w sieci ===
 
* [http://www.cpmd.org Strona główna konsorcjum CPMD]
 
* [http://www.cpmd.org Strona główna konsorcjum CPMD]
* [http://pages.nyu.edu/~mt33/abstracts/manual/manual.html Manual do CPMD 3.0d]
 
* [http://www.cpmd.org/manual/manual.html Manual do CPMD 3.7.0]
 
 
* [http://www.theochem.ruhr-uni-bochum.de/go/cpmd-tutor.html Tutorial]
 
* [http://www.theochem.ruhr-uni-bochum.de/go/cpmd-tutor.html Tutorial]
  

Aktualna wersja na dzień 14:56, 22 lut 2016

< Podręcznik użytkownika KDM < Oprogramowanie KDM < Oprogramowanie naukowe < CPMD

CPMD
noframe
Serwer Wersja
Bem 3.15.3, 4.1
Kontakt
kdm@wcss.pl

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.

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 klastrze Bem w wersjach 3.15.3 (domyślna) oraz 4.1.

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 nie używać 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.

Bem

wersja: 3.15.3


Wstawianie zadań CPMD do systemu kolejkowego PBS odbywa się przez wywołanie skryptu sub-cpmd (lokalizacja: /usr/local/bin//usr/local/bin/sub-cpmd).

Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:

>sub-cpmd
Usage: /usr/local/bin/sub-cpmd input_file [parameters]
Parameters:
-q queue (default - main)
-n nodes (default - 1)
-p cores (per node, default - 1)
-m memory (per node, in MB, default - 2000)
-w walltime (in hours, default - 504)
-s pseudopotentials_path (default /usr/local/cpmd/intel-15.0/3.15.3/PPLIBNEW)

Na przykład

> sub-cpmd test.inp -q main -n 1 -p 2 -m 4000 -w 2 -s $HOME/potencjal

Zadanie uruchomione zostanie na 2 rdzeniach (w obrębie jednego węzła), wymaga 4000 MB RAM (po 2000 MB na proces), walltime zadania jest równy 2 godziny.


Uwagi
  • Skrypt uruchamia domyślną wersję programu. Wyniki obliczeń będą wygenerowane do pliku z rozszerzeniem .out.
  • 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.

Informacje o wykorzystaniu

Wszelkie publikacje, (w tym prace doktorskie i dyplomowe) wykorzystujące wyniki obliczeń wykonanych na komputerach WCSS, powinny zawierać podziękowania postaci (odpowiednio do języka publikacji):

"Obliczenia wykonano na komputerach Wrocławskiego Centrum Sieciowo-Superkomputerowego (http://www.wcss.pl), grant obliczeniowy Nr ... "

"Calculations have been carried out in Wroclaw Centre for Networking and Supercomputing (http://www.wcss.pl), grant No. ..."

Dokumentacja

Dokumentacja CPMD dostępna jest na każdym z serwerów w katalogu instalacji.

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ż: