Fizyka komputerowa

Włodzisław Duch (id: wduch, na serwerze fizyka.umk.pl.)

Katedra Informatyki Stosowanej UMK, ul Grudziądzka 5, 87-100 Toruń

Po co nam nauki komputerowe?

Podział między naukami jest czysto umowny! Dyskusje na temat: ,,czy fizyka matematyczna to jeszcze fizyka czy już matematyka" są bezpłodne. Nie chodzi o nazwy, lecz o pewne poczucie tożsamości dziedziny, metodologię, środowisko, język a co za tym wszystkim idzie sposób podejścia do rozwiązania problemu. Wspólny język trudno jest znaleźć nawet w obrębie jednej dziedziny. Ma to swoje ujemne, ale i dodatnie strony -- dzięki temu nasze spojrzenie na rzeczywistość jest bogatsze. Nauki zwykło sie dzielić na teoretyczne i doświadczalne. Pojawienie się komputerów stworzyło nową jakość, nie pasującą do tego podziału. Prawidłowości, poszukiwane przez nauki przyrodnicze czy społeczne, są algorytmami określającymi zachowanie się systemów. Programy komputerowe pozwalają na zbadanie konsekwencji zakładanych praw, pozwalają na symulację rozwoju skomplikowanych systemów i określanie własności systemów stacjonarnych. Komputery pozwalają na robienie doświadczeń w sytuacjach zbyt skomplikowanych, by możliwa była uproszczona analiza teoretyczna. Doświadczenia komputerowe nie są przy tym ograniczone przez prawa natury istniejącego świata, lecz tylko przez fantazję programisty. Być może świat, w którym żyjemy, jest istotnie jedynym możliwym logicznie niesprzecznym światem, jak chcą tego najnowsze teorie fizyczne -- możemy to zbadać symulując światy, w których obowiązują inne prawa niż w naszym. Obliczenia komputerowe, pozwalające znaleźć odpowiedź na pytanie: ,,co by było, gdyby ...", przekraczają też granice nauk teoretycznych. Praw natury poszukiwaliśmy dotychczas tworząc modele w oparciu o konstrukcje matematyczne typu funkcji. Algorytmy, wykonywane przez programy komputerowe, obejmują jednak znacznie szerszą klasę modeli niż te, które dają się sformułować w tradycyjnym języku.

Komputery są prawdziwie uniwersalnymi maszynami. W latach 80-tych nietrywialne zastosowania komputerów zaczęły się na dobre. Nauki komputerowe to gałęzie istniejących nauk i nowo powstające nauki interdyscyplinarne, które powstały i mogą istnieć tylko dzięki komputerom. Dostrzegają to wielcy twórcy nauki. M. Gell Mann (Nobel 1969 za teorię kwarków), przemawiając w czasie ,,Complex Systems Summer School" w Santa Fe, powiedział (cyt. za G. Fox, Physical computation, $C^3 P-928$ technical report):

The transformation of society by the scientific revolution of the 19th and 20th centuries is about to be overshadowed by even more sweeping changes arising from growing ability to understand the complex mechanisms which are central to human concerns. The technology base of the new revolution will be provided by almost unimaginably powerful computers together with the mathematical and experimental tools and associated software which are essential to achieving an understanding of complexity... Examples of adaptive, complex systems include biological evolution, learning and neural processes, intelligent computers, protein chemistry, much of pathology and medicine, human behaviour and economics.

Tego typu zastosowania znajdują się na peryferium zastosowań informatyków, chociaż jest to gałąź, która powoli zaczyna przerastać całe drzewo... Zanim zastanowimy się dokładniej nad naukami komputerowymi przyjrzyjmy się najpierw narzędziu, na którym oparta będzie ta ,,nowa rewolucja", próbując zrozumieć, na czym polega jego unikalność.

Clement Lam przeprowadził poszukiwania ,,skończonej płaszczyzny rzutowej 10 rzędu", wymagające zbadania 100 bilionów (10^{14}) przypadków używając kilku tysięcy godzin superkomputera Cray-1A. Jego konkluzja jest bardzo ciekawa (cyt. za The Mathematical Intelligencer 12 (1990) 8):

Wprowadzenie komputerów dostarczyło matematykom bardzo potężnego narzędzia pracy. Pozwala nam ono atakować problemy złożone. Niewielka niepewność, nieodłączna w dowodach wymagających komputerów nie powinna nas zniechęcać przed ich używaniem. Jak powiedział laureat nagrody Nobla w fizyce, Richard Feynman, zwracając się w 1955 roku do National Academy od Science, ,,Wiedza naukowa jest zbiorem stwierdzeń o różnym stopniu pewności -- niektóre bardzo wątpliwe, inne prawie pewne, ale żadne nie są absolutnie pewne." Tak jak fizycy nauczyli się żyć z niepewnościa, tak i my powinniśmy nauczyć się żyć z ,,niepewnymi" dowodami. Może moglibyśmy sobie podkraść jeszcze jedną kartę z podręcznika eksperymentalnej fizyki -- oni mają swoje akceleratory, czemu my nie mielibyśmy marzyć o matematycznych superkomputerach? \end{quote}

Dziedziną nauk komputerowych, która osiągnęła największą tożsamość, jest fizyka. Widać to choćby po tytułach czasopism fizycznych: Computers in Physics, Computer Physics Communications, Computer Physics Reports, Journal of Computational Physics, EPS Computational Physics Group Newsletter. We wrześniu 1990 na konferencji w Amsterdamie stwierdzono: ,,Fizyka komputerowa to fizyka teoretyczna studiowana metodami eksperymentalnymi" S. Wolfram (nazywany przez kolegów w Princeton następcą Einsteina), zajmował się cząstkami elementarnymi, automatami komórkowymi, stworzył system Mathematica: (cyt. za Comp. in Physics 7/89)

Lata 80 wspominane będą jako dekada, w której komputery powszechnie wkroczyły do metod nauk fizycznych. W dawnych czasach fizyka była gałęzią filozofii. Za czasów Galileusza nastąpiła rewolucja i fizyka jest nauką doświadczalną. Teraz mamy kolejną rewolucję tj. symulowanie świata przez komputery. Jest to fundamentalna zmiana sposobu myślenia o nauce. Praca nad automatami komórkowymi i fraktalami pokazała, jak proste fizyczne modele prowadzą do niezwykle złożonych zachowań.\\ W nadchodzących latach zobaczymy związki pomiędzy pytaniami fizycznymi i teorią obliczeń, fizyka statystyczna pojawi się w projektowaniu systemów współbieżnych.

Geoffrey Fox, CalTech, twórca programu $C^3 P$ (Caltech Concurrent Computation Program) tak to określił (cyt. za Comp. in Physics 1/1990):

Fizyka komputerowa jest trzecią siłą, ale nadal słabą. Dopiero stacje robocze o szybkościach Gigaflopów i superkomputery o szybkościach Teraflopów to zmienią. Wielkim wyzwaniem dla uniwersytetów będzie kształcenie ludzi, którzy z takiego narzędzia będą umieli korzystać. Kto ma to robić? Informatycy czy fizycy? Może stosowani matematycy? Potrzebne są programy akademickie w zakresie złożonych systemów w fizyce, chemii czy biologii, programy interdyscyplinarne. Trudno by specjaliści np. w genetyce mogli nauczać zaawansowanych metod komputerowych już teraz niezbędnych w ich pracy. Przemiana świadomości jest znacznie trudniejszym zadaniem niż budowa Teraflopowego komputera.

Najbardziej popularnym podejściem (w znaczniej mierze wywodzącym się z prac K. Wilsona) do rozwiązywania równań chromodynamiki kwantowej, podstawowej teorii materii, jest ich symulacja na sieciach czasoprzestrzennych (QCD on lattices), chociaż osiągane obecnie moce komputerów są do tego celu daleko niewystarczające. Już teraz ponad 20\% czasu superkomputerów amerykańskich przeznacza się na takie właśnie obliczenia. Wilson twierdzi, że osiągnięcie dokładności doświadczalnych w tej dziedzinie wymaga znacznego rozwoju algorytmów i zwiększenia mocy komputerów o czynnik rzędu $10^8$. Pewne użyteczne rezultaty, przy pomocy sieci $64^4$, osiągnąć można będzie ,,już" przy pomocy maszyn o szybkości teraflopów -- 40 fizyków z USA napisało wspólnie projekt budowy takiego komputera do celów QCD. Duża grupa naukowców zamierza zbudować szybki komputer do specjalnych obliczeń QCD (kilka podobnych prób, np. IBM GF-11, podjęto już w tej dziedzinie wcześniej). Czy taki sposób działania nie przypomina fizyki teoretycznej studiowanej metodami eksperymentalnymi? Doświadczalna fizyka wysokich energii również nie może się obyć bez fizyków kom\-pu\-te\-ro\-wych. Oprogramowanie analizujące dane z akceleratorów liczy setki tysięcy wierszy, w ciągu sekund napływają gigabajty danych (por. {\em Computers in Physics}, vol. 6, no.1 (1992)). Inni ,,pożeracze" mocy obliczeniowych to fizycy symulujący zachowanie plazmy w różnych warunkach eksperymentalnych, fizycy atmosfery symulujący zachowanie dziury ozonowej, zanieczyszczenia atmosferyczne, pogodę (dlaczego mamy kiepskie prognozy pogody? Nawet Indie zakupiły do tego celu superkomputer! Nasze prognozy są niedokładne bo nich ich dla nas specjalnie nie oblicza.), astrofizycy ewolucję gwiazd, ewolucję wszechświata i galaktyk a specjaliści od mechaniki kwantowej ciało stałe i własności pojedynczych cząsteczek. Fizyka i astronomia zużywa ponad połowę czasu superkomputerów w ośrodkach akademickich. Fizyka komputerowa korzysta ze specyficznych metod numerycznych, wprowadza również analogie fizyczne by znaleźć nowe podejścia do rozwiązywania zagadnień innych nauk komputerowych. Przykładem jest tu metoda stopniowego studzenia (simulated annealing) lub metoda minimalnych powierzchni zastosowana w różnych zagadnieniach optymalizacyjnych. \subsection{Chemia komputerowa} Po etapie intensywnego rozwoju teorii i oprogramowania w latach 60 i 70--tych chemia kwantowa stała się w latach 80--tych przydatna chemikom doświadczalnikom i w tej chwili znacznie jest więcej użytkowników wielkich pakietów gotowych programów kwantowochemicznych niż ludzi znających się na metodach w tych pakietach wykorzystywanych. Osiągane dokładności dla małych cząsteczek są często na poziomie danych doświadczalnych a można je uzyskać znacznie szybciej. Chemicy komputerowi znacznie lepiej znają się na programach i komputerach niż na robieniu doświadczeń czy rozwijaniu teorii. Mamy nie tylko pisma z chemii kwantowej lecz również {\em Journal of Computational Chemistry}. W akademickiej sieci komputerowej mamy grupę dyskusyjną ,,computational chemistry group" (serwer znajduje się w ośrodku superkomputerowym w Ohio). W powszechnym użytku jest kilkanaście uniwersalnych systemów programów, każdy z \hbox{nich} liczący setki tysięcy wierszy. Napisanie takich programów zajmuje dziesiątki osobolat (np. system ,,Columbus" ocenia się na 25 osobolat).

Pewną próbą zebrania wielu z tych pakietów i stworzenia uniwersalnego systemu do ,,globalnej symulacji świata" jest MOTECC (Modern Techniques in Computational Chemistry), projekt podjęty przez E. Clementi'ego w firmie IBM (niestety, ostatnio projekt przerwano). Idea globalnej symulacji jest prosta: seria modeli opartych na fundamentalnych równaniach opisujących materię, od mikroskopowych do makroskopowych, korzystających z wyników pośrednich modeli na kolejnych poziomach powinna nam pozwolić wyprowadzić wszystkie własności materii (począwszy od atomów) z komputerowych obliczeń. MOTECC 90 składa się z 30 dużych pakietów programów: od mechaniki kwantowej przez mechanikę statystyczną do dynamiki ośrodków ciągłych. Przykładem symulacji globalnej są obliczenia dla wody. Zaczynamy od atomów: 3 jądra, 10 elektronów, używamy procedury SCF, dodajemy korelację elektronową, obliczamy hiperpowierzchnie energetyczne, analizujemy wibracje cząsteczki wody, następnie badamy 2 cząsteczki (tj. dimer) wody, obliczamy ich potencjały oddziaływania, dodajemy więcej cząsteczek badając małe klastery wody i poprawiając potencjały oddziaływania. Przechodzimy następnie do mechaniki statystycznej: używając dynamiki molekularnej lub prostego Monte Carlo, symulujemy $10^3-10^5$ cząsteczek w ustalonej objętości i temperaturze, generujemy miliony konfiguracji obliczając energię całości używając potencjałów wyliczonych poprzednio, liczymy średnie statystyczne i własności, takie jak funkcje korelacji par, przekroje na rozpraszanie X i neutronów, trnslacyjno-rotacyjne f. korelacji, widma podczerwone i Ramana, współczynniki dyfuzji, czasy relaksacji NMR, dane termodynamiczne. Dla 100 000 cząsteczek w systemie otwartym i czasach rzędu piko do nanosekund daje się dość dokładnie obserwować turbulencję i dostać prawidłową liczbę Reynoldsa. Mając takie makroskopowe własności możemy rozwiązywać równania dynamiki płynów i badać np. ruch fal w zatoce. Globalna symulacja wymaga dużych mocy obliczeniowych (obliczenia dla wody prowadzone były na specjalnie skonstruowanym sytemie,składającym się z wielu komputerów), ale do końca tej dekady będą możliwe na biurku. Bardzo intensywnie rozwijaną częścią chemii obliczeniowej jest modelowanie molekularne, wymagające bardzo szybkich stacji graficznych i programów dynamiki molekularnej. Wkracza to uż w chemię białek, należącą do biochemii.