Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Nastąpi wykonanie programu, po czym zostanie zapisany plik z profilem - (o automatycznie wygenerowanej nazwie), z rozszerzeniem .map na końcu. Jeśli chcemy samemu wybrać nazwę pliku z profilem, należy dodać opcję -o:  "map --profile -o <nazwa-pliku>  (...komenda...)".

...

Zaleca się jednak, aby program był skompilowany z flagą -g; wtedy otrzyma się informacje o czasie spędzonym w poszczególnym częściach kodu - będą one bardziej przydatne. Oprócz tego, niektóre optymalizację optymalizacje (inlinowanie funkcji, nie zapisywanie ramki stosu) może spowodować nieczytelne wyniki. W takim wypadku warto spróbować kompilację kompilacji z "-fno-omit-frame-pointer"

W celu obejrzenia profilu wystarczy:

...

  • czas spędzony w funkcjach (wedle ścieżki wywołania - stack)
  • czas spędzony w funkcjach (płaski profile - suma wszystkich wywołań), rozróżnienie inclusive i exclusive (self) time
  • kolorowanie czasu, wedle aktywności:  obliczenia,  komunikacja (MPI),  I/O
  • możliwe inne widoki (metryki)
  • zoomowanie się na konkretny wycinek czasu

Dodatkowe uwagi

  • user guide, https://developer.arm.com/docs/101136/2001/map
  • INTERVAL (próbkowanie), można przestawić
  • User Guide (strona Arm),
  • możliwość dobrania interwału, co ile profiler będzie próbkował naszą aplikację
  • można wykonać map bez opcji --profile, ; wtedy otworzy się GUI, wykona program i od razu otworzą się wyniki; stosować zalecamy stosowanie tego podejścia, tylko dla zadań o małej liczbie CPU lub gdy na analizę spędzamy tylko kilka chwil; plik .map ma tę przewagę, że zostaje na dysku i będziemy mogli go ponownie otworzyć (a wystarczy do tego tylko jeden CPU)

zalecenie:

  • wykonywać MAP z profilem do pliku (w trybie sbatch)
  • analizować w trybie interaktywnym (sesja graficzna) na małej liczbie CPU
    (chodzi o to by aby nie zajmować zasobów → w trakcie analizy wyników, rdzenie prawie niczego nie liczą)