Os resultados comparativos entre o desempenho computacional para ambos os progra mas sob a plataforma INTEL indicam que ambos (Anatem - Simsp) são comparáveis quanto a performance computacional. Uma ligeira superioridade pode ser identificada no programa
Anatem para os sistemas de maior dimensão. Entretanto esta superioridade não excede 20%.
O ganho de desempenho apresentado pela ativação das opções de otimização reduz substancialmente o tempo de processamento das simulações, sobretudo para os SEE de maior porte. Entretanto estas otimizações são apenas recomendáveis para utilização nas versões finais do programa, devendo ser mantidas desativadas nas fases de desenvolvimento e validação dos resultados, uma vez que podem ocultar a detecção de erros no programa.
Durante a fase de desenvolvim ento do programa Simsp, foi identificada uma superiori
dade da linguagem Fortran no tratamento de variáveis complexas. Este tipo de variável é de
finida internamente pelos compiladores Fortran, o que não ocorre com os compiladores C++.
A ssim , é necessário definir objetos para representar as variáveis com plexas e suas operações
elementares, causando um “overhead’ adicional durante as operações com números com plexos
em C++.
Várias tentativas de eliminação deste “overhead!” foram testadas sem sucesso, inclusive a metodologia recomendada em [83] para operações com números complexos, através de fun ções declaradas como “inline". Esta declaração deveria realizar uma substituição automática do código correspondente a função durante a fase de compilação, eliminando o uoverhead\ Entre tanto isto não se verifica. Por fim, foi realizada uma substituição do código relativo às operações elementares com números complexos diretamente nas partes do programa que utilizam intensi vamente tais operações. Esta metodologia foi adotada para a solução das equações da rede (constituída basicamente de operações com números complexos e onde reside o maior esforço
Capítulo 6 - R esultados de Sim ulações e A valiação do D esem penho Computacional
a ativação das opções de otimização é ainda superior aos ganhos da plataforma Intel, chegando
a alcançar 3.16 para o IBM/SP2 (nó largo).
Observou-se dos resultados obtidos que o ganho de desempenho para o IBM/SP2 (nó
largo) cresce juntamente com a dimensão dos SEE, o que não acontece para os demais compu
tadores. Isto pode ser atribuído a uma eficiente utilização da arquitetura do barramento de dados desta máquina, tomando o processo de transferência de dados da memória principal para a me mória “cache” mais eficiente quando grandes massas de dados necessitam ser transferidas.
6.2.3.2. Avaliação Geral dos Resultados
Os resultados comparativos entre o desempenho computacional para ambos os progra mas sob a plataforma Intel indicam que ambos (Anatem - Simsp) são comparáveis quanto a performance computacional. Uma ligeira superioridade pode ser identificada no programa
Anatem para os sistemas de maior dimensão. Entretanto esta superioridade não excede 20%.
O ganho de desempenho apresentado pela ativação das opções de otimização reduz substancialmente o tempo de processamento das simulações, sobretudo para os SEE de maior porte. Entretanto estas otimizações são apenas recomendáveis para utilização nas versões finais do programa, devendo ser mantidas desativadas nas fases de desenvolvimento e validação dos resultados, uma vez que podem ocultar a detecção de erros no programa.
Durante a fase de desenvolvimento do programa SlMSP, foi identificada uma superiori dade da linguagem Fortran no tratamento de variáveis complexas. Este tipo de variável é de finida internamente pelos compiladores Fortran, oque não ocorre com os compiladores C++.
Assim, é necessário definir objetos para representar as variáveis complexas e suas operações elementares, causando um “overhead’ adicional durante as operações com números complexos em C++.
Várias tentativas de eliminação deste “overhead’ foram testadas sem sucesso, inclusive a metodologia recomendada em [83] para operações com números complexos, através de fun ções declaradas como “inline”. Esta declaração deveria realizar uma substituição automática do código correspondente a função durante a fase de compilação, eliminando o “overhead\ Entre tanto isto não se verifica. Por fim, foi realizada uma substituição do código relativo às operações elementares com números complexos diretamente nas partes do programa que utilizam intensi vamente tais operações. Esta metodologia foi adotada para a solução das equações da rede (constituída basicamente de operações com números complexos e onde reside o maior esforço
C apítulo 6 - R esultados de Sim ulações e A valiação do D esem penho Com putacional
computacional do esquema alternado entrelaçado implícito). Para as demais partes do programa que utilizam operações com números complexos, como a fatoração LU e a determinação das injeções de corrente dos elementos do SEE, utilizaram-se as operações usuais definidas para os números complexos (através de operadores sobrecarregados e diretivas “inline”).
A tabela abaixo apresenta o desempenho das operações com números complexos em C++. Os resultados para o C++ correspondem ao desempenho destas operações com a metodo logia recomendada (“inline”) [83] e com a metodologia adotada neste trabalho para a solução das equações da rede (subst. código). Os resultados estão normalizados pelas mesmas operações elementares realizadas em Fo rtran.
Operações com N u m . Complexos F o r t r a n c++ f u n ç õ e s i n l i n e s u b s t . c ó d i g o + 1.00 2.11 0.85 * 1.00 1.94 1.26
Tabela 6.6 - Desempenho das Operações Elementares em Fortran e C++
Observa-se que a realização de operações com números complexos através da metodolo gia “inline” é cerca de 2 vezes mais lenta do que a mesma operação em Fortran. Noentanto,
com o emprego das substituições de código, os desempenhos se eqüivalem. A adoção de subs tituições deste tipo em todo o programa poderá minimizar ainda mais a superioridade apresenta da pelo programa Anatem para os SEE de dimensão elevada, onde o grande número de máqui
nas síncronas intensifica o uso de operações com números complexos durante, principalmente, a determinação das injeções de corrente destes elementos.
A seguir será feita uma análise do desempenho do programa Simsp para simulações de curta e longa duração, destacando-se o crescimento do tempo computacional a medida que au menta a dimensão do SEE e avaliando-se a máxima dimensão possível com tempo de simulação inferior ao tempo real do sistema para ambas simulações.