Estou tentando otimizar um aplicativo MPI com um padrão de comunicação altamente assíncrono. Cada classificação possui uma lista de itens a serem calculados e envia mensagens conforme necessário, se as entradas ou saídas residirem em uma classificação diferente. Além disso, cada classificação é encadeada (atualmente com um encadeamento de comunicação e 5 trabalhadores).
Eu instrumentei o código com timers em torno das diferentes partes críticas de desempenho, o que me fornece uma lista de triplos (início, fim, tipo) para cada thread. Traçados de maneira óbvia, com o tempo como eixo horizontal, a classificação e a linha como a vertical e a cor indicando o que cada linha está fazendo atualmente, recebo uma imagem como essa para 16 fileiras com 6 linhas / classificação:
Minha pergunta é: quais são outras maneiras de visualizar esses dados que podem ajudar a identificar problemas de desempenho? Alguém tem um tipo favorito de plot que eles usam ao criar um perfil de aplicativos assíncronos?
Esse conjunto de dados é limitado por não conhecer a estrutura do fluxo de dados, mas eu gostaria de obter o máximo de informações possível antes de tentar coletar algo mais complicado.
A imagem não compactada está aqui , caso alguém queira olhar em volta (falha ao fazer o upload pela rota normal). Infelizmente, o Firefox não aceita, mesmo que eu acredite que seja válido, possivelmente porque é muito grande.