[ Pobierz całość w formacie PDF ]

argument. Plikiem wyjściowym jest plik wykonywalny nazwany tak jak pierwszy argument (czyli
kompilacja  mpitest.cpp spowoduje utworzenie pliku  mpitest.exe):
@ECHO OFF
REM --- ścieżka do katalogu kompilatora
SET GPP_PATH=C:\MinGW
REM --- ścieżka do katalogu z MPI
SET MPI_PATH=C:\Dev-Cpp\DeinoMPI
%GPP_PATH%\bin\g++ %1 %MPI_PATH%\lib\cxx.lib %MPI_PATH%\lib\mpi.lib -I %MPI_PATH%\include
-o %~n1.exe
REM --- usuwanie zmiennych
SET GPP_PATH=
SET MPI_PATH=
Można jeszcze pokusić się o sprawdzanie, czy aby na pewno podano argument. Poprawiony kod
będzie wyglądał następująco:
7/12
MPI pod Windows XP Maciej Tarkowski
@ECHO OFF
REM --- ścieżka do katalogu kompilatora
SET GPP_PATH=C:\MinGW
REM --- ścieżka do katalogu z MPI
SET MPI_PATH=C:\Dev-Cpp\DeinoMPI
IF (%1) == () GOTO E_BRAK_PARAM
%GPP_PATH%\bin\g++ %1 %MPI_PATH%\lib\cxx.lib %MPI_PATH%\lib\mpi.lib -I %MPI_PATH%\include
-o %~n1.exe
GOTO KONIEC
:E_BRAK_PARAM
ECHO Brak parametru! Podaj nazwę pliku do kompilacji.
:KONIEC
REM --- usuwanie zmiennych
SET GPP_PATH=
SET MPI_PATH=
Skrypt wklejamy np. do Notatnika i zapisujemy np. jako mpiCC.bat. Zauważmy, że skrypt nie
bierze pod uwagę ścieżki pliku zródłowego. Ja zapisałem swój skrypt w katalogu z różnymi
kodami, zatem wywołanie kompilacji ogranicza się jedynie do przejścia do katalogu z plikiem
zródłowym i wywołania skryptu:
8/12
MPI pod Windows XP Maciej Tarkowski
5. Dev-C++ na usługach
Podobnie jak w przypadku powyższym, konieczne jest podpięcie pewnych bibliotek na etapie
linkowania. Ponieważ Dev-C++ nie umożliwia innego rozwiązania tego problemu, zmuszeni
jesteśmy tworzyć oddzielny projekt dla każdej aplikacji.
Rozpoczynamy od utworzenia nowego projektu. W tym celu z menu plik wybieramy
Nowy -> Projekt. W oknie wybieramy typ aplikacji (oczywiście  Cosole application ), podajemy
nazwę projektu, oraz określamy język programowania:
Po kliknięciu  OK przechodzimy do dobrze znanego edytora.
Następną czynnością jest skonfigurowanie projektu tak, aby radził sobie z kompilacją  musimy
 przekonać linkera, aby łączył pewne biblioteki. Przechodzimy do Projekt -> Opcje projektu. W
otwartym oknie przechodzimy do zakładki  Parametry i za pomocą przycisku  Dodaj plik
dołączamy do konsolidatora biblioteki  cxx.lib i  mpi.lib umieszczone w folderze  lib
DeinoMPI (u mnie: C:\Dev-Cpp\DeinoMPI\lib):
9/12
MPI pod Windows XP Maciej Tarkowski
Musimy jeszcze poinformować kompilator o konieczności  zerkania do katalogów z bibliotekami i
plikami nagłówkowymi. Można to zrobić na dwa sposoby.
Pierwszy polega na dodaniu odpowiednich ścieżek do list dostępnych w zakładce  Pliki/katalogi
 Opcji projektu . Korzystanie z tego sposobu oznacza jednak każdorazowe wprowadzanie tych
ścieżek przy tworzeniu nowego projektu:
Drugim rozwiązaniem jest dodanie tych samych ścieżek w konfiguracji globalnej kompilatora.
Przechodzimy do Narzędzia -> Opcje kompilatora, zakładka  Katalogi :
Wspomniane ścieżki to:
 biblioteki: \lib (u mnie: C:\Dev-Cpp\DeinoMPI\lib)
 pliki nagłówkowe C/C++ \include (u mnie: C:\Dev-
Cpp\DeinoMPI\include).
10/12
MPI pod Windows XP Maciej Tarkowski
Uff, i to by było na tyle konfiguracji. Teraz możemy oddać się przyjemności programowania w C++
z wykorzystaniem MPI.
Wklejmy przykładowy kod z rozdziału 3 i skompilujmy projekt (F9). Kompilacja powinna
zakończyć się powodzeniem.
Nastąpi automatyczne uruchomienie aplikacji. I tu pojawia się ciekawostka wynikająca ze specyfiki
środowiska MPI. Otóż jeśli korzystasz z firewalla, musisz się liczyć z jego interwencją w tym
momencie. Programy wykorzystujące MPI odwołują się bezpośrednio do procesów, co może nie
spodobać się firewallowi:
Dopiero kliknięcie  Allow powoduje uruchomienie aplikacji.
Firewall często może interweniować w następnej fazie, czyli przy uruchamianiu wielu procesów.
11/12
MPI pod Windows XP Maciej Tarkowski
6. Uruchamianie
W celu uruchomienia wielu procesów tej samej aplikacji możemy skorzystać z omawianego
wcześniej programu DeinoMPIWin: w zakładce  Mpiexec wskazujemy exe'ka, ustawiamy liczbę
procesów i klikamy  execute . Dopilnujmy również wyboru konta  credental store .
Jak wspominałem, firewall może w tym momencie bardzo protestować.
Opisana zakładka programu DeinoMPIWin jest graficzną nakładką na uruchamiany z wiersza
poleceń program mpiexec, znajdujący się w katalogu  bin .
Uruchomienie naszej aplikacji z poziomu linii komend, jest równie proste. Podstawowa składnia
przedstawia się następująco:
mpiexec -np
Koniec.
12/12 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marucha.opx.pl