Ferramentas de Programação Paralela para Arquiteturas Multicore
-
Upload
helton-ritter -
Category
Technology
-
view
1.723 -
download
0
description
Transcript of Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
Acadêmicos: Helton Eduardo RitterMaycon 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,636755667C 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