Um processo otimizado de produção de mapas da Radiação
Cósmica de Fundo em Microondas
José Oscar Fernandes1, Carlos Alexandre Wuensche de Souza1,
Airam Jônatas Preto2, Stephan Stephany2
1
Coordenadoria de Ciências Espaciais e Atmosféricas, INPE,
2
Lab. de Computação e Matemática Aplicada, INPE,
Av. Astronautas, 1758, 12227-010, São José dos Campos, SP
E-mail: [email protected], [email protected],
[email protected], [email protected].
t x N Proc
0,5
0,45
0,4
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
thpf
thpf/mpi
0
4
8
12
16
20
N Proc
Figura 2: Comparação entre implementações HPF e HPF/MPI
Estes resultados demonstram que a otimização de
desempenho paralelo deve ser melhor explorada, por
exemplo, utilizando uma versão somente com MPI ou
dividindo-se o domínio de forma que cada processador
execute a convolução somente no seu subconjunto de
dados, minimizando assim a comunicação entre
processadores.
Agradecimentos:
C. A. W. agradece o apoio da Fapesp via Projeto Temático
2000/06770-2.
tc o n v x N P ro c
3 ,0 0
M (2 5 6 ,2 5 6 )
2 ,5 0
M (5 1 2 ,5 1 2 )
2 ,0 0
t(s)
em [3]. Entretanto, a aplicação dessa técnica não
proporcionou uma comunicação mais eficiente entre os
nós no cálculo de uma matriz transposta, como ilustrado
na Figura 2, que apresenta uma comparação entre os
resultados das duas implementações para matrizes de
dimensão 512 por 512.
t(s)
Este trabalho propõe uma estratégia de
otimização de desempenho para o software de
produção de mapas da Radiação Cósmica de Fundo
em Microondas (RCFM) [1], onde se busca a
minimização do tempo de processamento utilizando
uma arquitetura paralela de memória distribuída.
Inicialmente, um código desenvolvido em
Fortran foi portado para Fortran 90 e HPF (High
Performance Fortran), em uma implementação
baseada em paralelismo de dados. O código foi
convenientemente dividido em trechos e foi
instrumentado para prover informações dos tempos
de execução de cada trecho.
A análise dos tempos de execução mostrou um
“gargalo” de desempenho nas rotinas que
implementam a convolução de matrizes, que
emprega um algoritmo FFT (Fast Fourier
Transform) bidimensional [2]. Isso se deve à
comunicação gerada pela dependência de dados
entre os processadores, uma vez que no algoritmo
FFT, a matriz de convolução deve ser transposta.
Essa operação mostrou-se pouco eficiente quando se
utiliza o HPF, como ilustrado na Figura 1,
utilizando-se uma máquina paralela de memória
distribuída de 16 processadores de arquitetura IA32.
M (1 0 2 4 ,1 0 2 4 )
1 ,5 0
1 ,0 0
0 ,5 0
0 ,0 0
0
4
8
12
16
20
N P ro c
Figura l: Tempos da convolução paralela de matrizes para
diferentes dimensões e número de processadores.
Em busca de melhor desempenho, a rotina FFT
foi reescrita utilizando HPF e chamadas à biblioteca
de comunicação por troca de mensagens MPI
(Message Passing Interface), que permite
paralelismo de dados e tarefas. O uso de MPI para
melhorar o desempenho do HPF havia sido proposto
Referências
[l] M. Tegmark, How to make maps from CMB data
without losing information, The Astrophysical
Journal Letters, 480 (1997) L87-L90.
[2] I. Foster, "Designing and Building Parallel
Programs", Addison-Wesley Publishing Company,
Reading, 1995.
[3] I. Foster, D. R. Kohr Jr., R. Krishnaiyer, A.
Chouldhary, Double Standards: bringing task
parallelism to HPF via the Message Passing
Interface, em "Supercomputing Technical Papers",
1996.
543
Download

543