Skip to main content
Oficjalna strona internetowa Unii EuropejskiejOficjalna strona internetowa UE
Przejdź do strony domowej Komisji Europejskiej (odnośnik otworzy się w nowym oknie)
polski polski
CORDIS - Wyniki badań wspieranych przez UE
CORDIS
Zawartość zarchiwizowana w dniu 2024-06-18
Exascale Programming Models

Article Category

Article available in the following languages:

Modele programowania do obliczeń eksaskalowych

Pierwsze komputery eksaskalowe pojawiły się dopiero na początku naszej dekady. Jednak czy ta moc jest coś warta bez wspierających ją modeli programowania? W ramach projektu EPIGRAM udało się zidentyfikować i wyeliminować niedociągnięcia istniejące w obecnie używanych modelach eksaskalowych.

Wyobraźmy sobie 100 milionów procesów przeprowadzanych jednocześnie przez jeden komputer bądź 50 milionów laptopów połączonych ze sobą superszybką siecią. To właśnie jest eksaskala. Chociaż do zaprogramowania obecnych komputerów tego typu można użyć Javy lub Pythona, do wymiany danych pomiędzy wspomnianymi procesami czy laptopami niezbędne jest osobne oprogramowanie. I tu na scenę wkraczają modele PGAS i przekazywania komunikatów. „Uważamy, że te dwa modele programowania są kluczem do sprawnej wymiany danych, ponieważ już dziś doskonale sprawdzają się w istniejących największych superkomputerach” – mówi Stefano Markidis, kierownik projektu EPIGRAM i wykładowca przedmiotów z zakresu systemów obliczeniowych HPC w Królewskim Instytucie Technologicznym w Szwecji. Jednak wykorzystanie tych modeli obliczeniowych w komputerach eksaskalowych nie jest takie proste. Ilość pamięci niezbędnej do przechowywania danych jest olbrzymia – tak olbrzymia, że poziom zużycia pamięci staje się poważnym problemem. Równoległe lub zsynchronizowane przeprowadzanie dużej liczby procesów wymaga algorytmów o wiele bardziej zaawansowanych niż te, które są teraz dostępne. Jednocześnie w chwili obecnej żaden pojedynczy system łączący wszystkie istniejące modele programowania nie jest w stanie działać wystarczająco wydajnie. Właśnie tymi kluczowymi wyzwaniami – ekstremalną równoległością i interoperacyjnością – zajęli się uczestnicy projektu EPIGRAM (Exascale Programming Models). Prace skupiły się na modelach przekazywania komunikatów i PGAS, a w szczególności na poprawie dwóch związanych z nimi standardów programowania – MPI i GPI. „W systemach stworzonych na potrzeby nauki istnieje kilka punktów synchronizacji, w których najszybszy laptop czeka na ten najwolniejszy. Takie rozwiązanie sprawdza się w przypadku kilku laptopów, jednak przy 50 milionach urządzeń trzeba zacząć myśleć o lepszym algorytmie synchronizacji. Tym właśnie zajęliśmy się w ramach projektu EPIGRAM. Zwiększyliśmy wydajność operacji komunikacji wykonywanych przy ogromnej liczbie procesów, zmniejszając zużycie przez nie pamięci, poprawiając operacje grupowe i wprowadzając nowe modele obliczeniowe” – wyjaśnia Markidis. Kolejnym osiągnięciem projektu jest poprawa interoperacyjności standardów MPI i GPI poprzez zintegrowanie ich w jedno środowisko MPI o nazwie EMPI4Re. Od pogody kosmicznej po dynamikę płynów Po dopracowaniu koncepcja EPIGRAM będzie jeszcze wymagała przetestowania w wielkoskalowych systemach o potencjale eksaskalowym. Do badań konsorcjum wybrało dwa kody z dwóch różnych dziedzin nauki: iPIC3D służący do symulacji pogody kosmicznej metodą Particle-in-Cell i kod jądra Nek5000 wykorzystywany w obliczeniowej mechanice płynów (CFD). Oba rozwiązania można przeskalować nawet na 1 milion rdzeni i oba można zaprogramować za pomocą odpowiednio C/C++ i Fortrana – języków najczęściej spotykanych w systemach obliczeniowych HPC. „Jesteśmy niezwykle zadowoleni z naszych systemów pilotowych” – mówi Markidis. „Wydajność kodu iPIC3D zwiększyła się trzykrotnie w stosunku do poprzednich implementacji, udało nam się też opracować nowy, uproszczony model komunikacji dla jądra Nek5000. Model ten w przyszłości z pewnością znajdzie zastosowanie w innych projektach”. Wyniki projektu EPIGRAM są już wykorzystywane w dwóch innych projektach HPC realizowanych w ramach programu Horizon 2020: INTERTWINE, bazującym na rozwiązaniach EPIGRAM w zakresie interoperacyjności i systemie pilotowym iPIC3D, oraz EXAFLOW, w którym zastosowano kod Nek5000 i zaadaptowany model komunikacji dla jądra Nek5000. „Chcielibyśmy w najbliższej przyszłości rozpocząć kolejny projekt będący kontynuacją poprzedniego” – mówi Markidis. „W międzyczasie już widzimy, jak nasze osiągnięcia w zakresie MPI wpływają na pracę programistów aplikacji HPC. Przedstawiliśmy nasze koncepcje programistom z różnych dziedzin i uważamy, że część z tych koncepcji, jak np. izomorficzny model komunikacji grupowej, może się przyjąć i w najbliższej przyszłości zostać przez nich wykorzystana”. Prowadzone w ramach projektu prace nad standaryzacją mają ogromy wpływ na wykorzystanie nowych funkcji MPI i GPI w kodach aplikacji na superkomputery. „Programiści aplikacji muszą mieć pewność, że nowe funkcje zostaną wdrożone i nie będą modyfikowane” – wyjaśnia Markidis. Koncepcje projektu EPIGRAM, przetestowane na mikromodelach wzorcowych, nie tylko przyspieszą czas wykonywania operacji MPI i GPI, ale również znacznie zmniejszą ilość pamięci wymaganej przez te operacje. Projekt wskazał również ograniczenia niektórych koncepcji MPI i, dzięki opracowaniu skalowalnych, dynamicznych sieci połączeń, miał duży wpływ na pracę osób wdrażających technologie GPI-2.

Znajdź inne artykuły w tej samej dziedzinie zastosowania