Używam kodu równoległego do numerycznego rozwiązania 5-wymiarowego modelu równowagi populacji. Obecnie mam bardzo dobry kod równoległy MPICH2 w FORTRAN, ale gdy zwiększamy wartości parametrów, tablice stają się zbyt duże, aby działać w trybie pamięci rozproszonej.
Mam dostęp do klastra z 15 węzłami, w którym każdy węzeł ma dwa 8-rdzeniowe procesory i 128 GB pamięci RAM. Chcę napisać uruchomić program z MPI-3.0 w trybie pamięci współużytkowanej, aby każdy proces nie generował własnej kopii każdej tablicy.
Zanim będę mógł uruchomić cokolwiek w klastrze, muszę go przetestować na komputerze z systemem Ubuntu. Jest to zasadniczo jedno ostrze klastra, ponieważ ma dwa 8-rdzeniowe procesory i 128 GB pamięci RAM. Będę pisać i testować na nim mój kod, więc proszę o odpowiedź na uruchamianie programów na komputerze Ubuntu.
Czytałem, że istnieje sposób na uruchomienie MPI-3.0 w trybie pamięci współdzielonej, takim jak OpenMP, zamiast domyślnego trybu pamięci rozproszonej.
Pytania:
Jak będę musiał zmienić kod? Czy muszę dodawać wywołania do innych funkcji MPI, takich jak
MPI_WIN_ALLOCATE
?Jak skompilować kod, aby uruchomić MPI-3.0 w trybie pamięci współdzielonej? Czy będzie inaczej, jeśli będzie obejmował kilka węzłów?
Podaj przykładowe skrypty kompilacyjne, jeśli możesz. Mam też tylko kompilatory GNU. Klaster, którego używam, nie obsługuje kompilatorów Intel.
mpiexec -n 8 /path/to/application
aby sfałszować komputer, aby pomyślał, że ma 8 różnych węzłów.