Смекни!
smekni.com

Анализ эффективности MPI-программ (стр. 7 из 7)

- Реализовано программное средство со следующими возможностями:

1. Отображение выполнения программы в виде дерева интервалов

2. Сбор и отображение характеристик выбранного интервала.

3. Выдача общей информации обо всех интервалах в текстовый файл.

4. Показtime-line.

Выводы:

· Отладка эффективности параллельных программ – процесс очень сложный и трудоемкий

· Развитые средства анализа эффективности могут существенно ускорить этот процесс.

· Необходима грамотная - наглядная визуализация результатов.

· Для достижения эффективности параллельной программы приходится многократно изменять программу, иногда кардинально меняя схему ее распараллеливания. Поэтому важно использовать высокоуровневые средства разработки параллельных программ

· Необходимо учитывать различные эффекты, связанные с нестабильностью поведения параллельных программ.

В дальнейшем планируется вести работу в направлении интеллектуализации системы. Желательно получение автоматических советов пользователю-программисту по улучшению эффективности программы. Это поможет упростить решение традиционных сложностей, возникающих на пути отладки параллельной программы.


Приложение 1

Структура программы.

Модуль main– вызов процедур сбора информации, анализа и генерации результата. Compute – вычисление все необходимых характеристик трассы. Для этого используется модуль tree, который отвечает за формирование дерева с данными об искомых характеристиках. Модуль determine позволяет находить и выделять интервалы в исходном коде и в трассе программы. Модуль visual занимается графическим отображением полученных данных и состоит и timeline– события в трассе, и characteristics– дерево интервалов с отображаемыми характеристиками.

Приложение 2

Используемые цвета на TimeLine:

1. Коллективные операции:

MPI_Barrier, MPI_Bcast, MPI_Gather, MPI_Gatherv, MPI_Scatter, MPI_Scatterv, MPI_Allgather, MPI_Allgatherv, MPI_Alltoall, MPI_Alltoallv, MPI_Reduce, MPI_Allreduce, MPI_Reduce_scatter, MPI_Scan

черный

2. Операции посылки

MPI_Send, MPI_Bsend, MPI_Ssend, MPI_Rsend

тёмно-зелёный

3. Неблокирующие операции посылки

MPI_Isend, MPI_Ibsend, MPI_Issend, MPI_Irsend

светло-зелёный

4. Операции получения/ожидания/посылки-получения с блокировкой MPI_Recv, MPI_Wait, MPI_Waitany, MPI_Waitall, MPI_Waitsome, MPI_Probe, MPI_Sendrecv, MPI_Sendrecv_replace

темно-синий

5. Операции получения/проверки без блокировки

MPI_Irecv, MPI_Test, MPI_Testany, MPI_Testall, MPI_Testsome, MPI_Iprobe голубой

6. Другие (малоиспользуемые) операции

MPI_Request_free, MPI_Cancel, MPI_Test_cancelled, MPI_Send_init, MPI_Bsend_init, MPI_Ssend_init, MPI_Rsend_init, MPI_Recv_init, MPI_Start, MPI_Startall

светло-серый

7. Пользовательский код

светло-розовый