XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015

Documentos relacionados
Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

OpenMP: Variáveis de Ambiente

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

UM ESTUDO COMPARATIVO DE DESEMPENHO UTILIZANDO PROGRAMAÇÃO SEQUENCIAL VS PARALELA APLICADO EM ALGORITMOS GENÉTICOS 1

Paralelismo em Computadores com Tecnologia Multicore

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Avaliação do Desempenho e Consumo Energético de Diferentes Interfaces de Programação Paralela em Sistemas Embarcados e de Propósito Geral

Introdução OpenMP. Nielsen Castelo Damasceno

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Intel Thread Building Blocks (TBB)

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

Proposta de Melhoria de uma Implementação Paralela para GPUs Usando CUDA - Estudo de Caso em Modelo Atmosférico

Avaliação do Tempo de Processamento e Comunicação via Rotinas MPI Assíncronas no Modelo OLAM

Programação Paralela e Distribuída

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

Análise Comparativa de MPI e OpenMP em Implementações de Transposição de Matrizes para Arquitetura com Memória Compartilhada

Escalonamento Através de Perfilamento em Sistemas Multi-core. Emilio de Camargo Francesquini

Multiprogramação leve em arquiteturas multi-core

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

Introdução aos Conceitos de Computação Paralela através da estimativa de Pi

PROPOSTA DE UMA ESTRATÉGIA DE PROGRAMAÇÃO EXPLÍCITA COM ANOTAÇÃO EM CÓDIGO EM BUSCA DE EFICIÊNCIA ENERGÉTICA 1

CAP-387(2016) Tópicos Especiais em

Sistemas Distribuídos e Paralelos

Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models

Programação em Paralelo OpenMP

OpenMP: Uma Introdução

Processamento Paralelo Utilizando GPU

Parallel Computing Paradigms

Infraestrutura de Hardware. Processamento Paralelo Multicores, Multi-Threading e GPUs

ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1

Suporte à Execução Eficiente de Aplicações em Plataformas com Paralelismo Multi-Nível

ALGORITMO PARALELO DE PROCESSAMENTO DE IMAGENS DIGITAIS COM HYPER-THREADING E MULTICORE COM PTHREAD

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Introdução ao OpenMP

Broadband Engine Cell Processor. Arquitetura e Organização de Processadores (CPM237) Rodrigo Bittencourt Motta

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

Distâncias entre vértces em um grafo. Paralelização. André de Freitas Smaira

Análise do desempenho da transformada de Hough paralela em arquiteturas de memória compartilhada

SSC0611 Arquitetura de Computadores

SSC510 Arquitetura de Computadores. 6ª aula

Introdução à OpenMP (Dia 1) Prof. Guido Araujo

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Exemplo Amdahl. O speedup total é dado por:

Carlos Eduardo Batista Centro de Informática - UFPB

Programação Concorrente e Paralela. Noemi Rodriguez

Celso L. Mendes LAC /INPE

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino

The future is parallel but it may not be easy

BALANCEAMENTO DE CARGA EM SISTEMAS MULTIPROCESSADORES UTILIZANDO O MODELO DE PROGRAMAÇÃO CHARM++ 1

Computação científica utilizando placas gráficas

Programação Híbrida: MPI e OpenMP

ANÁLISE DE DESEMPENHO COM A PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PERFEITOS 1

Atol Fortin, Bruno da Hora, Lucas Piva, Marcela Ortega, Natan Lima, Pedro Raphael, Ricardo Sider, Rogério Papetti. 28 de novembro de 2008

Construtores de Sicronização em OpenMP

Análise de Desempenho de Aplicações Paralelas do Padrão Pipeline em Processadores com Múltiplos Núcleos

Programação Paralela e Distribuída

Análise de Características Comportamentais de Aplicações OpenMP para Redução do Consumo de Energia

Aluno do curso de Ciência da Computação da Unijuí e Bolsista PIBIC/UNIJUÍ, 3. Professor Orientador do Departamento de Ciências Exatas e Engenharias 4

PROGRAMAÇÃO PARALELA EM CPU E GPU: UMA AVALIAÇÃO DO DESEMPENHO DAS APIS OPENMP, CUDA, OPENCL E OPENACC

Sistemas Distribuídos

ARQUITETURA DE COMPUTADORES

Computadores e Programação (DCC/UFRJ)

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

Arquitetura de Computadores. Processamento Paralelo

Programação Concorrente e Paralela

IMPLEMENTAÇÃO PARALELA DE UMA ARQUITETURA DE REDE NEURAL ARTIFICIAL DISTRIBUÍDA E REALIMENTADA 1

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída)

Avaliação de Desempenho

CAP-387(2016) Tópicos Especiais em

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Programação Concorrente e Paralela. Noemi Rodriguez

SSC PROGRAMAÇÃO CONCORRENTE. Aula 06 Modelos de Programação Prof. Jó Ueyama e Julio Cezar Estrella

Processos Concorrentes

Computação Paralela (CUDA)

Parallel Computing Paradigms

Modelos para Concorrência

Disciplina de Arquitetura de Computadores

Definindo melhor alguns conceitos

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

CAP-387(2016) Tópicos Especiais em

What is? Eduardo Viola Nicola Disciplina de IPPD

Memory-level and Thread-level Parallelism Aware GPU Architecture Performance Analytical Model

É uma forma eficiente do processamento da informação com ênfase na exploração de eventos concorrentes no processo computacional.

Arquiteturas paralelas Parte 1

Organização de Computadores 2005/2006 Processamento Paralelo

Paralelização do Phyml 3.0, Programa para Reconstrução de Árvores Filogenéticas, usando OpenMP

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

IMPLEMENTAÇÕES PARALELAS PARA FECHO TRANSITIVO

SIST706 Sistemas Distribuídos

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Transcrição:

XV ESCOLA REGIONAL DE ALTO DESEMPENHO ERAD 2015 Impacto das Interfaces de Programação Paralela e do Grau de Paralelismo no Consumo Energético de uma Aplicação Thayson R. Karlinski, Arthur F. Lorenzon, Antonio C. Beck, Márcia C. Cera.

ROTEIRO Motivação e Objetivo Interfaces de Programação Paralela (IPP): OpenMP, Pthreads, MPI Aplicação Alvo: Cálculo do PI Metodologia de Trabalho Resultados Conclusão e Trabalhos futuros Referências 1

Motivação Processamento Paralelo Aumento de Desempenho Impacto das Interfaces de Programação Paralela Observando Ambiente de Memória Compartilhada Acessos Concorrentes a memória Consumo de Energia Maior número de Threads, Menor Tempo Acessar a Memória Interfere? 2

OBJETIVO Avaliar o desempenho e o consumo energético da paralelização Variando IPP e Distribuições de Cargas de Trabalho Variando número de threads/processos Aplicação CPU-Bound 3

INTERFACES DE PROGRAMAÇÃO PARALELA (IPP) Interface de programação paralela (IPP) OpenMP Posix threads Message Passing Interface (MPI) IPP: Cria-se: Baseado Em: Controle de Acessos a Dados OpenMP Threads Diretivas Busy-Waiting Pthreads MPI - 1 Threads Processos Funções de Biblioteca Funções de Biblioteca Mutex Send/Receive 4

APLICAÇÃO: CÁLCULO DO PI Algoritmo CPU-Bound Método de Leibnetz : Cód. Sequencial 5

Ferramenta de Coleta de Eventos PAPI (Perfomance Application Programming Interface) Desenvolvida no Innovative Computing Laboratory (ICL) Universidade do Tenessi Estrutura de contadores de Hardware Eventos utilizados: PAPI_TOT_INS PAPI_CYC_INS PAPI_LD_INS PAPI_SR_INS PAPI_L1_ICM PAPI_L1_DCM Total de Instruções Executadas Total de Ciclos de Clock Total de Load a cache L1 Total de Store a cache L1 Total de Misses de Instruções a cache L1 Total de Misses de Dados a cache L1 6

Estimativa do consumo energético E total E instrução E memória E estática Einstrução = Consumo total das instruções executadas Ememória = Consumo de energia de acessos a memória Eestática = Energia estática do processador e do sistema de memória 7

AMBIENTE E METODOLOGIA DE EXECUÇÃO Distribuição de cargas de trabalho Static Guided Nº Iterações / Nº Threads Total de execuções: 16 vezes Eliminou-se os 3 melhores e 3 piores 1 Multiprocessadores 2 X Intel(R) Xeon(R) CPU E5-2650 2.80 GHz, 8 cores com Tecnologia Hyper-Threading. Número de Threads 2 4 8 16 32 64 8

Tempo de Execução (segundos) Resultados: Tempo de Execução Maior número de threads, menor tempo de execução Distribuição da carga de trabalho entre as threads 90 80 70 Sequencial Omp-S Omp-G Pthr MPI-1 60 50 40 30 20 10 0 1 2 4 8 16 32 64 Número de Threads 9

Tempo de Execução (s) Resultados: Speedup até 16 threads, speedup similar ou próximo do ideal Tipo de aplicação não possui troca de dados 90 80 70 Sequencial Omp-S Omp-G Pthr MPI-1 60 50 2 40 30 20 10 4 8 15 22 44 0 1 2 4 8 16 32 64 Número de Threads 10

Instruções Executadas (Bilhões) Resultados: Nº de Instruções Executadas Cada IPP tem sua particularidade de execução OpenMP teve 2% menor número de instruções, devido otimização da flag -fopenmp 200 180 160 140 120 100 80 60 40 20 0 Sequencial Omp-S Omp-G Pthr MPI-1 1 2 4 8 16 32 64 Número de Threads 11

Acessos a Memória (Bilhões) Resultados: Acessos a cache L1 Gerenciamento de threads/processos Tipo da aplicação 200 180 160 140 120 100 80 60 40 20 0 Sequencial Omp-S Omp-G Pthr MPI-1 1 2 4 8 16 32 64 Número de Threads 12

Omp-S Omp-G Pthr MPI-1 Omp-S Omp-G Pthr MPI-1 Omp-S Omp-G Pthr MPI-1 Omp-S Omp-G Pthr MPI-1 Omp-S Omp-G Pthr MPI-1 Omp-S Omp-G Pthr MPI-1 Misses a Cache L1 Resultados: Misses a cache L1 OpenMP faz espera ativa (Busy-Waiting) MPI_Init desencadeia maior taxa de misses 1000000000 100000000 10000000 1000000 100000 10000 1000 100 10 1 Instruções Dados 1 2 4 8 16 32 64 Número de Threads/IPP 13

Consumo de Energia (Joules) Resultados: Consumo de Energia Paralelização obteve menor consumo de energia. Melhor Resultado = Pthreads (59%) 1600 1400 1200 1000 800 600 400 200 0 Sequencial Omp-S Omp-G Pthr MPI-1 1 2 4 8 16 32 64 Número de Threads 14

Consumo de Energia (Joules) Resultados: Consumo de Energia Paralelização obteve menor consumo de energia. Melhor Resultado = Pthreads (59%) 1600 1400 1200 1000 800 600 400 200 0 Sequencial Omp-S Omp-G Pthr MPI-1 59 % 1 2 4 8 16 32 64 Número de Threads 14

Conclusão A utilização de IPPs melhorou tempo de execução da aplicação Com a utilização de 16 threads, utilizando Pthreads, obteve-se um consumo de energia 59% menor em relação ao sequencial Utilizando 32 e 64 threads o tempo de execução foi menor, porem o consumo de energia aumentou. Misses da cache L1 aumentam de acordo com o número de threads OpenMP e MPI tiveram um maior número de misses de dados em relação ao sequencial 15

Trabalhos Futuros Executar outros benchmarks do tipo CPU-Bound e IO-Bound Expandir o escopo das IPP, utilizando MPI-2 Expandir o escopo de acessos a memória e misses com a coleta de dados da cache L2 e L3. 16

Referências Intel (2014). IntelR xeonr processor (e5-product family) datasheet volume 2. http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-1600-2600-vol- 2-datasheet.html. The Innovative Computing Laboratory (2014). Papi - overview. http://icl.cs.utk.edu/papi/overview/index.html. Karlinski, T. R., Lorenzon, A., F., A. C. B., and Cera, M. (2014). Análise de desempenho e consumo energético de uma aplicação openmp. In Workshop de Iniciação Científica do WSCAD 2014, São Jóse dos Campo/SP. Lorenzon, A., Cera, M., and Schneider Beck, A. (2014). Performance and energy evaluation of dif. multi-threading interf. in embedded and general purpose syst. Journal of Signal Processing Systems. Korthikanti, V. A. and Agha, G. (2010). Towards optimizing energy costs of algorithms for shared memory architectures. In auf der Heide, F. M. and Phillips, C. A., editors,spaa, ACM. 17

Agradecimentos Universidade Federal do Pampa Campus Alegrete. Apoio no desenvolvimento das atividades de pesquisa. Apoio Infraestrutura do Campus Alegrete Grupo LEA. Bolsa de Iniciação a Pesquisa - Edital PBDA/UNIPAMPA 2014. 18

Análise de Desempenho e Consumo Energético de uma Aplicação OpenMP Muito Obrigado! Perguntas Thayson R. Karlinski, Arthur F. Lorenzon, Antonio C. Beck, Márcia C. Cera. thaysonr.karlinski@gmail.com, aflorenzon@inf.ufrgs.br, caco@inf.ufrgs.br, marciacera@unipampa.edu.br