• No results found

Kapittel 11. Vedlegg

11.1 Kommentar fra professor Sara Johnsdotter til evalueringen av den norske regjeringens Handlingsplan mot

11.1.8 Sammenfattende kommentarer

Pode-se agora comparar o desempenho dos mecanismos de comunicação implementados segundo os modelo teóricos apresentados no ponto 4.1.

Fig. 4-24: Comparação dos modelos teóricos Mec1-3 com os mecanismos de comunicação implementados sobre uma rede T8

As topologias de rede utilizadas são constituídas por 3 processadores com ligações directas entre eles. Nas figuras à esquerda têm-se o tempo que demora a formar uma matriz completa em todos os nós e à direita têm-se a evolução da largura de banda mas apenas para os mecanismos MEC3. A azul tracejado encontram-se os valores teóricos já apresentados no ponto 4.1, ao passo que as linhas sólidas vermelhas indicam os resultadados medidos na rede alvo. Adicionalmente, também a vermelho sólido e indicado por Mec3 - fila encontram-se as medições sobre uma rede com 3 processadores em fila, para o caso dos mecanismos Mec3.

Assim pode-se comparar a melhor rede em termos de comunicação, onde todos os processadores tem ligações directas entre si, com a pior, isto é uma fila de processadores. Ainda a negro têm-se os valores de pico anunciados pelo fabricante.

Convém ainda referir que os mecanismos Mec2 não foram implementados, visto que Mec3 apresenta desempenho superior, sendo os primeiros uma evolução de Mec1. A resposta teórica dos modelos Mec2 está incluída na figura apenas como referência.

Para o caso da figura acima, pode-se observar que os mecanismos implementados seguem muito de perto o modelo teórico, o que indica que o atraso introduzido pelo ambiente de comunicação é reduzido no caso de T805. Para o caso de uma fila, o atraso deve-se em parte à partição da mensagem em pacotes pelos mecanismos Mec3, mas na sua maior parte ao caminho a percorrer que é maior. De qualquer modo, mesmo quando a rede é uma fila, Mec3 apresenta um desempenho superior a Mec1 sobre uma rede com ligações directas entre nós.

Fig. 4-25: Comparação dos modelos teóricos Mec1-3 com os mecanismos de comunicação impelmentados sobre uma rede C4

Para o caso de redes C40, apresentadas na figura acima, verifica-se que quando o volume de dados aumenta, o desempenho dos portos de comunicação dos C40s aproxima-se um pouco dos valores medidos no capítulo 2, isto é 2 x 8.293 MBytes / s bidireccionais, mas ainda muito longe dos 2 x 20 MBytes / s de largura de banda anunciada.

Neste caso pode-se observar que para Mec1 e Mec3 o atraso introduzido pelo ambiente de comunicações é grande, mas este é menos significativo quanto maior for o volume de dados a comunicar.

Para este processadores também se volta a verificar que Mec3, mesmo sobre uma fila de processadores, introduz menor atraso que Mec1 sobre uma rede com ligações ponto a ponto. De facto está muito próximo dos valores teóricos para Mec2.

No caso dos ADSP21060, Fig. 4-26, continua a verificar-se que Mec3 é muito mais eficiente que Mec1, mesmo no caso de uma fila, como mostra a curva Mec3-fila. Neste caso o atraso introduzido por ambos os mecanismo é grande para pequenos volumes de dados a comunicar aproximando-se bastante do modelo teórico quando esse volume aumenta, apresentando Mec3 um desempenho mais próximo do teórico.

No entanto repare-se que neste caso, a largura de banda do modelo teórico, 2 x 19.8 MBytes/s, é muito próxima da anunciada 2 x 20 MBytes / s. Mesmo mais próxima que no caso de redes T8, como já foi mostrado no capítulo 2.

Fig. 4-26: Comparação dos modelos teóricos Mec1-3 com os mecanismos de comunicação implementados sobre uma rede ADSP21060

De qualquer forma, o ensaio desta arquitectura não segue tão de perto o modelo teórico como as baseadas em T805. Como já foi abordado no ponto 2.4.3, as comunicações nesta arquitectura, se bem que recorram a estratégias de DMA tratadas pelo micro-núcleo 3L, provavelmente poderão ser ainda optimizadas.

Além disso, como o tempo de inicialização do canal de comunicação é muito elevado nesta arquitectura, para volumes de dados menores aumenta a distância entre o modelo teórico e o desempenho dos mecanismos de comunicação, quaisquer que eles sejam.

Como o Transputer permite cálculo e comunicação concorrente sem grande perda de desempenho, arquitecturas baseadas neste processador seguem muito de perto o modelo teórico, pois os mecanismos de comunicação não introduzem um atraso significativo.

A medida que permite estabelecer uma relação entre o poder de cálculo e a largura de banda, permitindo assim comparar arquitecturas homogéneas em termos de eficiência, dada pela expressão (2-2), indica para as medidas de desempenho apresentadas no capítulo 2, que a arquitectura mais eficiente é constituída por T8s, seguida de perto pelas baseadas em Sharcs e finalmente as baseadas em C40s.

Aplicando esta medida ao Mec3, para os diferentes volumes de dados que têm vindo a ser utilizados neste ponto, mantendo os valores da velocidade de cálculo para três processadores constante, isto é o triplo do apresentado na Fig. 2-10, obtêm-se os resultados apresentados na figura seguinte:

Fig. 4-27: Relação velocidade de cálculo / largura de banda para Mec3

Como se pode ver a arquitectura mais eficiente continua a ser sempre a baseada em T8. Mas para pequenos volumes de dados redes de C40s são mais eficientes que de Sharcs. De facto apenas para ordem de matrizes próximas de 30 é que as redes de Sharcs passam a ser mais eficientes que as de C40s. Como a largura de banda por porto do Sharc, medida no capítulo 2, é mais do dobro do que a do C40, o mecanismo de comunicação introduz um atraso menor nesta última topologia.

Convém ainda mencionar que embora tenham sido utilizados volumes de dados correspondentes a matrizes de ordem 20 a 100, e nos ensaios de rotinas de cálculo apresentadas nos capítulos seguintes sejam utilizadas as mesmas ordens, esta relação não implica que para qualquer algoritmo, desde que a ordem seja superior a 30, as arquitecturas Sharc são mais eficientes que as C40. De facto, em alguns dos algoritmos cuja implementação

é discutida nos capítulos seguintes, o volume de dados a comunicar tem de ser dividido em mensagens com um comprimento reduzido, consistindo apenas numa linha da matriz, de modo que arquitecturas C40 serão mais eficientes que Sharc. Pode-se no entanto afirmar que arquitecturas T8 serão sempre mais eficientes.

Quanto a redes heterogéneas irregulares, os tempos dependem fortemente da topologia da rede. Pode-se no entanto considerar que o tempo de comunicação tem como limite inferior o tempo necessário para atravessar o maior troço da rede. Por outro lado, se se simplificar a rede numa fila eliminado bifurcações, tomando em conta que o custo do novo arco é a soma dos arcos que constituíam a bifurcação, pode-se encontrar um limite superior para o tempo de comunicação.

Finalmente falta referir que visto um dos objectivos desta implementação do SPAM ser a compatibilidade ao nível da linguagem C, com extensões para processamento paralelo da 3L, não foram desenvolvidas primitivas de comunicação que utilizem o DMA para o caso do C40, nem reescritas as fornecidas pelo micro-núcleo 3L para o caso do ADSP21060.

4.9 Resumo

Neste capítulo foi apresentado o desenvolvimento de um eficiente ambiente de comunicação, que será a base do SPAM. De facto, muita da funcionalidade deste transparente ambiente de passagem de mensagem irá simplificar a implementação dos níveis seguintes, principalmente as funções de cálculo paralelas descritas no capítulo seguinte.

No entanto este ambiente não está restrito ao uso do SPAM. É aliás intuito da organização do SPAM, que o sistema possa ser visto como camadas consecutivas onde a abstracção do

hardware é tanto maior quanto mais alta for a camada, mas garantindo que cada camada traga

alguma funcionalidade que possa ser utilizada num ambiente de programação paralelo.

Assim, os mecanismos Mec3, ao disponibilizarem as primitivas de comunicação send e receive, e alguns sub-programas baseados nestas, extendem o ambiente de programação Parallel C da 3 L. Se bem que estas extensões apenas tenham significado sobre compiladores compatíveis com o já referenciado, nada impede que com algumas adaptações se possa extender o ambiente de programação de qualquer compilador de C paralelo. Apenas no caso da arquitectura ser de memória partilhada serão necessárias profundas modificações nos mecanismos de comunicação, visto estes terem sido desenhados para uma arquitectura de passagem de mensagem.

Além disso o sistema de tratamento de erros em tempo de execução adiciona robustez ao ambiente de comunicação, à custa de uma muito pequena perda de desempenho. Esta robustez poderá ser útil durante o desenvolvimento de aplicações.

O ambiente de comunicação proposto permite desenvolver aplicações segundo um modelo mestre-escravos, onde deve ser desenvolvido código diferente para o mestre e para os escravos. No mestre ou no processo de controlo deverá ser desenvolvido código C paralelo para efectuar a comunicação entre a rede e o anfitrião, e consequentemente ordenar as tarefas dos escravos. Nos nós da rede ou nos escravos deve ser desenvolvido o código das tarefas a efectuar. É conveniente notar que o código deverá ser igual para todos os escravos, que operam sobre conjuntos de dados distribuídos diferentes. Pode no entanto ser especificada uma tarefa para ser efectuada apenas por um único nó, usando a variável que guarda a identificação do nó: WRK.

Em termos de SPAM, como será abordado no capítulo seguinte, será desenvolvido um servidor que irá ser executado no processo de controlo e que servirá a rede em termos de acesso aos recursos do anfitrião, simplificando a geração automática de código.