Skip to main content

An Exascale Programming, Multi-objective Optimisation and Resilience Management Environment Based on Nested Recursive Parallelism

Article Category

Article available in the folowing languages:

Nowy zestaw narzędzi HPC zapewnia optymalny kompromis między wydajnością a efektywnością wykorzystania zasobów

Dzięki projektowi AllScale programiści HPC otrzymają dostęp do zestawu narzędzi pozwalającego na przyspieszenie tworzenia, zwiększenie przenośności oraz poprawę wydajności wykonywania aplikacji równoległych. Prototypy są już z powodzeniem stosowane do symulacji pogody kosmicznej, zagrożeń środowiskowych i dynamiki płynów.

Gospodarka cyfrowa

Rynek obliczeń o wysokiej wydajności (HPC) stale się rozwija. Te nowe technologie obliczeniowe to nie tylko sprzęt: aby obliczenia o wysokiej wydajności mogły sprostać oczekiwaniom przemysłu, potencjał w zakresie obliczeń równoległych będzie musiał zostać wykorzystany przez nową generację aplikacji równoległych, które będą musiały wyważyć zwiększoną wydajność oraz zmniejszone zużycie energii. Nie jest to łatwe zadanie, zwłaszcza gdy weźmiemy pod uwagę obserwacje, że ostatnie 5 lub 10 % poprawy wydajności potrzebnej programistom do aplikacji może zwiększyć zużycie energii o 30 % lub więcej. W przypadku obliczeń o wysokiej wydajności optymalizacja wymaga zasadniczo wypracowania kompromisów między tymi dwoma celami. Brakującego rozwiązania dostarcza tu projekt AllScale. Opracowany w jego ramach zestaw narzędzi ma zwiększyć produktywność prac programistycznych, przenośność i wydajność wykonywania aplikacji, a jednocześnie przyczynić się poprawy efektywności wykorzystania zasobów zarówno w małych, jak i bardzo dużych systemach równoległych. „Nasze środowisko programistyczne bazuje na powszechnie stosowanym standardzie (C++), który umożliwia wyrażanie paralelizmu na wysokim poziomie abstrakcji. Zamiast łączyć ze sobą różne paradygmaty programowania – co wiąże się z ryzykiem utraty informacji i tym samym zmniejszenia wydajności – wykorzystujemy paralelizmy rekurencyjne w celu ograniczenia globalnej synchronizacji”. Umożliwia to realizację bardzo dużej liczby równoległych zadań w przypadku aplikacji, które muszą zadbać o obciążenie wszystkich procesorów w przypadku ekstremalnie dużych architektur równoległych”, wyjaśnił prof. Thomas Fahringer, koordynator projektu z ramienia Uniwersytetu w Innsbrucku. Środowisko AllScale potrafi poradzić sobie z awariami sprzętowymi, a jego podstawowy system wykonawczy może zostać zoptymalizowany pod kątem realizacji wielu celów, w tym wykonywania, efektywności wykorzystania zasobów i zużycia energii. W przeciwieństwie do konwencjonalnych podejść stosowanych w programowaniu równoległym, które łączą istniejące paradygmaty programowania, takie jak MPI i OpenMP, rozwiązanie AllScale kładzie nacisk na środowisko programistyczne o wielkości od pojedynczego źródła do dowolnie dużej skali. Rozwiązanie udostępnia programistom zunifikowany interfejs API umożliwiający wyrażanie paralelizmu na wysokim poziomie abstrakcji przy użyciu standardowych szablonów C++. Inne ważne udoskonalenie polega na wykorzystaniu zagnieżdżonego paralelizmu rekurencyjnego w celu ograniczenia globalnej komunikacji i synchronizacji, ponieważ ta ostatnia zazwyczaj powoduje poważne problemy ze skalowalnością w przypadku dużych systemów HPC. Wreszcie, podczas gdy optymalizacja aplikacji i samodzielne dostrajanie programów równoległych opierały się dotychczas prawie wyłącznie na minimalizacji czasu wykonywania, rozwiązanie AllScale skupia się na kwestiach inteligentnego zarządzania budżetami energetycznymi oraz ograniczeniami w tym zakresie, obecnymi w nowoczesnych architekturach. „Rozwiązanie AllScale zapewnia wieloobiektowy komponent do planowania i optymalizacji, dzięki któremu wykonywanie może zostać oparte na satysfakcjonujących, dynamicznych, kontrolowanych przez użytkownika kompromisach w zakresie optymalizacji wykonywania, zużycia energii i efektywności wykorzystania zasobów”, wyjaśnił prof. Fahringer. System AllScale został dokładnie przetestowany i wykorzystany w pilotażowych zastosowaniach dotyczących pogody kosmicznej, zagrożeń środowiskowych (jak np. wyciek ropy po awarii platformy wiertniczej Deepwater Horizon) oraz dynamiki płynów. Te trzy zastosowania stanowią wyzwanie dla systemów HPC, zarówno pod względem złożoności obliczeniowej, jak i wydajności. „W przypadku symulacji pogody kosmicznej, system AllScale uzyskał znakomite wyniki w odniesieniu do tworzenia się dipola magnetycznego Ziemi w systemach HPC z pamięcią współdzieloną i rozproszoną przy dużej liczbie rdzeni”, stwierdził prof. Fahringer. „W przypadku kodu dotyczącego dynamiki płynów, udało nam się znacznie skrócić czas wykonywania szeregowego, przy skalowalności pamięci współdzielonej zbliżonej do implementacji MPI. W odniesieniu do zastosowań związanych z zagrożeniami środowiskowymi zademonstrowaliśmy natomiast zdolność rozwiązania AllScale do skalowania na potrzeby systemów petaskalowych. We wszystkich trzech zastosowaniach możemy zapewnić znacznie większą wydajność pod względem czasu oczekiwania na rozwiązanie, co oznacza zwiększenie wydajności”. Projekt jest już zakończony, ale technologia AllScale będzie nadal wykorzystywana we wszystkich zastosowaniach pilotażowych w celu dalszej poprawy jej wydajności. Zestaw narzędzi AllScale został wydany na licencji open source, a kilka zespołów rozszerza i dalej udoskonala oprogramowanie w ramach nowych projektów i inicjatyw współpracy w różnych krajach Europy.

Słowa kluczowe

AllScale, HPC, obliczenia o wysokiej wydajności, oprogramowanie, aplikacje, wydajność, paralelizm, programowanie równoległe, wykonywanie, pogoda kosmiczna, Deepwater, dynamika płynów

Znajdź inne artykuły w tej samej dziedzinie zastosowania