Centrum Obliczeniowe

Centrum Obliczeniowe Wydziału Fizyki UwB

Centrum Obliczeniowe Wydziału Fizyki UwB obejmuje Wydziałowy Klaster Obliczeniowy, mniejszy klaster obliczeniowy Moria (wykorzystywany przez Zakład Fizyki Nieliniowej), a także serwer www alpha oraz drukarki (HP Color LaserJet CP5225dn i HP LaserJet 4250dm). Centrum Obliczeniowe wykorzystywane jest przez wszystkich pracowników Wydziału.

Wydziałowy Klaster Obliczeniowy

klaster2

Wydziałowy Klaster Obliczeniowy zbudowany z 22 jednostek obliczeniowych i jednego komputera dostępowego. Jest najpotężniejszym klastrem jakim dysponuje pojedynczy wydział w województwie podlaskim (stan na rok 2016). Każdy serwer obliczeniowy to maszyna dwuprocesorowa oparta na procesorze Intel Xeon E5-2650v2 @2.6 GHz (8 rdzeni na procesor), wyposażona w 96 GB RAM oraz lokalny twardy dysk 3TB SATA 7200 rpm. Całość daje w sumie 44 CPU, 352 rdzeni obliczeniowych o teoretycznej wydajności 10.4 Gflops/s każdego rdzenia, 166 Gflops/s każdej jednostki, 3660 Gflops/s całego klastra. Rzeczywista wydajność maszyn w teście lapack-100 wynosi 4 Gflops/s na każdy rdzeń, dając 1400 Gflops/s wydajności (38% wydajności teoretycznej). Maszyny połączone są Ethernetem o przepustowości 1Mb/s, z rzeczywistym transferem 60MB/s.

Do klastra podłączona jest macierz dyskowa zbudowana z 36 dysków twardych 3TB każdy, tworząc dwa wolumeny o wielkościach 75 TB i 32 TB. Docelowo zasoby te mają być wykorzystywane do przechowywania danych generowanych przez programy pracujące na Klastrze, a także jako magazyn danych (backup) wszystkich pracowników Wydziału. Planowane jest uwspólnienie części wolumenu dla studentów, oraz dla pracowników dydaktycznych jako pomoc podczas prowadzenia zajęć.

Węzły obliczeniowe pracują pod kontrolą 64-bitowego systemu Debian GNU/Linux 7.8 (wheezy), dodatkowo zainstalowano 4 licencje Windows Ultimate 7 jako maszyny wirtualne. Docelowo ma zostać zakupione oprogramowanie specyficzne dla każdego zakładu z Wydziału Fizyki (procedura w toku).

Klaster Moria (Zakład Fizyki Nieliniowej)

Unico_Anello

Klaster Moria, którego nazwa zaczerpnięta została z trylogii J. R. R. Tolkiena, jest klastrem obliczeniowym typu Beowulf. Składa się z 13 węzłów obliczeniowych oraz jednego komputera dostępowego. Wszystkie jednostki pracują pod kontrolą systemu operacyjnego Linux/Unix – różnych dystrybucji (gentoo, Debian, Ubuntu). Aktualnie uruchomionych jest 7 węzłów (najsłabsze 7 jednostki zostały wyłączone), dając łączną liczbę 116 rdzeni obliczeniowych o częstotliwościach od 2.2 GHz do 2.6 GHz. (razem z wyłączonymi jednostkami jest to 122 rdzeni). Klaster wyposażony jest (w sumie) w 412 GB RAM, z czego 3 jednostki mają do swojej dyspozycji po 96 GB RAM (tym samym dając możliwość przeprowadzania obliczeń wymagających dużych zasobów pamięci na pojedynczym węźle). Komputery posiadają lokalne dyski twarde. Rzeczywista moc obliczeniowa klastra w teście lapack-100 wynosi 313 Gflops/s. Węzły klastra połączone są ze sobą Ethernetem o przepustowości 1Mb/s (rzeczywisty transfer pomiędzy węzłami, uwzględniający szybkość zapisu dysków twardych, wynosi 60MB/s).

Do czego służy? Aktualnie prowadzimy obliczenia głównie w tematyce zimnych gazów atomowych – całe moce obliczeniowe zaangażowane są w symulowanie zjawiska kondensacji Bosego-Einsteina (BEC – Bose-Einstein Condensation), zdegenerowanego gazu Fermiego oraz mieszanin fermionowo-bozonowych i bozonowo-bozonowych.

Co dokładnie robimy? Piszemy własne programy (głównie w C i FORTRANIE) symulujące eksperymenty z zimnymi gazami atomowymi, które zostały przeprowadzone w międzynarodowych laboratoriach (USA, Niemcy, Francja). W ten sposób możemy podjąć próbę analizy konkretnych doświadczeń, szukać odpowiedzi na wiele pytań pojawiających się w tym fascynującym kawałku fizyki. Aktywnie działamy w światowej czołówce fizyków zimnych atomów, o czym świadczą nasze publikacje. Współpracujemy także z jedynym w Europie Wschodniej laboratorium posiadającym kondensat Bosego-Einsteina, a znajdującym się w naszym kraju, w Toruniu.

17ms00006

Ewoulcja kondensatu Bosego-Einsteina w pułapce harmonicznej. Widoczne są solitony tworzące ,,pociąg” (soliton trains). Kolorami przedstawiono gęstość prawdopodobieństwa atomów (kolor niebieski – prawdopodobieństwo bliskie zeru, a dalej prawdopodobieństwo rośnie według kolorów tęczy). Symulacja odtwarza eksperyment (K. E. Strecker, G. B. Partridge, A. G. Truscott and R. G. Hulet Nature 417 150-3) by dalej go analizować.

Obliczenia wykonywane są 24 godz/dobę przez 365 dni w roku. Pracujemy na własnoręcznie stworzonych programach (w języku C, FORTRAN), wykorzystujących nowoczesne rozwiązania komputerów PC – wielordzeniowość. Programujemy więc na wiele procesorów jednocześnie, czyli tworzymy tzw. kod zrównoleglony.

Zrównoleglanie dokonywane jest głównie za pomocą biblioteki OpenMP. openmp_logoWybór tej biblioteki podyktowany był koniecznością pracy w systemie pamięci współdzielonej, gdzie każdy z procesorów liczących zadanie „widzi” całą pamięć operacyjną i ma do niej dostęp typu zapis /odczyt. Brzmi to bardzo atrakcyjnie, jednak ma ogromne ograniczenie: procesory muszą być umieszczone w jednym i tym samym komputerze. Ogranicza to liczbę procesorów zaangażowaną w rozwiązywanie danego zadana. Producenci udostępniają platformy sprzętowe z dwoma/czteroma/ośmioma procesorami wielordzeniowymi, czyli mamy maksymalnie do 20-tu jednostek do wykorzystania. Porównując to do superkomputerów, wyposażonych w setki procesorów – to niewiele. Jednak w porównaniu do programowania na pojedynczym rdzeniu procesora, to przy dobrym programowaniu daje to i tak aż dwudziestokrotne przyspieszenie programu!

Innym typem pracy w środowisku wieloprocesorowym jest praca z pamięcią rozproszoną, gdzie każdy procesor ma przydzieloną pamięć tylko dla siebie. Zaletą takiego rozwiązania jest możliwość zaangażowania każdego komputera spiętego w sieć do pracy nad danym zadaniem. Nie ma więc ograniczenia co do liczby procesorów, jak poprzednio. Tutaj całe dane zadania dzieli się na porcje, które wysyła się do poszczególnych maszyn, gdzie zostają obrabiane. Po skończeniu obliczeń przez pojedynczy komputer, następuje wysłanie wyników do „komputera matki”, gdzie wyniki są synchronizowane (MPI). Niestety, nie każdy problem można rozwiązać w ten sposób. Dodatkowo pojawia się narzut czasu na przesyłanie informacji (wymiana danych, w końcu każda jednostka „widzi” tylko swój RAM) siecią pomiędzy jednostkami – co może dodatkowo mocno ograniczyć efektywność programu.

CUDA-logo-jegxNasze plany to wykorzystanie kart graficznych do symulacji zjawisk fizycznych; współczesny rozwój komputerów poszedł w kierunku multimediów, gdzie nacisk położono na grafikę. W związku z tym wydajność kart graficznych wzrosła ogromnie (co potwierdzi każdy miłośnik gier komputerowych) i najnowsze procesory na kartach graficznych (GPU) zawierają aż po kilkaset jednostek SP (stream processing unit) w swojej architekturze! (np. GPU karty ATI Radeon HD 4800 ma 800 jednostek SP). Zakupiliśmy już odpowiedni sprzęt do testowania (kartę nVidia GTX 285, GTX 750 Titanium) – i uczymy się technologii CUDA firmy nVidia. Dla nas Polaków, nazwa CUDA dobrze oddaje istotę rzeczy – przy jej wykorzystaniu (co nie jest tak łatwe jak w przpadku OpenMP czy MPI) można osiągnąć przyspieszenie programów nawet kilkusetkrotnie (i dlatego są to prawdziwe cuda w dziedzinie informatyki).

Monitor temperatury w serwerowni (na żywo)

IoT: Monitor temperatury w serwerowni (na żywo)


Praktyczne zastosowanie Iot (Internet rzeczy, ang. Internet of Things) – dzięki RaspberryPi, który cały czas monitoruje temperaturę w pomieszczeniu. Kolor czerwony: temp. wysoko, przy suficie (powinna być <22C), kolor zielony – temp. na wylocie z zasilaczy serwera (okolo 40C, przy duzym obciążeniu komputerów nawet 60C), kolor niebieski – temp. z przodu serwera (powinna być <25C).