Mathematica Obliczenia równoległe |
Obliczenia rónoległe w środowisku programu Mathematica są możliwe od chwili wprowadzenia na rynek modułu o nazwie Parallel Computing Toolkit. Pierwsza wersja tego modułu została opracowana i wprowadzona do sprzedaży w 1999 roku. W ofercie znajdowała się wtedy wersja 4 programu Mathematica. Moduł PCT pozwalał realizować obliczenie równoległe wykorzystując pracę równoległe pracujących jąder obliczeniowych (Kernel) programu Mathematica. Jeden proces pakietu Kernel pełnił rolę procesu sterujacego (Master), koordynującego pracę jąder obliczeniowych (Slave). Rozwój programu Mathematica oraz modułu PCT doprowadził do połączenia obu pakietów w wersji 7 programu Mathematica.
Podstawową zaletą pakietu jest możliwość realizacji obliczeń równoległych w dowolnych sieciach komputerowych oraz maszynach wielordzeniowych i wieloprocesorowych.
Zawsze jeden Kernel pełni rolę procesu sterującego. Kernele obliczeniowe mogą się znajdować zarówno po stronie sieci lokalnej jak i po stronie sieci publicznej za zaporą bezpieczeństwa (firewall). Jądra obliczeniowe mogą pracować na dowolnych platformach sprzętowych. Dozwolona jest każda platforma na której może pracować program Mathematica. Klaster lokalny czy komputer wieloprocesorowy w odległym centrum obliczeniowym (rysunek powyżej) to możliwość uruchomienia całego zestawu Kerneli obliczeniowych.
Drugą ważną zaletą systemu obliczeń równoległych zrealizowanych na bazie programu Mathematica jest fakt, że jeden program Mathematica zapewnia realizację wszelkich zadań jakie użytkownik oczekuje od systemu obliczeń równoległych.
Każdy system obliczeń równoległych powinien zapewnić:
- automatyczne zrównoleglanie kodu źródłowego
- dostępność protokołów sterujących obliczeniami i koordynujących pracę procesów równoległych
- biblioteke obliczeń numerycznych wykorzystującą równoległą pracę dostępnych procesorów
- możliwość diagnostyki i testowania aplikacji pracującej równolegle
- sterowanie równomiernym obciążeniem procesorów obliczeniowych
- wygodne środowisko tworzenia aplikacji równoległych
Wszystkie te aspekty obliczeń równoległych znajduja realizację w środowisku Mathematica.
Uwaga 1
Używany w dalszych częściach niniejszego opisu termin "gridMathematica" jest określeniem systemu obliczeń równoległych bazujących na programie Mathematica. Z chwilą wprowadzenia wersji 7 programu Mathematica termin ten formalnie oznacza specyficzny rodzaj licencji, gdyż zdolność obliczeń równoległych na bazie modułu Parallel Computing Toolkit i jądra obliczeniowego programu Mathematica zawarta jest w samym programie, w jego podstawowej wersji.
Uwaga 2
Prezentowany na tych stronach czas obliczeń będzie oczywiście inny w każdym systemie. Inna i niejednokrotnie korzystniejsza będzie skala przyspieszenia obliczeń równoległych w stosunku do obliczeń sekwencyjnych. Dla podobnych obliczeń prowadzonych np. w dedykowanych klastrach obliczeniowych zysk czasowy będzie o wiele większy. Obliczenia publikowane na tych stronach zostały zrealizowane w sieci lokalnej firmy Gambit, standardowo obciążonej bieżącą obsługą działalności firmy.
Podstawowe cechy gridMathematica
Pakiet gridMathematica posiada wszystkie cechy jakie powinien posiadać pakiet do obliczeń równoległych.
Skalowalność aplikacji
Aplikacje obliczeń równoległych mogą pracować na takiej liczbie procesorów równoległych ile jest w danej chwili do dyspozycji. Nie jest przy tym wymagana żadna zmiana kodu źródłowego aplikacji.
Konfiguracja i monitoring
Konfiguracja pakietu gridMathematica oraz monitoring jego pracy realizowane są z powiomu procedur w menu głównym programu Mathematica.
Podstawowe komendy obliczeń równoległych
Przykład realizacji prostych obliczeń w wersji sekwencyjnej i równoległej.
Przykłady bardziej zaawansowane
Podane przykłady obliczeń równoległy pokazują ideę tworzenia aplikacji równoległych w środowisku programu Mathematica.
Czy wszystko można liczyć równolegle?
Jakie zagadnienia nadają się do równoległej ich realizacji? Jakie operacje w środowisku programu Mathematica mogą być wykonywane równolegle?
Uwarunkowania licencyjne
Obliczenia równoległe mogą być realizowane z wykorzystaniem dowolnej liczby równolegle pracujących jęder obliczeniowych. Praktycznie liczbę tę ograniczają uwarunkowania licencyjne.