Я пытаюсь оптимизировать приложение MPI с высоко асинхронным шаблоном связи. Каждый ранг имеет список вещей для вычисления и отправляет сообщения по мере необходимости, если входы или выходы находятся на другом ранге. Кроме того, каждый ранг является многопоточным (в настоящее время с одним коммуникационным потоком и 5 рабочими).
Я снабдил код таймерами вокруг различных критически важных для кода частей кода, что дает мне список троек (начало, конец, тип) для каждого потока. Наглядным способом, со временем в качестве горизонтальной оси, рангом и нитью в качестве вертикали и цветом, указывающим, что в данный момент делает каждая нить, я получаю изображение, подобное этому, для 16 рангов с 6 нитями / ранг:
Мой вопрос: каковы другие способы визуализации этих данных, которые могут помочь определить проблемы с производительностью? У кого-нибудь есть любимый тип графика, который они используют при профилировании асинхронных приложений?
Этот набор данных ограничен тем, что он не знает структуру потока данных, но я хотел бы получить как можно больше информации, прежде чем пытаться собрать что-то более сложное.
Несжатое изображение здесь, на случай, если кто-то захочет осмотреться (загрузка по обычному маршруту не удалась). К сожалению, Firefox не принимает его, хотя я считаю, что он действителен, возможно потому, что он просто слишком большой.