Simulador Eletromagnético em um Ambiente de Grades Computacionais
Computação Paralela - Uma Abordagem Geral
1. Computação ParalelaComputação Paralela
MSc. Igor José Ferreira de Freitas
igorj@dmo.fee.unicamp.br
Analista de Sistemas – Orbisat
Doutorando em Eng. Elétrica
Faculdade de Eng. Elétrica e Computação / UNICAMP
Prof. Ciências da Computação / Sistemas de Informação
Universidade Anhanguera - Campinas
Uma Abordagem GeralUma Abordagem Geral
3. Computação Paralela - igorj@dmo.fee.unicamp.br 3
IntroduçãoIntrodução
MotivaçãoMotivação
Busca por maior desempenho;
Aplicações intrinsecamente paralelas;
Alto custo dos supercomputadores tradicionais;
Desenvolvimento de redes de computadores de alta
velocidade;
Resolução de sistemas de grande porte.
4. Computação Paralela - igorj@dmo.fee.unicamp.br 4
ConceitosConceitos
ConcorrênciaConcorrência
Concorrência em:
− Sistemas Operacionais ModernosSistemas Operacionais Modernos
Suporte a multitarefa
Aproveitamento do processamento
Concorrência com um ou mais “cores”
Uso de “pipes” em UNIX systems
Foco na robustez e garantia de execução
A concorrência é inerente ao SO
5. Computação Paralela - igorj@dmo.fee.unicamp.br 5
Concorrência em:
− Programas ParalelosProgramas Paralelos
Encontrar a concorrência é o desafio!
Troca de mensagens entre os processos
O foco é: performance
Minimizar o tempo de processamento de
um processo
ConceitosConceitos
ConcorrênciaConcorrência
6. Computação Paralela - igorj@dmo.fee.unicamp.br 6
ConceitosConceitos
Concorrência vs ParalelismoConcorrência vs Paralelismo
Todos os programasTodos os programas
Programas ConcorrentesProgramas Concorrentes
Programas ParalelosProgramas Paralelos
7. Computação Paralela - igorj@dmo.fee.unicamp.br 7
ConceitosConceitos
Definições importantesDefinições importantes
ParalelismoParalelismo GeométricoGeométrico:: o conjunto de dados é
dividido e cada processador executa uma cópia do
programa em seu conjunto de dados.
ParalelismoParalelismo “Processor“Processor Farm”Farm”:: Processador
mestre que supervisiona um grupo de
processadores escravos.
Paralelismo PipelineParalelismo Pipeline:: A aplicação é dividida em
tarefas específicas que são distribuídas aos
processadores de forma pipeline.
8. Computação Paralela - igorj@dmo.fee.unicamp.br 8
ConceitosConceitos
Definições importantesDefinições importantes
Paralelismo:Paralelismo: Uso simultâneo de dois ou mais
processadores para resolver um problema de forma
mais rápida que processamento sequencial.
float a = E + A;
float b = E + A;
float c = E + C;
float d = E + D;
float r = a + b + c + d;
9. Computação Paralela - igorj@dmo.fee.unicamp.br 9
ConceitosConceitos
TaxonomiaTaxonomia
Taxonomia de Flynn
− Single Instruction, Single Data - SISDSingle Instruction, Single Data - SISD
Uma instrução processa um único
dado
Modelo von Neumann
10. Computação Paralela - igorj@dmo.fee.unicamp.br 10
ConceitosConceitos
TaxonomiaTaxonomia
• Single Instruction, Multiple Data – SIMDSingle Instruction, Multiple Data – SIMD
• Uma instrução, multiplos dados
• Cada processador executa a mesma instrução, porém,
em dados diferentes
• Requer pouca comunicação
entre os processos, ideal para:
Processamento de Sinais
11. Computação Paralela - igorj@dmo.fee.unicamp.br 11
ConceitosConceitos
TaxonomiaTaxonomia
Multiple Instruction, Single Data - MISDMultiple Instruction, Single Data - MISD
− Múltiplas instruções, único dado
− Arquitetura não aplicável
Multiple Instruction, Multiple Data – MIMDMultiple Instruction, Multiple Data – MIMD
− Múltiplas instruções, múltiplos dados
− Cada unidade de processamento processa sua unidade de
informação
− Arquitetura mais utilizada
13. Computação Paralela - igorj@dmo.fee.unicamp.br 13
ConceitosConceitos
TaxonomiaTaxonomia
Multiple Instruction, Multiple Data – MIMD pode serMultiple Instruction, Multiple Data – MIMD pode ser
classificado de acordo com a organização de memória:de acordo com a organização de memória:
Memória compartilhadaMemória compartilhada
− Todos os processos compartilham um único espaço
de memória
− Comunicação através de escrita e leitura de variáveis
compartilhadas
− SMPs – Symmetric MultiprocessorsSMPs – Symmetric Multiprocessors
Fácil programação
Overhead na comunicação entre processador
e memória
14. Computação Paralela - igorj@dmo.fee.unicamp.br 14
ConceitosConceitos
TaxonomiaTaxonomia
Não escalável pois quanto mais processadores,Não escalável pois quanto mais processadores,
mais overhead de comunicaçãomais overhead de comunicação
15. Computação Paralela - igorj@dmo.fee.unicamp.br 15
ConceitosConceitos
TaxonomiaTaxonomia - Tipos de MIMD- Tipos de MIMD
NUMA – Nonuniform Memory Access ou Cache-coherentNUMA – Nonuniform Memory Access ou Cache-coherent
NUMANUMA
− Memória compartilhada e acessada por todas as
unidades de processamento, porém:
− Alguns blocos de memória estão fisicamente
associados com outras unidades de processamento
− Reduz overhead, aumenta escalabilidade
− Problemas: pode reduzir tempo de resposta aos dados
Cache minimiza o delayCache minimiza o delay
16. Computação Paralela - igorj@dmo.fee.unicamp.br 16
ConceitosConceitos
TaxonomiaTaxonomia
Ilustração da arquitetura NUMAIlustração da arquitetura NUMA
17. Computação Paralela - igorj@dmo.fee.unicamp.br 17
ConceitosConceitos
TaxonomiaTaxonomia
Memórias distribuídasMemórias distribuídas
- Cada processo tem seu próprio espaço de memória- Cada processo tem seu próprio espaço de memória
- Comunicação via “Message Passing”- Comunicação via “Message Passing”
- Arquitetura de comunicação define velocidade no acesso- Arquitetura de comunicação define velocidade no acesso
a dadosa dados
18. Computação Paralela - igorj@dmo.fee.unicamp.br 18
ConceitosConceitos
TaxonomiaTaxonomia
Memórias distribuídas:Memórias distribuídas:
− MPP – Massively Parallel Processors
− Clusters
MPP:MPP:
− Processadores e Infra-estrutura de Rede estão
fortemente acoplados
− Altamente escalável
− Milhares de processadores em um único sistema
19. Computação Paralela - igorj@dmo.fee.unicamp.br 19
ConceitosConceitos
TaxonomiaTaxonomia
ClustersClusters
− Composto de PCs X86, AMD64 em infra-estrutura
de rede “comum” Ethernet Gigabit, Fibra Óptica
− PCs com Linux são chamados de Beowulf Clusters
− Reaproveitamento de Máquinas
Sistemas Híbridos:Sistemas Híbridos:
− Clusters em diferentes locais
− Cada Cluster possui doi ou mais processadores com
memória compartilhada
GridsGrids
− Sistemas distribuídos, heterogêneos
20. Computação Paralela - igorj@dmo.fee.unicamp.br 20
ConceitosConceitos
TaxonomiaTaxonomia
GridsGrids
− Sistemas distribuídos
− Recursos Heterogêneos
− Conectados via LANS ou WANS
− Multiplica poder de supercomputadores
− Compartilhar recursos através de Middleware
Armazenamento
Processamento
Instrumentos
Outros
21. Computação Paralela - igorj@dmo.fee.unicamp.br 21
ConceitosConceitos
Ambientes de Programação ParalelaAmbientes de Programação Paralela
Abstração do hardware paralelo
Visão em ferraments, ambiente de programação e APIs
Devido a inúmeras linguagens e ambientes houve uma
padronização:
− OpenMP para Memória Compartilhada
− MPI para Memória Distribuída
OpenMPOpenMP
− Diretiras de compilação
− Apropriado para SMPs
− C, C++ e Fortran
− Paralelismo em Código Sequencial
22. Computação Paralela - igorj@dmo.fee.unicamp.br 22
ConceitosConceitos
Ambientes de Programação ParalelaAmbientes de Programação Paralela
MPI – Message Passing InterfaceMPI – Message Passing Interface
− Biblioteca com rotinas para troca de mensagens
− Gerenciamento de processos
− Difícil de programar
− Memória distribuída
Arquitetura HíbridaArquitetura Híbrida
− MPI + OpenMP
− Múltiplos Nós (MPI) sendo que cada Nó pode
possuir dois ou mais processadores e aplicar
diretivas OpenMP
23. Computação Paralela - igorj@dmo.fee.unicamp.br 23
ConceitosConceitos
Ambientes de Programação ParalelaAmbientes de Programação Paralela
• MPI 2.0
• Criação dinâmica de
processos
• I/O paralelo
• One-sided communication
• Leitura e escrita
transparente para o
programador,
independente de outros
processos
24. Computação Paralela - igorj@dmo.fee.unicamp.br 24
ConceitosConceitos
Definições importantesDefinições importantes
TarefaTarefa
− Sequência de instruções processadas em um
bloco
− Este bloco corresponde a uma parte de um
algoritmo
− O primeiro passo para desenvolver um
sistema parelo é pensar nas tarefas que este
terá
25. Computação Paralela - igorj@dmo.fee.unicamp.br 25
ConceitosConceitos
Definições importantesDefinições importantes
Unidade de ExecuçãoUnidade de Execução
Cada tarefa deverá ser executada em uma UE
UE = Processo ou Thread
ProcessoProcesso: conjunto de recursos para execução de
instruções,
- I/O
- Pilha de execução
- Gerenciadores de sinais
- IDs de usuários e grupos e controle de acesso
Thread:Thread: Associada a um processo onde cada uma divide
os recursos deste processo
26. Computação Paralela - igorj@dmo.fee.unicamp.br 26
ConceitosConceitos
Definições importantesDefinições importantes
Unidade de Processamento (UP):Unidade de Processamento (UP):
− Elemento de hardware que processa um conjunto
de dados
− Depende do contexto, exemplos:
Clusters: cada PC (nó) é uma UP
Em cada PC, em que aplica-se SMP, cada
Processador é uma UP
Load Balancing:Load Balancing:
− Tarefas mapeada em UE, UE mapeadas em UPTarefas mapeada em UE, UE mapeadas em UP
− Distribuição inteligente de carga (processamento)Distribuição inteligente de carga (processamento)
27. Computação Paralela - igorj@dmo.fee.unicamp.br 27
ConceitosConceitos
Definições importantesDefinições importantes
Race conditionsRace conditions
- Erro comum em programas paralelos
- Ocorre quando a saída de um programa sofre alterações
devido a mudanças de alocação nas UE
- Erro mais conhecido como “Alocação não controlada de
Threads”
- Mesmo programa provê resultados diferentes rodando
no mesmo ambiente e com os mesmos dados
- Causados por erros de sincronização em ambientes de
memória compartilhada
28. Computação Paralela - igorj@dmo.fee.unicamp.br 28
ConceitosConceitos
Definições importantesDefinições importantes
DeadlocksDeadlocks
- Ocorre quando duas ou mais tarefas entram em um ciclo
de dependência no qual cada tarefa depende da outra
para finalizar uma instrução.
Exemplo:
- Tarefa A espera uma mensagem
da Tarefa B para continuar sua
execução, enquanto que, a Tarefa
B espera uma resposta da Tarefa
A para continuar sua execução.
29. Computação Paralela - igorj@dmo.fee.unicamp.br 29
Tecnologias e Ferramentas
Modelo de memória compartilhadaModelo de memória compartilhada
− Posix threadsPosix threads
− Win32 threadsWin32 threads
− JavaJava
− OpenMPOpenMP
30. Computação Paralela - igorj@dmo.fee.unicamp.br 30
Tecnologias e FerramentasTecnologias e Ferramentas
Modelo de memória distribuídaModelo de memória distribuída
- Message Passing Interface – MPI- Message Passing Interface – MPI
Programação GPUProgramação GPU
- OpenCL – AMD e Khronos Group- OpenCL – AMD e Khronos Group
- CUDA – Nvidia- CUDA – Nvidia
- ATI Stream- ATI Stream
Arquitetura heterogêneaArquitetura heterogênea
- IBM Cell- IBM Cell
- OpenCL – AMD e Khronos Group- OpenCL – AMD e Khronos Group
- AMD Fusion- AMD Fusion
- Intel Sandy Bridge Architecture- Intel Sandy Bridge Architecture
31. Computação Paralela - igorj@dmo.fee.unicamp.br 31
Tecnologias e FerramentasTecnologias e Ferramentas
Computação Comercial – GPU Banco de Dados
Programação GPU aplicada a Banco de DadosProgramação GPU aplicada a Banco de Dados
- Área de altos investimentos- Área de altos investimentos
- Ótimas oportunidades- Ótimas oportunidades
- Buscas em banco de dados gigantescos requer milhões de- Buscas em banco de dados gigantescos requer milhões de
registros por segundoregistros por segundo
- Oracle e Universidade de- Oracle e Universidade de
Califórnia, EUACalifórnia, EUA
desenvolvem pesquisas emdesenvolvem pesquisas em
DB GPUDB GPU
32. Computação Paralela - igorj@dmo.fee.unicamp.br 32
Tecnologias e FerramentasTecnologias e Ferramentas
Computação Comercial – GPU Banco de DadosComputação Comercial – GPU Banco de Dados
VantagensVantagens
− GPU pode oferecer Teraflops (um trilhão de operações porGPU pode oferecer Teraflops (um trilhão de operações por
segundo) de poder computacionalsegundo) de poder computacional
− Menor consumo que CPUsMenor consumo que CPUs
− Até 30x mais poder computacional que CPUsAté 30x mais poder computacional que CPUs
− Estão sendo desenvolvidos uma variedades de algoritmosEstão sendo desenvolvidos uma variedades de algoritmos
paralelo de busca para GPUsparalelo de busca para GPUs
Desvantagens (desafios)Desvantagens (desafios)
− Latência de transferência entre PC e GPULatência de transferência entre PC e GPU
− Nem todo problema é “paralelizável”Nem todo problema é “paralelizável”
33. Computação Paralela - igorj@dmo.fee.unicamp.br 33
Pesquisas & AplicaçãoPesquisas & Aplicação
Processamento de Sinais - RADARProcessamento de Sinais - RADAR
Radar (Radio Detection and Range)Radar (Radio Detection and Range)
− Detectar objetos a longas distâncias através daDetectar objetos a longas distâncias através da
reflexão de ondas eletromagnéticasreflexão de ondas eletromagnéticas
Composição de um RadarComposição de um Radar
− AntenaAntena
− Hardware de Radio Frequência (transmissão eHardware de Radio Frequência (transmissão e
recepção)recepção)
− ProcessamentoProcessamento
− VisualizaçãoVisualização
34. Computação Paralela - igorj@dmo.fee.unicamp.br 34
Pesquisas & AplicaçãoPesquisas & Aplicação
Processamento de Sinais - RADARProcessamento de Sinais - RADAR
ProcessamentoProcessamento
− Dependendo do porte do Radar faz-se necessário umaDependendo do porte do Radar faz-se necessário uma
arquitetura híbrida:arquitetura híbrida:
FPGAFPGA
GPUsGPUs
Arquitetura RISC e/ou CISCArquitetura RISC e/ou CISC
− Por que?Por que?
Alta quantidade de dadosAlta quantidade de dados
Tempo realTempo real
Flexibilidade e ControleFlexibilidade e Controle
35. Computação Paralela - igorj@dmo.fee.unicamp.br 35
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento de
CelularesCelulares
Dissertação de Mestrado – Parceria entreDissertação de Mestrado – Parceria entre
UNICAMP/FEEC/DMO e CPqD. Apoio da CAPESUNICAMP/FEEC/DMO e CPqD. Apoio da CAPES
Freitas, Igor José Ferreira, Simulador eletromagnético em um
ambiente de grades computacionais - Campinas, SP: 2010.
Dissertação de Mestrado - Universidade Estadual de Campinas,
Faculdade de Engenharia Elétrica e de Computação.
Objetivos:Objetivos:
− Pré-processamento (modelagem geométrica)Pré-processamento (modelagem geométrica)
− Simulação sequencial e paralelaSimulação sequencial e paralela
− Pós-processamento (visualização de resultados)Pós-processamento (visualização de resultados)
− Avaliar SAR – Índice de Absorção Específica, RadiaçãoAvaliar SAR – Índice de Absorção Específica, Radiação
Não-IonizanteNão-Ionizante
36. Computação Paralela - igorj@dmo.fee.unicamp.br 36
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Pré-processamentoPré-processamento
− Dividido em módulos:Dividido em módulos:
ModelagemModelagem
Gerador de malhaGerador de malha
Envio para processamentoEnvio para processamento
37. Computação Paralela - igorj@dmo.fee.unicamp.br 37
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento de
CelularesCelulares
Fluxo doFluxo do
SoftwareSoftware
SAR-BRSAR-BR
38. Computação Paralela - igorj@dmo.fee.unicamp.br 38
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Ambiente de trabalho – JAVA + OpenGL + C++Ambiente de trabalho – JAVA + OpenGL + C++
39. Computação Paralela - igorj@dmo.fee.unicamp.br 39
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento de
CelularesCelulares
Modelagem – Etapa de Pré-ProcessamentoModelagem – Etapa de Pré-Processamento
40. Computação Paralela - igorj@dmo.fee.unicamp.br 40
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Esquema de GRID para Processamento Sequencial e/ou ParaleloEsquema de GRID para Processamento Sequencial e/ou Paralelo
41. Computação Paralela - igorj@dmo.fee.unicamp.br 41
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Pós-processamento – Análise de ResultadosPós-processamento – Análise de Resultados
42. Computação Paralela - igorj@dmo.fee.unicamp.br 42
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Pós-processamento – Análise de ResultadosPós-processamento – Análise de Resultados
43. Computação Paralela - igorj@dmo.fee.unicamp.br 43
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Validação dos resultados:Validação dos resultados:
•Considerar as medições feitas no laboratório de ensaios
para radiações não ionizantes do CpqD
•Comparar com os valores obtidos nas simulações realizadas
com o software.
• A variação aceita entre esses resultados de SAR é de 25%.
• Os procedimentos de medição experimental e as
simulações seguem as especificações do padrão IEEE 1528
44. Computação Paralela - igorj@dmo.fee.unicamp.br 44
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Validação do Software em Experimento Laboratorial - CPqDValidação do Software em Experimento Laboratorial - CPqD
45. Computação Paralela - igorj@dmo.fee.unicamp.br 45
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
- Alguns resultados- Alguns resultados
- 4mm da base- 4mm da base- 2mm da base- 2mm da base
46. Computação Paralela - igorj@dmo.fee.unicamp.br 46
Pesquisas & AplicaçãoPesquisas & Aplicação
Simulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares
Superfície SAR - LaboratórioSuperfície SAR - Laboratório Superfície SAR - SimuladaSuperfície SAR - Simulada
- Alguns resultados- Alguns resultados
47. Computação Paralela - igorj@dmo.fee.unicamp.br 47
Conclusões
Paralelismo ComputacionalParalelismo Computacional
- Paralelismo é utilizado em várias áreas da Computação- Paralelismo é utilizado em várias áreas da Computação
- Entretenimento- Entretenimento
- Indústria- Indústria
- Pesquisa- Pesquisa
- Empresas- Empresas
- Academia- Academia
- Antes de utilizar Paralelismo analisar:- Antes de utilizar Paralelismo analisar:
- O problema a ser solucionado é grande suficiente?- O problema a ser solucionado é grande suficiente?
- O esforço de paralelizá-lo seria justificável?- O esforço de paralelizá-lo seria justificável?
- Este é passível de concorrência e paralelismo?- Este é passível de concorrência e paralelismo?
48. Computação Paralela - igorj@dmo.fee.unicamp.br 48
Conclusões
Paralelismo ComputacionalParalelismo Computacional
- Devido ao avanço tecnológico temos o surgimento de- Devido ao avanço tecnológico temos o surgimento de
Ambientes ParalelosAmbientes Paralelos
- Facilitam a vida do Desenvolvedor- Facilitam a vida do Desenvolvedor
- Permitem um avanço na solução de problemas com alto- Permitem um avanço na solução de problemas com alto
custo x benefíciocusto x benefício
- Em contrapartida:- Em contrapartida:
- Desenvolvedores precisam se familiarizar com este- Desenvolvedores precisam se familiarizar com este
paradigmaparadigma