O documento apresenta uma introdução à computação paralela, abordando seus principais conceitos, tecnologias e ferramentas. Discutem-se tópicos como taxonomia, modelos de memória, ambientes de programação paralela e definições importantes como tarefa, unidade de processamento e problemas como race conditions e deadlocks. Exemplos de tecnologias incluem OpenMP, MPI, CUDA e arquiteturas heterogêneas. Aplicações em bancos de dados paralelos também são mencionadas.
Hoje a informática é fundamental para quem quer um bom emprego, é um requisito mínimo para o sucesso profissional. O Curso de Word 2013 é um diferencial no currículo, seja qual for a área escolhida pelo candidato. Praticamente todos usam o Word para gerar documentos. Então a resposta para a pergunta "Como isso vai ser útil para mim?" é: o Word 2013 vai ser necessário para sua vida na escola, faculdade e no emprego, e com ele, seu trabalho se tornará mais prático, rápido e de qualidade.
Hoje a informática é fundamental para quem quer um bom emprego, é um requisito mínimo para o sucesso profissional. O Curso de Word 2013 é um diferencial no currículo, seja qual for a área escolhida pelo candidato. Praticamente todos usam o Word para gerar documentos. Então a resposta para a pergunta "Como isso vai ser útil para mim?" é: o Word 2013 vai ser necessário para sua vida na escola, faculdade e no emprego, e com ele, seu trabalho se tornará mais prático, rápido e de qualidade.
Números não mentem. Mas as pessoas que trabalham com números podem mentir!
Você é potencial vítima deste efeito o tempo todo. Em jornais, revistas, blogs e toda outra mídia, todo dado que é apresentado ao público passa pelo filtro de alguém que sabe fazer isto aí, se quiser. Conjuntos de dados em si são desinteressantes para o grande público, mas um recorte adequado pode tirar deles grandes histórias.
O que é computação paralela?
Imagine que você precisa realizar um cálculo muito extenso em pouquíssimo tempo. Para realizar tal tarefa, você chama um grupo de amigos e divide esse cálculo em partes, uma para cada amigo. Depois de realizado o cálculo de cada parte, você junta os resultados obtidos para conseguir o resultado final desse calculo extenso.
INFORMÁTICA EM SERIE
Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma série discreta de instruções
As instruções são executadas sequencialmente uma após a outra
Executado em um único processador
Apenas uma instrução pode ser executada a qualquer momento no tempo
No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos computacionais para resolver um problema computacional: Um problema é dividido em partes discretas que podem ser resolvidas simultaneamente.
Cada parte é dividida em uma série de instruções.
As instruções de cada peça executam simultaneamente em diferentes processadores.
Um mecanismo geral de controle / coordenação é empregado
O processo computacional deve ser capaz de:
Ser dividido em peças discretas que podem ser resolvidas simultaneamente;
Executar várias instruções do programa a qualquer momento;
Ser resolvido em menos tempo com vários recursos de computação do que com um único recurso de computação.
Os recursos de computação são tipicamente:
Um único computador com vários processadores / núcleos
Um número arbitrário de tais computadores conectados por uma rede
Praticamente todos os computadores autônomos hoje são paralelos a partir de uma perspectiva de hardware: Várias unidades funcionais (cache L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante, processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de computadores paralelos maiores.
A maioria dos grandes computadores paralelos do mundo (supercomputadores) são clusters de hardware produzidos por um punhado de vendedores (principalmente) bem conhecidos
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilHeron Carvalho
Palestra ministrada no SEMPET sobre o grupo de pesquisa em computação de alto desempenho pelo Prof. Francisco Heron de Carvalho Junior. Inclui estado-da-arte em arquiteturas e software para CAD.
Hoje a informática é fundamental para quem quer um bom emprego, é um requisito mínimo para o sucesso profissional. O Curso de Word 2013 é um diferencial no currículo, seja qual for a área escolhida pelo candidato. Praticamente todos usam o Word para gerar documentos. Então a resposta para a pergunta "Como isso vai ser útil para mim?" é: o Word 2013 vai ser necessário para sua vida na escola, faculdade e no emprego, e com ele, seu trabalho se tornará mais prático, rápido e de qualidade.
Hoje a informática é fundamental para quem quer um bom emprego, é um requisito mínimo para o sucesso profissional. O Curso de Word 2013 é um diferencial no currículo, seja qual for a área escolhida pelo candidato. Praticamente todos usam o Word para gerar documentos. Então a resposta para a pergunta "Como isso vai ser útil para mim?" é: o Word 2013 vai ser necessário para sua vida na escola, faculdade e no emprego, e com ele, seu trabalho se tornará mais prático, rápido e de qualidade.
Números não mentem. Mas as pessoas que trabalham com números podem mentir!
Você é potencial vítima deste efeito o tempo todo. Em jornais, revistas, blogs e toda outra mídia, todo dado que é apresentado ao público passa pelo filtro de alguém que sabe fazer isto aí, se quiser. Conjuntos de dados em si são desinteressantes para o grande público, mas um recorte adequado pode tirar deles grandes histórias.
O que é computação paralela?
Imagine que você precisa realizar um cálculo muito extenso em pouquíssimo tempo. Para realizar tal tarefa, você chama um grupo de amigos e divide esse cálculo em partes, uma para cada amigo. Depois de realizado o cálculo de cada parte, você junta os resultados obtidos para conseguir o resultado final desse calculo extenso.
INFORMÁTICA EM SERIE
Tradicionalmente, o software foi escrito para computação em série: Um problema é dividido em uma série discreta de instruções
As instruções são executadas sequencialmente uma após a outra
Executado em um único processador
Apenas uma instrução pode ser executada a qualquer momento no tempo
No sentido mais simples, a computação paralela é o uso simultâneo de múltiplos recursos computacionais para resolver um problema computacional: Um problema é dividido em partes discretas que podem ser resolvidas simultaneamente.
Cada parte é dividida em uma série de instruções.
As instruções de cada peça executam simultaneamente em diferentes processadores.
Um mecanismo geral de controle / coordenação é empregado
O processo computacional deve ser capaz de:
Ser dividido em peças discretas que podem ser resolvidas simultaneamente;
Executar várias instruções do programa a qualquer momento;
Ser resolvido em menos tempo com vários recursos de computação do que com um único recurso de computação.
Os recursos de computação são tipicamente:
Um único computador com vários processadores / núcleos
Um número arbitrário de tais computadores conectados por uma rede
Praticamente todos os computadores autônomos hoje são paralelos a partir de uma perspectiva de hardware: Várias unidades funcionais (cache L1, cache L2, ramificação, prefetch, decodificação, ponto flutuante, processamento gráfico (GPU), número inteiro, etc.)
Unidades / núcleos de execução múltipla
Múltiplos segmentos de hardware
As redes conectam múltiplos computadores autônomos (nós) para criar conjuntos de computadores paralelos maiores.
A maioria dos grandes computadores paralelos do mundo (supercomputadores) são clusters de hardware produzidos por um punhado de vendedores (principalmente) bem conhecidos
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilHeron Carvalho
Palestra ministrada no SEMPET sobre o grupo de pesquisa em computação de alto desempenho pelo Prof. Francisco Heron de Carvalho Junior. Inclui estado-da-arte em arquiteturas e software para CAD.
Introdução à Computação de Alto Desempenho - Parte IVinícius Hax
Introdução à Computação de Alto Desempenho. Essa apresentação foi usada como base para uma aula de Sistemas Distribuídos ministrada na FURG. Pode servir como introdução ao tema. Para mais informações sobre o assunto consultar as referências ao final da apresentação. Nas minhas apresentações aqui no slideshare existe uma parte II que aborda conceitos complementares.
Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...Igor José F. Freitas
O objetivo desta palestra é apresentar aos desenvolvedores como o universo da Computação de Alto Desempenho (computação paralela) está se tornando cada vez mais acessível e se democratizando nos softwares de Big Data e Inteligência Artificial. Supercomputadores que até pouco tempo eram utilizados apenas em indústrias de nicho, setores do governo e pela ciência, estão contribuindo para a solução de grandes desafios da sociedade, da indústria e da ciência. Esta palestra terá uma abordagem técnica envolvendo conceitos de software e hardware com o intuito de provocar o desenvolvedor a fazer uso de grandes servidores para desenvolverem aplicações inovadoras.
This lecture aims to give some food for thought regarding how the current High Performance Computing systems (hardware and software) tends to merge with Big Data ones (Machine Learning, Analytics and Enterprise workloads) in order to meet both workloads demands sharing the same clusters.
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...Igor José F. Freitas
Vídeo: https://www.youtube.com/watch?v=8cFqNwhQ7uE
Fator chave para a competitividade do País, da Ciência e da Indústria.
Palestra ministrada durante o Intel Innovation Week 2015 .
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