19.01.2014 Views

Obliczenia równoległe w chemii kwantowej - ICM

Obliczenia równoległe w chemii kwantowej - ICM

Obliczenia równoległe w chemii kwantowej - ICM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Obliczenia</strong> równoległe w <strong>chemii</strong><br />

<strong>kwantowej</strong><br />

Łukasz Walewski<br />

ljw@icm.edu.pl<br />

Interdyscyplinarne Centrum Modelowania Matematycznego i<br />

Komputerowego<br />

Zakład Biofizyki, Wydział Fizyki<br />

Uniwersytet Warszawski<br />

Jadwisin, 9 marca 2007 – p.1/15


Przeglad<br />

˛<br />

• Na czym polega złożoność obliczeń ab initio?<br />

• Infrastruktura obliczeniowa<br />

• Przykład zadania obliczeniowego<br />

• Skalowanie metod dynamiki molekularnej<br />

Jadwisin, 9 marca 2007 – p.2/15


Density Functional Theory<br />

Gęstość elektronowa:<br />

∫<br />

N dr 2 · · ·dr N |Ψ(r,r 2 ,...,r N )| 2 = n(r) =<br />

N∑<br />

i=1<br />

|Φ i (r)| 2<br />

Ψ(r,r 2 ,...,r N ) – N -elektronowa f. falowa<br />

n(r) – jednoelektronowa gęstość (Hohenberg-Kohn)<br />

Φ i (r) – jednoelektronowe spin-orbitale (Kohn-Sham)<br />

Jadwisin, 9 marca 2007 – p.3/15


Reprezentacja orbitali KS<br />

Rozwinięcie w bazie fal płaskich:<br />

Φ j (r) = √ 1<br />

G∑<br />

max<br />

Ω<br />

G<br />

c j (G) × e iG·r<br />

G – wektor sieci odwrotnej<br />

G max = 1<br />

2π 2 Ω E 3 2<br />

cut – ilość fal płaskich w rozwinięciu<br />

Ω – objętość komórki elementarnej<br />

CP: potraktować c j (G) jako klasyczne<br />

zmienne dynamiczne<br />

Jadwisin, 9 marca 2007 – p.4/15


Złożoność obliczeniowa<br />

• N = 8<br />

• a = 5 Å<br />

• E cut = 70 Ry<br />

⇓<br />

• N occ = 4<br />

• Ω = 843.5 Bohr<br />

• G max = 4 193<br />

Optymalizacja 4 193 × 4 = 16 772 współczynników.<br />

Jadwisin, 9 marca 2007 – p.5/15


Jülich MUlti Processor<br />

John von Neumann Institute für Computing (NIC)<br />

Jülich, Niemcy<br />

Oddany do użytku w 2004 r.<br />

Jadwisin, 9 marca 2007 – p.6/15


Jülich MUlti Processor<br />

Charakterystyka węzła IBM p690 Regatta<br />

• 32 processors, Power4+, 1.7 GHz<br />

• Main Memory: 128 GB, 567 MHz<br />

• Internal L1 cache: 64 KB instruction, 32 KB data<br />

(per processor)<br />

• Shared L2 cache: 1.5 MB (per chip = 2<br />

processors)<br />

• Shared L3 cache: 512 MB (per frame)<br />

• Peak performance: 218 GFLOPS<br />

Jadwisin, 9 marca 2007 – p.7/15


Jülich MUlti Processor<br />

Charakterystyka klastra JUMP<br />

• Total number of p690 frames: 41<br />

• Total number of processors: 1312<br />

• Aggregate peak performance: 8.9 TFLOPS<br />

• LINPACK performance (41 nodes): 5.568 TFLOPS<br />

• Aggregate main memory: 5.2 TByte<br />

• Global disk space (GPFS): 8 x 7 x 14 x 72 GB = 56 TB<br />

• Cluster interconnect: HPS - High Performance Switch:<br />

• Bandwidth > 1400 MB/s per link<br />

• Latency < 6.5 us<br />

Jadwisin, 9 marca 2007 – p.8/15


Czas obliczeń – przykład<br />

8<br />

7<br />

CPMD<br />

PIMD<br />

6<br />

∆F [ kcal / mol ]<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

reaction coordinate<br />

n CPUs 128<br />

czas CPU na krok CPMD 1.9 sek<br />

czas CPU na punkt 03:06:00 h<br />

czas ELA na punkt 03:20:00 h<br />

128 × 3 h = 384 h = 16 dni<br />

Jadwisin, 9 marca 2007 – p.9/15


Wpływ długości rozwinięcia<br />

E cut [ Ry ] t CPU [ s ]<br />

120 12<br />

70 10<br />

40 5<br />

25 3<br />

t CPU<br />

[ s ]<br />

14<br />

12<br />

10<br />

8<br />

6<br />

4<br />

2<br />

20 40 60 80 100 120 140<br />

E cut<br />

[ Ry ]<br />

Tablica 1: Czas wykonania t CPU w funkcji obcięcia<br />

funkcji falowej E cut (32 Power4 processors at 1.7 GHz,<br />

IBM p690).<br />

Jadwisin, 9 marca 2007 – p.10/15


Skalowanie obliczeń – IBM p690<br />

16384<br />

CPU time<br />

Elapsed time<br />

time [ s ]<br />

8192<br />

8 16 32 64 128 256<br />

number of CPUs<br />

CPMD: wersja równoległa (MPI), 38 atomów, 100 kroków PIMD;<br />

Jadwisin, 9 marca 2007 – p.11/15


Skalowanie obliczeń – Cray X1e i PC<br />

10000<br />

CrayX1e (MSP) CPU<br />

CrayX1e (MSP) ELA<br />

CrayX1e (SSP) CPU<br />

CrayX1e (SSP) ELA<br />

PC (1cpu/node) CPU<br />

PC (1 cpu/node) ELA<br />

PC (2 cpu/node) CPU<br />

PC (2 cpu/node) ELA<br />

Time [ s ]<br />

1000<br />

100<br />

1 2 4 8 16 32<br />

Number of processors<br />

CPMD: wersja równoległa (MPI), 32 H 2 O, 50 kroków MD;<br />

Jadwisin, 9 marca 2007 – p.12/15


Wydajność: biblioteki numeryczne<br />

Serial CPMD performance<br />

400<br />

IFC / ACML<br />

IFC / MKL<br />

PGI / ACML<br />

PGI / LAPACK<br />

300<br />

CPU time [ s ]<br />

200<br />

100<br />

0<br />

AMD Athlon, 1.6 GHz AMD Opteron, 2.0 GHz Intel Pentium 4, 2.4 GHz<br />

Processor type<br />

CPMD: wersja skalarna, 32 H 2 O, 1 krok MD;<br />

Jadwisin, 9 marca 2007 – p.13/15


Podsumowanie<br />

• Kwantowy opis układu ⇒ wiele stopni swobody<br />

• Wydajne zrównoleglenie oprogramowania<br />

• Szybka wymiana danych między procesorami<br />

Jadwisin, 9 marca 2007 – p.14/15


Zespół G16-7<br />

Jadwisin, 9 marca 2007 – p.15/15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!