Mathematica 7.0 na klastrze
Łukasz Zosiak 19.04.09

Uwaga: Dokument nie jest kompletny, bedzie rozwijany w miarę jak moje zrozumienie tematu bedzie się poprawiać. Nie mogę zagwarantować, że przedstawione w nim informacje są poprawne a opisane postępowanie  właściwe - dołożyłem jednak wszelkich starań i poniższe rozwiązania osobiście przetestowałem. Dostrzeżone błędy, możliwe problemy, nieścisłości i usterki proszę zgłaszać: lukasz.zosiak na uj.edu.pl

Instalacja i wstępna konfiguracja

W zależności od konfiguracji programowo/sprzętowej będą zapewne wystepować znaczące różnice w konkretnych rozwiazaniach, ważne jest natomiast, aby spełnione zostały podstawowe warunki:

  • łączność z serwerem licencji (flex.uoks.uj.edu.pl) dla każdego węzła obliczeniowego
  • uruchomiony system kolejkowy (niekonieczne, ale w oczywisty sposób przydatne)
  • polecenie math znajdowało się w ścieżce (tak, aby działało: ssh wezel math)

Sesja interaktywnaPrzykładowa interaktywna sesja

Przykład dla Torque'a, kolejka 'infinite' została skonfigurowana bez ograniczeń czasowych:

qsub -I -l nodes=2:ppn=2 -q infinite

Uruchamiamy proces 'zarzadzajacy':

math lub Mathematica gdy mamy dostęp do grafiki

Następnie uruchamiamy odpowiednią liczbę kerneli do obliczeń:

RemoteMachine/@ReadList[Environment["PBS_NODEFILE"],String]//LaunchKernels)

Więcej informacji na temat możliwości uwspółbieżniania kodu w Mathematice 7.0

Zadanie wsadowe

Należy pamiętać od trzech kwestiach:

  • nie uruchamiamy FronteEndu, lecz math < plik_wejsciowy.m > wynik_obliczen
  • warto dodać AppendTo[$Echo, "stdout"] na początku i trzeba Quit[]; na końcu
  • niektóre funkcje zostały przeniesione do FrontEndu (np. eksport do formatów graficznych)

 

[1]