SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Ferramentas de Programação Paralela
     para Arquiteturas Multicore




            Acadêmicos: Helton Eduardo Ritter
                        Maycon Viana Bordin
Metodologia

• Pesquisa bibliográfica e laboratorial;
• Acadêmicos do cursos de Sistemas de
  Informação;
• Primeiro e segundo semestre de 2009;
Problema

• A evolução do hardware supera a do software;
• Fazer uso otimizado dos recursos
  computacionais;
• Computação em aplicações críticas;
Objetivos

• Estudar o estado da arte;
 • Conhecer as principais classes de aplicações;
 • Identificar as principais bibliotecas e
   linguagens;

• Desenvolver algoritmos de testes;
Aplicações

• Áreas que demandam muita capacidade de
  processamento;
• Medicina e biociências, meteorologia,
  oceanografia, comércio e finanças e
  astronomia....
• Sequenciamento genético, modelos
  econômicos, mapeamento da galáxia...
Memória compartilhada


• Faz-se uso de um único endereçamento de
memória;

• Os aplicativos acessam variáves
compartilhadas em um espaço comum;
PThreads
• PThreads é uma Interface Portável para
  Sistemas Operacionais (POSIX) padrão IEEE
  1003.1c;
• Linguagem C/C++;
• Plataforma Unix e Windows;
• Controle das threads é feito pelo programador;
• Evitar deadlocks;
• Sincronização e controle das threads;
Cilk
• Grupo de Supercomputação do MIT;
• Linguagem se baseia na linguagem C ANSI;
• Versões para as plataformas GNU/Linux,
  MacOS X e Windows;
• Cilk é encarregado de escalonar as tarefas;
• Compartilhamento e/ou roubo de tarefas;
• Paralelismo na medida certa, minimizando a
  quantidade de threads e maximizando a
  eficiência;
TBB - Threads Building Blocks

• Biblioteca para C++ desenvolvida pela Intel;
• Processadores multicore;
• Sistemas Windows, Mac OS e Linux;
• Paralelização de programas em alto nível;
OpenMP

• Em 2005 versão para Fortran/C/C++;
• Paralelizar algoritmos sequencias de modo
  facilitado;
• Uma thread mestre que irá designar as tarefas
  para as outras threads;
• Escalabilidade é limitada pela arquitetura de
  memória;
HPF - High Performance Fortran

• Extensão de Fortran 90;
• Cada processo trabalha no segmento de dados
  em que é dono no mapa de memória;
• Dados distribuídos para não haver
  dependências entre eles;
• Portabilidade para diferentes arquiteturas;
Cuda - nVidia
• Disponível nas linhas GeForce (a partir da
  Série 8), Quadro e a linha Tesla;
• GPGPU (General-purpose computing on
  Graphics Processing Units).
• Memória compartilhada de acesso rápido;
• Leitura de endereços arbitrários na memória;
• Funções recursivas não são suportadas;
• Precisão do tipo Double não segue o padrão
  IEEE 754;
Resultados

Multiplicação de matriz de 1024x1024

Java seq = 18,00543
Java paralelo = 9,096539718

C Seq/fast = 0,636755667
C OpenMP/fast = 0,258097
Resultados
Avaliação
Conclusões

• Pragmas de compilador é mais simples,
  quando o código é facilmente paralelizável;
• Autoparalelização;
• CUDA em fase de testes, logo HPF e OpenMP
  continuam sendo as principais alternativas;
• TBB surgiu com enfoque em multicore;
• A escolha da ferramenta vai depender da
  aplicação em questão.
Referências

Más contenido relacionado

Similar a Ferramentas de Programação Paralela para Arquiteturas Multicore

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
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosGustavo Ferreira Palma
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGAandrecasp
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 parteipaulocsm
 
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Tchelinux
 
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Miguel Xavier
 
Ementa informática 2011
Ementa informática 2011Ementa informática 2011
Ementa informática 2011Willian Ribeiro
 
SD_Aula_02_Introdução ao SD.pdf
SD_Aula_02_Introdução ao SD.pdfSD_Aula_02_Introdução ao SD.pdf
SD_Aula_02_Introdução ao SD.pdfFerro Gaita
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 

Similar a Ferramentas de Programação Paralela para Arquiteturas Multicore (20)

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
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Sistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursosSistemas embarcados principais_plataformas_e_recursos
Sistemas embarcados principais_plataformas_e_recursos
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 partei
 
Artigo redes
Artigo redesArtigo redes
Artigo redes
 
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
 
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
 
Ementa informática 2011
Ementa informática 2011Ementa informática 2011
Ementa informática 2011
 
SD_Aula_02_Introdução ao SD.pdf
SD_Aula_02_Introdução ao SD.pdfSD_Aula_02_Introdução ao SD.pdf
SD_Aula_02_Introdução ao SD.pdf
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 

Más de Helton Ritter

Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...Helton Ritter
 
Apresentacao pré banca TCC em SI
Apresentacao pré banca TCC em SIApresentacao pré banca TCC em SI
Apresentacao pré banca TCC em SIHelton Ritter
 
05 - Última aula Android
05 - Última aula Android05 - Última aula Android
05 - Última aula AndroidHelton Ritter
 
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosAula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosHelton Ritter
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidHelton Ritter
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com phpHelton Ritter
 
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxAuto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxHelton Ritter
 
Reconhecimento facial
Reconhecimento facialReconhecimento facial
Reconhecimento facialHelton Ritter
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHPHelton Ritter
 
Contribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteContribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteHelton Ritter
 

Más de Helton Ritter (11)

Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
 
Apresentacao pré banca TCC em SI
Apresentacao pré banca TCC em SIApresentacao pré banca TCC em SI
Apresentacao pré banca TCC em SI
 
05 - Última aula Android
05 - Última aula Android05 - Última aula Android
05 - Última aula Android
 
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosAula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para Android
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com php
 
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxAuto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
 
Primeira Aula PHP
Primeira Aula PHPPrimeira Aula PHP
Primeira Aula PHP
 
Reconhecimento facial
Reconhecimento facialReconhecimento facial
Reconhecimento facial
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHP
 
Contribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteContribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de Truste
 

Ferramentas de Programação Paralela para Arquiteturas Multicore

  • 1. Ferramentas de Programação Paralela para Arquiteturas Multicore Acadêmicos: Helton Eduardo Ritter Maycon Viana Bordin
  • 2. Metodologia • Pesquisa bibliográfica e laboratorial; • Acadêmicos do cursos de Sistemas de Informação; • Primeiro e segundo semestre de 2009;
  • 3. Problema • A evolução do hardware supera a do software; • Fazer uso otimizado dos recursos computacionais; • Computação em aplicações críticas;
  • 4. Objetivos • Estudar o estado da arte; • Conhecer as principais classes de aplicações; • Identificar as principais bibliotecas e linguagens; • Desenvolver algoritmos de testes;
  • 5. Aplicações • Áreas que demandam muita capacidade de processamento; • Medicina e biociências, meteorologia, oceanografia, comércio e finanças e astronomia.... • Sequenciamento genético, modelos econômicos, mapeamento da galáxia...
  • 6. Memória compartilhada • Faz-se uso de um único endereçamento de memória; • Os aplicativos acessam variáves compartilhadas em um espaço comum;
  • 7. PThreads • PThreads é uma Interface Portável para Sistemas Operacionais (POSIX) padrão IEEE 1003.1c; • Linguagem C/C++; • Plataforma Unix e Windows; • Controle das threads é feito pelo programador; • Evitar deadlocks; • Sincronização e controle das threads;
  • 8. Cilk • Grupo de Supercomputação do MIT; • Linguagem se baseia na linguagem C ANSI; • Versões para as plataformas GNU/Linux, MacOS X e Windows; • Cilk é encarregado de escalonar as tarefas; • Compartilhamento e/ou roubo de tarefas; • Paralelismo na medida certa, minimizando a quantidade de threads e maximizando a eficiência;
  • 9. TBB - Threads Building Blocks • Biblioteca para C++ desenvolvida pela Intel; • Processadores multicore; • Sistemas Windows, Mac OS e Linux; • Paralelização de programas em alto nível;
  • 10. OpenMP • Em 2005 versão para Fortran/C/C++; • Paralelizar algoritmos sequencias de modo facilitado; • Uma thread mestre que irá designar as tarefas para as outras threads; • Escalabilidade é limitada pela arquitetura de memória;
  • 11. HPF - High Performance Fortran • Extensão de Fortran 90; • Cada processo trabalha no segmento de dados em que é dono no mapa de memória; • Dados distribuídos para não haver dependências entre eles; • Portabilidade para diferentes arquiteturas;
  • 12. Cuda - nVidia • Disponível nas linhas GeForce (a partir da Série 8), Quadro e a linha Tesla; • GPGPU (General-purpose computing on Graphics Processing Units). • Memória compartilhada de acesso rápido; • Leitura de endereços arbitrários na memória; • Funções recursivas não são suportadas; • Precisão do tipo Double não segue o padrão IEEE 754;
  • 13. Resultados Multiplicação de matriz de 1024x1024 Java seq = 18,00543 Java paralelo = 9,096539718 C Seq/fast = 0,636755667 C OpenMP/fast = 0,258097
  • 16. Conclusões • Pragmas de compilador é mais simples, quando o código é facilmente paralelizável; • Autoparalelização; • CUDA em fase de testes, logo HPF e OpenMP continuam sendo as principais alternativas; • TBB surgiu com enfoque em multicore; • A escolha da ferramenta vai depender da aplicação em questão.