• Nie Znaleziono Wyników

Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

N/A
N/A
Protected

Academic year: 2021

Share "Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC"

Copied!
41
0
0

Pełen tekst

(1)

Symulacje oddziaływania grawitacyjnego wielu ciał

na komputerze PC

Andrzej Odrzywołek

Instytut Fizyki UJ, Zakład Teorii Względności i Astrofizyki

18.06.2008, środa, 9:00

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(2)

O czym będzie ten referat?

Zagadnienie N-ciał: podstawowe informacje

1 sformułowanie w ramach teorii Newtona

2 kilka nietrywialnych przykładów dla 3 ciał

3 układy setek, tysięcy i więcej obiektów w kosmosie

Zastosowanie kart graficznych

1 moc obliczeniowa współczesnej karty graficznej

2 NVIDIA CUDA: przykłady użycia

3 symulacje zagadnienia N-ciał

przyszłość komputerów PC: programowanie wieloprocesorowe

(3)

Zasada dynamiki Newtona

Ruch pojedynczej cząstki pod wpływem siły: F = ma F = (Fx, Fy, Fz), v = (vx, vy, vz), r = (x , y , z)

Fx = mdvx

dt , Fy = mdvy

dt , Fz = mdvz dt , vx = dx

dt, vy = dy

dt, vz = dz dt

Jawne przybliżone rozwiązanie układu równań ruchu Pochodna funkcji w przybliżeniu:

f0(t) ≡ df (t)

dt = f (t + ∆t) − f (t)

∆t

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(4)

Przybliżone rozwiązanie równań ruchu Newtona

Oryginalny układ równań (jego część) Fx = mdvx

dt , vx = dx dt

Układ równań pochodnych różnicami skończonymi Fx = mvx(t + ∆t) − vx(t)

∆t

vx = x (t + ∆t) − x (t)

∆t

Jawne przyblizone rozwiązanie równań ruchu

(5)

Siły w równaniach ruchu Newtona

równania Newtona nic nie mówią o działających siłach przedstawiony algorytm rozwiązywania równań ruchu działa (lepiej lub gorzej) dla praktycznie dowolnych sił, w tym: (1) nie zachowujących energii (2) zależnych od czasu

poprzez odpowiednie określenie sił możemy rozwiązywać szeroki zakres problemów od ruchu rzucanych piłek, poprzez ruch płynów, lawiny błotne aż do kontynentów, sond

kosmicznych i gromad galaktyk

szczególną rolę gra newtonowskie przyciąganie grawitacyjne, które z bardzo dużą dokładnością opisuje znakomitą większość obiektów w kosmosie

wyjątkami są m. in. czarne dziury oraz wszechświat jako całość

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(6)

Teoria grawitacji Newtona

Siła przyciagania pomiędzy 2 masami F12 = Gm1m2

r122

r1− r2

|r1− r2|

G = 6.674 × 10−11m3/s2/kg – stała przyciagania grawitacyjnego Gmr12m2

12

– wielkość siły przyciągającej

r1−r2

|r1−r2| – kierunek działającej siły: wektor jednostkowy skierowany od ciała 1 do 2

Składowe siły przyciagania pomiędzy 2 masami Fx 12= G m1m2(x1− x2)

3

(7)

Równania dla 3 ciał

d2r1

dt2 = F12+ F13 d2r2

dt2 = F21+ F23 d2r3

dt2 = F31+ F32

UWAGA!

Ilość sił i operacji matematycznych aby je obliczyć rośnie bardzo szybko z ilością ciał. Stanowi to podstawową trudność w

analizowaniu bardzo złożonych układów.

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(8)

Ogólne uwagi o teorii Newtona

UWAGA!

Jedyne dokładnie znane i całkowicie zbadane jest zagadnienie 2 ciał, rozwiązane przez samego Newtona: ruch przez

nieskończony czas po elipsie, paraboli lub hiperboli wokół wspólnego środka masy

zaczynając od 3 ciał w górę mamy do czynienia z niezwykle bogatym obszarem badań gdzię wciąż dokonywane są zaskakujące odkrycia (np. stabilny ruch trzech ciał po

„ósemce”)

powoli zaczyna wypływać pogląd, że na duże systemy (gromady kuliste, galaktyki) mogą wpływać obiekty pozanewtonowskie jak np. czarne dziury

teoria grawitacji Newtona ciągle jednak dominuje w tym polu badań ilościowo znacznie wyprzedzając Ogólną Teorię

Względności Einsteina

-0.1 -0.2 0.1 0.0

0.2

0.00 0.05

A. Odrzywołek0.10 Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(9)

Przykłady ruchu 2 ciał

stosunek mas 1:1 (gwiazda podwójna) stosunek mas 1:10 (układ Pluton-Charon) stosunek mas 1:100 (układ Ziemia-Księżyc)

-0.1 0.0 0.1 -0.1 -0.2 0.1 0.0

0.2

-0.10 -0.05 0.00 0.05 0.10

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(10)

Przykłady ruchu 2 ciał

stosunek mas 1:1 (gwiazda podwójna) stosunek mas 1:10 (układ Pluton-Charon) stosunek mas 1:100 (układ Ziemia-Księżyc)

0.0 0.2 0.4 0.6

-0.6

-0.4

-0.2

0.0 0.2 0.4

(11)

Przykłady ruchu 2 ciał

stosunek mas 1:1 (gwiazda podwójna) stosunek mas 1:10 (układ Pluton-Charon) stosunek mas 1:100 (układ Ziemia-Księżyc)

-0.10 -0.05 0.00 -0.6

-0.4

-0.2

0.0

-0.4 -0.2 0.0

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(12)

Przykłady ruchu 3 ciał

(13)

Przykłady ruchu 3 ciał

-0.10 -0.05

0.00 0.05

0.10 -0.10

-0.05

0.00

0.05

0.10

-0.10

-0.05 0.00

0.05 0.10

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(14)

Układy więcej niż 3 ciał

1 układy planetarne i protoplanetarne

2 pierścienie, pasy asteroidów

3 gromady kuliste i otwarte gwiazd

4 galaktyki

(15)

Jak obliczyć ruch setek tysięcy ciał równocześnie

Moc obliczeniowa (GFLOP - miliard operacji zmiennoprzecinkowych na sekundę

1 wymagający małej mocy procesor (laptopy i superkomputery typu BlueGene) – kilka GFLOPS [1-kilka rdzeni]

2 CoreQuad – 30 GFLOPS [2x2 rdzenie]

3 karta graficzna GF8800GTX – 500 GFLOPS [128 shaderów]

4 Intel Polaris – 2000 GFLOPS [80 rdzeni]

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(16)

Jak obliczyć ruch setek tysięcy ciał równocześnie

Moc obliczeniowa (GFLOP - miliard operacji zmiennoprzecinkowych na sekundę

1 wymagający małej mocy procesor (laptopy i superkomputery typu BlueGene) – kilka GFLOPS [1-kilka rdzeni]

2 CoreQuad – 30 GFLOPS [2x2 rdzenie]

3 karta graficzna GF8800GTX – 500 GFLOPS [128 shaderów]

4 Intel Polaris – 2000 GFLOPS [80 rdzeni]

(17)

Programowanie kary graficznej

Cechy karty GF8800GTX

1 128 procesorów zmiennoprzecinkowych operujących w tzw.

pojedynczej precyzji (obliczenia z dokładnością około 8 cyfr znaczących float ; dla porównania double typowo daje 16 cyfr znaczących, bardzo rzadko spotykane są procesory pracujące w tzw. poczwórnej precyzji)

2 typowy zegar 1350 MHz

3 dedykowana bardzo szybka pamięć 768 MB

4 dokładność niektórych funkcji matematycznych np: x obniżona na rzecz szybkości działania

5 środowisko programistyczne NVIDIA CUDA wraz ze sterownikami, przykładami oraz bibliotekami gotowymi do użycia w C i Fortranie

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(18)

Programowanie kary graficznej: trudności

Różnice w stosunku do „normalnego” programowania

1 konieczność „ręcznego” przesyłania danych do i z pamięci karty

2 wszelkie problemy zrównoleglenia algorytmów: nie zawsze jest to możliwe, a przyspieszenie zwykle jest mniejsze niż

wynikałoby to z ilości użytych procesorów

3 brak kompilatorów standardowych języków jak C

4 konieczność „ręcznego” optymalizowania zwłaszcza transferów pomiędzy pamięciami

5 przyspieszenie wyraźnie odczywalne tylko dla problemów w dużej skali (tablice o wymiarach minimum 1000x1000, 10000

(19)

Ciekawe przykłady z CUDA SDK

Co mozna policzyć na karcie graficznej?

algebra liniowa: operacje na macierzach transformata Fouriera

sortowanie fraktale

generatory liczb losowych symulacje cząsteczkowe

redukcja szumów (w obrazach i dźwięku)

Imponujące przykłady z CUDA SDK

ruch płynu nieściśliwego (np. woda, miód) [fluidsGL]

eksploracja zbioru Mandelbrota [Mandelbrot]

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(20)

CUNBODY-1

Jak w najprostszy sposób zacząć?

Ponieważ opanowanie programowania karty graficznej to długotrwały i wymagający wysiłku proces, warto rozpocząć od gotowych bibliotek i programów wykorzystujących jej moc obliczeniową:

1 plug-ins do obróbki zdjęć

2 dekodery H.264

3 biblioteka CUNBODY-1 wyliczająca siły grawitacyjne lub elektrostatyczne działające pomiędzy maks. 217= 131072

Autor: Tsuyoshi Hamada, http://progrape.jp/cs

Polecam animacje autorstwa T. hamady na YouTube oraz

(21)

Symulacje N-ciał

Sprzętowe wspomaganie obliczania siły

Najwięcej czasu w symulacjach N-ciał zajmuje wyliczenie sił działających na cząstki wg. schematu każdy-z-każdym.

są dwa podejścia: (1) bardziej efektywny algorytm, np.

grupowanie odległych ciał (2) sprzętowe liczenie siły za pomocą dedykowanej karty

wraz z pojawieniem się częściowo programowalnych kart graficznych koszt rozwiązania sprzętowego znacznie spadł i jest to w chwili obecnej najefektywniejsze z punktu widzenia kosztów rozwiązanie

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(22)

Układy 4-10 dużych ciał: gwiazdy wielokrotne i systemy

(proto)planetarne

(23)

Układy 4-10 dużych ciał: gwiazdy wielokrotne i systemy

(proto)planetarne

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(24)

Pierścienie planet (Saturn)

(25)

Pierścienie planet (Saturn)

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(26)

Pierścienie planet (Saturn)

(27)

Pierścienie planet (Saturn)

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(28)

Układy 10,000-1000,000 ciał: gromady kuliste

(29)

Układy 10,000-1000,000 ciał: gromady kuliste

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(30)

Układy 10,000-1000,000 ciał: gromady kuliste

(31)

Układy 10,000-1000,000 ciał: gromady kuliste

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(32)

Układy 10,000-1000,000 ciał: gromady kuliste

(33)

Układy 1000,000-1000,000,000,000 ciał: galaktyki

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(34)

Układy 1000,000-1000,000,000,000 ciał: galaktyki

(35)

Układy 1000,000-1000,000,000,000 ciał: galaktyki

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(36)

Układy 1000,000-1000,000,000,000 ciał: galaktyki

(37)

Układy 1000,000-1000,000,000,000 ciał: galaktyki

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(38)

Układ powyżej 1000,000,000,000 ciał: lokalny wszechświat

(39)

Układ powyżej 1000,000,000,000 ciał: lokalny wszechświat

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

(40)

Układ powyżej 1000,000,000,000 ciał: lokalny wszechświat

(41)

Dlaczego warto zawracać sobie głowę programowaniem karty graficznej??

aczkolwiek programowanie jednoprocesorowe (szeregowe, jednowątkowe) prawdopodobnie nadal będzie dominowało nie należy spodziewać się znacznego wzrostu wydajności

dominującą tendencją jest zwiększanie mocy obliczeniowe poprzez zwielokrotnienie procesorów: (1) procesory

wielordzeniowe (2) klastry komputerów PC (3) karty graficzne w przeciwieństwie do umiejętności programowania

„szeregowego” programowanie „równoległe” to umiejętność bardzo rzadko spotykana

nie można wykluczyć już w najblizszej przyszłości połączenia zadań procesora i karty graficznej w jednym

kilkudziesięciu-rdzeniowym CPU, typu Intel Polaris

Programowanie równoległe ma przyszłość, a GPU to poligon doświadczalny. Warto zająć się tym tematem już teraz.

A. Odrzywołek Symulacje oddziaływania grawitacyjnego wielu ciał na komputerze PC

Cytaty

Powiązane dokumenty