for the processes. Other information, such as links, variables, events, must also be studied and explored. Particular investigation should be conducted in the case of the links, where we left open in our model to which node attribute a summary value: the origin or the destination.
Depending on the type of information being evaluated, a situation may be better than another.
The evolution of the aggregation model with other aggregation functions is also possible.
Although we discussed briefly the use of other functions, we used in our results only the addition aggregation. Functions such as max, min, mean must be studied, particularly when other type of summary data is generated by the Time-Slice technique. User defined aggregation functions, based on the available monitoring data must also be analyzed.
For the 3D approach, a possible perspective is to improve the visual mapping between the network topology and the communication pattern of the application, through the use of curved lines to represent communications. Besides the matching that is already modeled in the 3D approach, the abstract treatment of data should also consider other types of information, such as the size of links and nodes. This should be reflected directly in the visual representation.
Generally speaking, this perspective means that a graph must serve as a base to the rendering of another graph. The representation could also be guided according to routing rules of the interconnection, when they are available from the execution environment. The 3D approach might also be used to the visualization of parallel applications in many-core chips, where a network-on-chip is present inside the processor.
A third possible evolution is the merging of the hierarchical organization of monitoring data with a graph representation. This could be explored in the visual aggregation model by defining in every level of the hierarchy, a graph to represent interactions. The links of this graph could be annotated with aggregated data, as we already do in the Time-Slice technique. An example of application for such evolution is the merging of processes of a parallel application.
Perhaps the most significant implication of this work is the study of information visualiza-tion techniques applied to the parallel applicavisualiza-tion analysis. Since we used a study like this as inspiration for the thesis, we think that it can be continuously faced as motivation for new work.
Appendix A
Extended Abstract in Portuguese
The Portuguese title for this thesis is “Alguns Modelos de Visualização aplicados para a Análise de Aplicações Paralelas”. The extended Portuguese abstract is presented here to fulfill the requirements established in the co-tutelle agreement of the author.
The abstract of this appendix is basically a Portuguese translation of the more important parts of the English version of this thesis, especially the introduction of the chapters and main concepts of the proposed visualization models. Two experimental scenarios of the main document were selected for the sake of demonstrating some results in this extended abstract.
117
A.1 Introdução
Sistemas distribuídos consistem basicamente em hardware e software que contêm mais de uma única unidade de processamento [19]. Nestes sistemas, os processadores são interconectados e comunicam através de uma rede. Os programas de computador são quebrados em várias partes e devem lidar com diferentes níveis de paralelismo e com algoritmos de comunicação, como pas-sagens de mensagem e memória compartilhada. Um exemplo de sistema distribuído é chamado de Grid [30]. Estes tipo de sistema é estruturado em organizações virtuais [29], possivelmente compostas por milhares de máquinas distribuídas geograficamente. Dois exemplos de Grid são o Grid’5000 francês [12] e o TeraGrid americano [16].
Características compartilhadas por quase todas as plataformas Grid são dinamismo, hetero-geneidade de recursos e software, e presença de múltiplos domínios administrativos. Dinamismo significa que os recursos que participam de um Grid pode se tornar indisponíveis a qualquer hora, sem nenhuma notificação de que isso pode acontecer em um determinado momento. Aplicações paralelas devem lidar com isso no nível da aplicação ou através de uma biblioteca capaz de lidar com flutuações na quantidade de recursos disponíveis. A heterogeneidade significa que difer-entes configurações de recursos pode estar presdifer-entes na mesma plataforma Grid. Isto também é válido para bibliotecas de software. Um Grid pode estar espalhado por diferentes domínios administrativos, cada parte mantida independentemente por seus administradores. Além destas características, um Grid também pode ter uma rede de interconexão complexa e ser facilmente escalável quanto aos seus recursos.
A interconexão entre os recursos de um Grid pode ser composta por diferentes tipos de rede. Ela pode ser composta por tecnologias Ethernet, Myrinet, Infiniband, ou fibra óptica.
Um exemplo de Grid com vários tipos de interconexão são os chamados Desktop Grids [48], como os projetos BOINC [1] e Seti@Home [2], onde a interconexão é em geral feita através da internet. Outro exemplo que evidencia a presença de múltiplos tipos de interconexão é um Grid composto por clusters, onde uma hierarquia de interconexão forte é usada para conectar clusters homogêneos [12]. A presença de vários tipos de interconexão é um reflexo natural da heterogeneidade e da distribuição geográfica de Grids. Estes aspectos impõe uma rede mais complexa, um número maior de saltos para comunicação entre processos e latência e largura de banda variáveis e diferentes ao longo do tempo.
Plataformas Grid são também facilmente escaláveis, de uma forma que novos recursos po-dem ser indefinidamente adicionados apenas conectando eles aos participantes existentes. Nor-malmente, estas adições de recursos trazem mais heterogeneidade e aumentam a complexidade da rede. Atualmente, existem Grids globais que são compostos por milhares de computadores, como o exemplo do projeto BOINC. Outro exemplo de quão fácil é a adição de novos recursos a um Grid é o caso do Grid’5000, onde novos clusters são adicionados ao backbone principal da plataforma. A escalabilidade destas plataformas é uma boa característica do ponto de vista das aplicações paralelas, que necessitam cada vez mais de mais recursos computacionais.
Todas essas características de plataformas Grid influenciam diretamente o comportamento das aplicações paralelas durante o seu desenvolvimento e execução. Por causa disto, é impor-tante para o desenvolvedor entender o impacto do sistema distribuído sobre a aplicação. Um exemplo disso é a análise de aplicações considerando a topologia da rede. A aplicação pode ter
A.1. INTRODUÇÃO 119 um melhor ou pior desempenho dependendo de quais recursos foram escolhidos e a interconexão entre eles. Esta influência é ainda mais evidente quando os aspectos da rede são considerados, como a latência e a largura de banda, em aplicações que são limitadas pela rede. A escalabilidade de um Grid é outro aspecto que também influencia diretamente o comportamento das aplicações paralelas, uma vez que a disponibilidade de novos recursos para a aplicação não indica sempre que um melhor desempenho será alcançado.
Considerando estas situações, podemos perceber que é importante analisar o comportamento das aplicações paralelas com informações do Grid. Esta análise pode ajudar desenvolvedores a entender o impacto da topologia da rede na aplicação por exemplo. Contrastando o padrão de comunicação da aplicação com a topologia da rede pode dar dicas ao desenvolvedor de como adaptar a aplicação para melhor explorar tal interconexão. Além disso, se a rede é hierarquica-mente organizada, as aplicações podem seguir a hierarquia da rede para evitar gargalos e outros problemas de desempenho se a aplicação não é estruturada hierarquicamente. Uma boa análise também deve levar a conclusões sobre todos os processos da aplicação, incluindo padrões lo-cais e globais que podem aparecer entre eles. Se existe uma grande quantidade de processos, a análise deve ser capaz de gerar resultados sobre todos eles.
A visualização é uma forma de realizar a análise de aplicações paralelas. Ela tem sido bas-tante utilizada nos últimos 30 anos para entender e observar aplicações que são focadas em diferentes níveis de paralelismo. A forma mais tradicional de visualização acontece através de uma adaptação de gráficos Gantt [79], também conhecido como gráficos espaço-tempo. Es-tas visualizações listam os componentes da aplicação verticalmente e sua evolução no tempo é demonstrado no eixo horizontal. Exemplos de ferramentas que oferecem este tipo de análise são o Pajé [22], Vampir [60] entre outras [46, 63, 5]. Gráficos espaço-tempo são bastante usados em plataformas existentes, como clusters, onde os dados são simples e uniformes.
Muitas dessas ferramentas de visualização foram adaptadas para observar o comportamento de aplicações em sistemas distribuídos como Grid. Geralmente elas continuam usando as mes-mas técnicas de visualização. Considerando somente representações espaço-tempo, o primeiro problema que surge é que elas não podem representar, juntamente com os dados da aplicação, a complexa topologia de rede de plataformas Grid. Como discutido, o impacto dessa topologia não pode ser excluído de uma análise de aplicação quando uma interconexão complicada existe entre os recursos. O segundo problema é relacionado com a escalabilidade de visualização de gráficos espaço-tempo. Usando tais representações, o número de componentes da aplicação que podem ser visualizados uma tela de computador é limitado à resolução vertical da tela.
Esta tese tenta resolver estes problemas encontrados em técnicas de visualização tradicionais para aplicações paralelas. A idéia principal dos esforços consiste em explorar técnicas da área de visualização da informação e tentar aplicá-las no contexto de análise de programas paralelos.
Levando em conta isto, esta tese propõe dois modelos de visualização: o de três dimensões e o modelo de agregação visual. O primeiro pode ser utilizado para analisar aplicações levando-se em conta a topologia da rede dos recursos. A visualização em si é composta por três dimensões, onde duas são usadas para mostrar a topologia e a terceira é usada para representar o tempo. O segundo modelo pode ser usado para analisar aplicações paralelas com uma grande quantidade de processos. Ela explora uma organização hierárquica dos dados de monitoramento e uma técnica de visualização chamada Treemap para representar visualmente a hierarquia. Os dois
modelos representam uma nova forma de analisar aplicação paralelas visualmente, uma vez que eles foram concebidos para larga-escala e sistemas distribuídos complexos, como Grids.
Alguns dos conceitos desta tese foram publicados e um artigo está em processo de avaliação.
Este resumo estendido está organizado em cinco seções, descritos a seguir: