SlideShare une entreprise Scribd logo
1  sur  49
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
Computação Paralela - igorj@dmo.fee.unicamp.br 2
AgendaAgenda

Introdução

Conceitos

Tecnologias e Ferramentas

Pesquisas & Aplicação

Conclusão
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.
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
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
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
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.
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;
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
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
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
Computação Paralela - igorj@dmo.fee.unicamp.br 12
ConceitosConceitos
TaxonomiaTaxonomia
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
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
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
Computação Paralela - igorj@dmo.fee.unicamp.br 16
ConceitosConceitos
TaxonomiaTaxonomia

Ilustração da arquitetura NUMAIlustração da arquitetura NUMA
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
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
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
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
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
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
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
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á
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
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)
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
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.
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
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
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
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”
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
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
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
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
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
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++
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
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
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
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
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
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
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
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
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?
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
Computação Paralela - igorj@dmo.fee.unicamp.br 49
Dúvidas?
Paralelismo ComputacionalParalelismo Computacional
Muito obrigado!
Contato:Contato:
igorj@dmo.fee.unicamp.brigorj@dmo.fee.unicamp.br
Skype:Skype:
noldorjnoldorj

Contenu connexe

En vedette

Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo  Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo Verônica Veiga
 
Tópicos - Computacao Paralela Programacao 2 (Visão geral)
Tópicos - Computacao Paralela Programacao 2 (Visão geral)Tópicos - Computacao Paralela Programacao 2 (Visão geral)
Tópicos - Computacao Paralela Programacao 2 (Visão geral)Luiz Arthur
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Luiz Arthur
 
Relatórios de mídias sociais digitais - Arquitetura Paralela
Relatórios de mídias sociais digitais - Arquitetura ParalelaRelatórios de mídias sociais digitais - Arquitetura Paralela
Relatórios de mídias sociais digitais - Arquitetura ParalelaLívia Cunha
 
Che puro ciel!, orfeo's aria from orfeo ed euridice
Che puro ciel!, orfeo's aria from orfeo ed euridiceChe puro ciel!, orfeo's aria from orfeo ed euridice
Che puro ciel!, orfeo's aria from orfeo ed euridiceEfraín Suárez-Arce, M.Ed
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAntony Barbosa
 
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIGerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIMauro Tapajós
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfisHélio Martins
 
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dadosFundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dadosRafael Pinheiro
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosElaine Cecília Gatto
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 
Curso Básico de Word 2013 - Parte IV
Curso Básico de Word 2013 - Parte IVCurso Básico de Word 2013 - Parte IV
Curso Básico de Word 2013 - Parte IVABCursos OnLine
 
Curso Básico de Word 2013 - Parte II
Curso Básico de Word 2013 - Parte IICurso Básico de Word 2013 - Parte II
Curso Básico de Word 2013 - Parte IIABCursos OnLine
 
Curso de Básico de Excel 2013 - Parte I
Curso de Básico de Excel  2013 - Parte ICurso de Básico de Excel  2013 - Parte I
Curso de Básico de Excel 2013 - Parte IABCursos OnLine
 

En vedette (18)

Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo  Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo
 
Tópicos - Computacao Paralela Programacao 2 (Visão geral)
Tópicos - Computacao Paralela Programacao 2 (Visão geral)Tópicos - Computacao Paralela Programacao 2 (Visão geral)
Tópicos - Computacao Paralela Programacao 2 (Visão geral)
 
Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)Tópicos - Computacao Paralela Programação 3 (Visão geral)
Tópicos - Computacao Paralela Programação 3 (Visão geral)
 
Relatórios de mídias sociais digitais - Arquitetura Paralela
Relatórios de mídias sociais digitais - Arquitetura ParalelaRelatórios de mídias sociais digitais - Arquitetura Paralela
Relatórios de mídias sociais digitais - Arquitetura Paralela
 
Che puro ciel!, orfeo's aria from orfeo ed euridice
Che puro ciel!, orfeo's aria from orfeo ed euridiceChe puro ciel!, orfeo's aria from orfeo ed euridice
Che puro ciel!, orfeo's aria from orfeo ed euridice
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
 
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSIGerência de Redes - 6.Arquitetura de Gerenciamento OSI
Gerência de Redes - 6.Arquitetura de Gerenciamento OSI
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfis
 
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dadosFundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
 
PSI - SIBC, SGBD
PSI - SIBC, SGBDPSI - SIBC, SGBD
PSI - SIBC, SGBD
 
Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
Aula 3 - Sistemas e Modelos de Dados
Aula 3 - Sistemas e Modelos de DadosAula 3 - Sistemas e Modelos de Dados
Aula 3 - Sistemas e Modelos de Dados
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dados
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
Curso Básico de Word 2013 - Parte IV
Curso Básico de Word 2013 - Parte IVCurso Básico de Word 2013 - Parte IV
Curso Básico de Word 2013 - Parte IV
 
Curso Básico de Word 2013 - Parte II
Curso Básico de Word 2013 - Parte IICurso Básico de Word 2013 - Parte II
Curso Básico de Word 2013 - Parte II
 
Curso de Básico de Excel 2013 - Parte I
Curso de Básico de Excel  2013 - Parte ICurso de Básico de Excel  2013 - Parte I
Curso de Básico de Excel 2013 - Parte I
 

Similaire à Computação Paralela - Uma Abordagem Geral

Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Fernando Gomes Chaves
 
História dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SIHistória dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SILeo Lorieri
 
Conceitos Iniciais LP I
Conceitos Iniciais LP IConceitos Iniciais LP I
Conceitos Iniciais LP IPatrícia Melo
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilHeron Carvalho
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Paulo Vital
 
Introdução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte IIntrodução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte IVinícius Hax
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Intel Software Brasil
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
 
Apresentacao -aula_01_rede_industrial
Apresentacao  -aula_01_rede_industrialApresentacao  -aula_01_rede_industrial
Apresentacao -aula_01_rede_industrialMarcioRodrigues173060
 
Petic Emgetis Final
Petic Emgetis FinalPetic Emgetis Final
Petic Emgetis Finalnetimba
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Ipaulocoob
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionaisrodfernandes
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoCarlos Veiga
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linuxbarrosjonatas
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 

Similaire à Computação Paralela - Uma Abordagem Geral (20)

Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
História dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SIHistória dos Sistemas - 3a Semana de SI
História dos Sistemas - 3a Semana de SI
 
Conceitos Iniciais LP I
Conceitos Iniciais LP IConceitos Iniciais LP I
Conceitos Iniciais LP I
 
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, BrazilResearch Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil
 
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
Programação Multicore: Como sobreviver a esta revolução usando o Pinguim?
 
Introdução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte IIntrodução à Computação de Alto Desempenho - Parte I
Introdução à Computação de Alto Desempenho - Parte I
 
Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!Computação Manycore: Uma Arquitetura muito além do Multicore!
Computação Manycore: Uma Arquitetura muito além do Multicore!
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
Tic 9ºano módulo 1
Tic 9ºano módulo 1Tic 9ºano módulo 1
Tic 9ºano módulo 1
 
Apresentacao -aula_01_rede_industrial
Apresentacao  -aula_01_rede_industrialApresentacao  -aula_01_rede_industrial
Apresentacao -aula_01_rede_industrial
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Petic Emgetis Final
Petic Emgetis FinalPetic Emgetis Final
Petic Emgetis Final
 
Arquitetura tcp ip - 1
Arquitetura tcp ip - 1Arquitetura tcp ip - 1
Arquitetura tcp ip - 1
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionais
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicação
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linux
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 

Plus de Igor José F. Freitas

Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...
Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...
Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...Igor José F. Freitas
 
Trends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systemsTrends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systemsIgor José F. Freitas
 
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...Igor José F. Freitas
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoIgor José F. Freitas
 
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisSimulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisIgor José F. Freitas
 

Plus de Igor José F. Freitas (6)

Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...
Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...
Tendências da junção entre Big Data Analytics, Machine Learning e Supercomput...
 
Trends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systemsTrends towards the merge of HPC + Big Data systems
Trends towards the merge of HPC + Big Data systems
 
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
Computação de Alto Desempenho - Fator chave para a competitividade do País, d...
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorização
 
Sistemas Cognitivos
Sistemas CognitivosSistemas Cognitivos
Sistemas Cognitivos
 
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisSimulador Eletromagnético em um Ambiente de Grades Computacionais
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
  • 2. Computação Paralela - igorj@dmo.fee.unicamp.br 2 AgendaAgenda  Introdução  Conceitos  Tecnologias e Ferramentas  Pesquisas & Aplicação  Conclusão
  • 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
  • 12. Computação Paralela - igorj@dmo.fee.unicamp.br 12 ConceitosConceitos TaxonomiaTaxonomia
  • 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
  • 49. Computação Paralela - igorj@dmo.fee.unicamp.br 49 Dúvidas? Paralelismo ComputacionalParalelismo Computacional Muito obrigado! Contato:Contato: igorj@dmo.fee.unicamp.brigorj@dmo.fee.unicamp.br Skype:Skype: noldorjnoldorj