Wprowadzenie do mechanizmu topologii |
Mechanizm topologii pozwala na stosowanie niestandardowych sposobów identyfikacji procesów
oraz umożliwia mapowanie procesów na istniejące w systemie maszyny.
Grupa w MPI jest kolekcją n procesów. Każdy z nich identyfikowany jest przez numer z zakresu od 0 do n -1. W wielu aplikacjach współbieżnych linearne uporządkowanie procesów nie jest adekwatne do logicznej struktury komunikacji. Procesy ułożone są często na dwu - lub trójwymiarowej siatce. Ogólnie logiczne rozłożenie procesów zdeterminowane przez algorytm, nazywane dalej
"topologią wirtualną", opisane jest grafem. Należy przy tym rozróżnić wirtualną topologię procesów od topologii hardware'u. Topologia wirtualna może być spożytkowana przez system do powiązania procesów z konkretnymi procesorami tak, aby komunikacja przebiegała jak najbardziej efektywnie.
Struktura komunikacyjna aplikacji reprezentowana jest przez graf. Węzły grafu symbolizują procesy, krawędzie natomiast łączą procesy, które komunikują się ze sobą. MPI pozwala na komunikację między dowolnymi dwoma procesami należącymi do tej samej grupy. Dlatego brak połączenia w grafie miedzy pewnymi dwoma procesami nie uniemożliwia im komunikacji. Takie procesy jednak nie będą mogły korzystać w komunikacji z właściwego dla danej topologii nazewnictwa.
Przegląd funkcji obsługujących mechanizm topologii - wstęp
Funkcje MPI_GRAPH_CREATE oraz MPI_CART_CREATE służą do tworzenia topologii o odpowiednio grafowej oraz kartezjańskiej. Pobierają one jako parametr komunikator comm_old, z którym powiązany jest zbiór procesów, na które ma być mapowana topologia. Zwracają nowy komunikator comm_topol który zawiera informację o topologii.
W komunikatorze zawarte są następujące informacje dotyczące topologii:
1. ndims (liczba wymiarów),
2. dims (rozmiar siatki w każdym z kierunków),
3. periods (informacja o okresowości),
1. index - tablica stopni węzłów
2. edges - tablica połączeń