Narzędzia do pomiaru kosztów komunikacji MPI [zamknięte]

Używam MPI i chcę mierzyć koszty komunikacji, aby móc je następnie porównać z kosztami "przetwarzania", np. ile czasu potrzebuję na rozrzucenie listy przez n procesów, a następnie porównać ją z tym, ile czasu potrzebuję na jej sortowanie.

Czy ktoś zna jakieś narzędzia do pomiaru kosztów komunikacji? (rozrzut na przykład)

Czy jest coś do dokonywania pomiarów kosztów komunikacji MPI jak jest np. PAPI do analizy kodu wydajność?

Z góry dzięki!

Author: dx_mrt, 2012-05-15

1 answers

Tak, Jest wiele takich narzędzi. MPI definiuje interfejs narzędzi, który pozwala innym bibliotekom na wtrącanie się w wywołania funkcji MPI i wykonywanie zliczeń, timing itp.

Bardzo małym narzędziem do profilowania MPI jest mpip - daje bardzo krótkie podsumowanie aktywności MPI w Twoim kodzie.

BibliotekaIPM jest dość łatwa do zbudowania i daje wiele MPI i razy, a w rezultacie daje ładny plik HTML. Wspominasz o PAPI; IPM zintegruje też PAPI liczniki, jeśli są dostępne. Używamy tego regularnie w naszym centrum i myślę, że to zrobi to, co chcesz. Jeśli twój program został zbudowany z dynamicznych bibliotek dla MPI, nie musisz nawet rekompilować, aby go użyć (mpiP ma tę samą właściwość).

Jumpshot , który jest dostarczany z MPICH2, ale może być zbudowany z dowolnego MPI, pokazuje na osi czasu, jak długo trwała każda operacja MPI.

OpenSpeedshop daje bardzo szczegółowe pomiary wydajności Twojego kodu, wyróżniając szczególnie "drogie" linie; posiada również tryb śledzenia MPI, który identyfikuje czasy MPI po linii kodu. Instalacja może być trudna.

W komercyjnej części widma znajdują się Vampir z TU Dresden oraz Intel Trace Analyzer and Collector (ITAC). Vampir zbiera ślady na poziomie źródłowym, MPI i OpenMP za pomocą biblioteki open source VampirTrace, która również integruje się z PAPI, aby zapewnić szczegółowe śledzenie zdarzeń i liczników. Ślady wampira są otwarte Format śledzenia, który może być odczytany przez różne inne narzędzia oprócz Vampira.

ITAC jest częścią Intel Cluster Studio XE. Przeznaczony jest głównie do pracy z Intel MPI i dzielenia tego samego kodu z Vampirem, zapewnia mniej więcej taką samą funkcjonalność. Jedną z jego fajnych funkcji jest dołączony automatyczny kontroler poprawności MPI w czasie pracy.

Allinea MAP to profiler MPI firmy Allinea, który zapewnia analizę wydajności ze zintegrowaną przeglądarką źródłową, która wyświetla koszt komunikacji / obliczeń wraz z poszczególnymi liniami kodu źródłowego. Pokazuje również wykresy wysokiego poziomu informacji o wydajności, w tym pamięci, instrukcji procesora i komunikacji.

Ale są inne narzędzia wyższego poziomu, które nie tylko dają raporty, ale faktycznie oferują porady. PerfExpert TACC to narzędzie oparte na wierszu poleceń, które wykonuje szereg pomiarów i oferuje porady dotyczące strojenia wydajności. Scalasca z Jülich, rekompiluje Twój kod z dużą ilością oprzyrządowania na poziomie źródła i może wskazywać na nierównowagę obciążenia, szczególnie drogie kolektywy MPI itp. Może również zintegrować się z Vampirem w celu szczegółowej analizy śladów.

 25
Author: Jonathan Dursi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-30 19:36:18