Innowacyjne narzędzia komputerowe optymalizują kodowanie pod kątem przetwarzania równoległego
Dawne komputery osobiste i urządzenia przenośne korzystały z jednego procesora. Rozwiązanie takie jest nieefektywne w przypadku dużych obliczeń ze względu na ograniczenia charakterystyczne dla takich procesorów. Dużo skuteczniejszą alternatywą są obliczenia równoległe, które polegają na podzieleniu dużych zadań obliczeniowych na mniejsze części, wykonywane przez wiele układów scalonych. Koncepcja ta pojawiła się już w początkach informatyki, ale przez długi czas ograniczała się do maszyn o ekstremalnej wydajności. Ponieważ koszty dodatkowych procesorów zmniejszyły się, w ostatnich latach w wielu tańszych komputerach, konsolach do gier i innych urządzenia zaczęto stosować kilka procesorów. Dodatkowe procesory początkowo specjalizowały się w poszczególnych zadaniach, ale teraz możliwie jest zaprogramowanie procesorów o ogólnego przeznaczenia do wykonywania większości zadań.
Problem optymalizacji
Problemem jest to, że trudno jest napisać kod przydzielający obliczenia poszczególnym procesorom. Inżynierowie oprogramowania mogą napisać taki kod dla maksymalnie czterech procesorów, chociaż zajmuje to sporo czasu. Wraz ze wzrostem liczby procesorów optymalizacja przydzielania staje się jeszcze trudniejsza, dlatego obecne oprogramowanie rzadko wykorzystuje pełną moc obliczeniową urządzenia. Inżynierowie oprogramowania muszą uwzględnić wiele czynników, w tym liczbę procesorów, które mają zostać wykorzystane, to, które części aplikacji powinny być uruchamiane na których procesorach, oraz to, czy procesory powinny być wyspecjalizowane. Projekt finansowany przez UE projekt PHANTOM pomógł w uproszczeniu tego procesu. „Chcieliśmy zautomatyzować proces decydowania o tym, jak zorganizować program, aby był wykonywany na wielu procesorach, w sposób, który spełnia określone założenia”, mówi Scott Hansen, koordynator projektu. „Na przykład, niektóre systemy muszą zawsze reagować w określonych ramach czasowych, podczas gdy inne muszą minimalizować zużycie energii, a jeszcze inne muszą zmaksymalizować wykorzystanie procesorów, aby jak najszybciej rozwiązać dany problem”. Zespół zbadał możliwość stworzenia narzędzi pomagających inżynierom oprogramowania i programistom w znalezieniu optymalnego sposobu na osiągnięcie tych nierzadko sprzecznych ze sobą celów.
Nowe narzędzia
Zespołowi udało się opracować taki innowacyjny zestaw narzędzi. Znalazły się wśród nich wysoce skomplikowane algorytmy, które automatyzują złożony proces decyzyjny niezbędny do osiągnięcia optymalizacji przetwarzania równoległego zgodnie z zamierzonym celem. Zespół opracował również zaawansowane funkcje uczenia, które monitorują działające aplikacje i dynamicznie optymalizują dostępne procesory w oparciu o bieżące użycie. Tworzenie takich narzędzi wykraczałoby poza możliwości poszczególnych partnerów konsorcjum. „Ich opracowanie było możliwe dzięki współpracy w ramach unijnego programu Horyzont 2020”, mówi Hansen. „Mieliśmy również bardzo silnych partnerów przemysłowych, którzy zadbali, aby opracowywane narzędzia były przydatne dla ich inżynierów, a tym samym inżynierów w wielu branżach w całej Europie”. Partnerzy przemysłowi projektu PHANTOM przetestowali nowe narzędzia, wykorzystując je do opracowywania zastosowań przemysłowych w złożonych systemach wieloprocesorowych. Narzędzia te są publicznie dostępne jako oprogramowanie otwarte. Są one łatwe w instalacji, a inżynierowie mogą je oceniać. Partnerzy komercyjni projektu oferują również wersje płatne, połączone z usługami doradczymi i dotyczącymi dostosowania oprogramowania. Obecne metody programowania dla wielu procesorów zwykle oznaczają nieoptymalne wykorzystanie wydajności. Tylko najlepsi i najbardziej doświadczeni inżynierowie są w stanie je zoptymalizować. Ponadto, koszty wyszkolenia personelu przekraczają możliwości większości organizacji. Dzięki nowym narzędziom opracowanym w projekcie PHANTOM inżynierowie oprogramowania będą teraz mogli pisać aplikacje zapewniające także pełną optymalizację. Będzie to oznaczać większą produktywność, niższe koszty i krótszy czas tworzenia aplikacji.
Słowa kluczowe
PHANTOM, oprogramowanie, procesor wielordzeniowy, inżynier oprogramowania, kodowanie, obliczenia równoległe, przetwarzanie równoległe