modelo bsp - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para...

24
Modelo BSP Bulk Synchronous Parallel baseado no material Rob Bisseling: Parallel Scientific Computation

Upload: others

Post on 24-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

Modelo BSP Bulk Synchronous Parallel

baseado no material Rob Bisseling:

Parallel Scientific Computation

Page 2: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

motivação

•  modelo simples para programas paralelos

•  implementável de forma eficiente

•  facilidades para análise de desempenho

•  independência de arquitetura •  em oposição a outros modelos como PRAM

•  base para API padrão •  BSPlib

Page 3: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

“máquina” BSP

•  processadores podem escrever em todas as memórias! •  tempo de acesso a qualquer memória remota é igual

Page 4: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

algoritmo BSP

Page 5: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

algoritmo BSP

•  sequência de superpassos

•  passos •  computação •  comunicação

•  sincronização global depois de cada passo •  bulk synchronization

Page 6: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

custo BSP

•  custo de comunicação em um passo •  h: máximo de palavras recebidas ou enviadas por algum

processador no superpasso

•  custo: hg + l •  g: custo de transmissão por palavra (em flop) •  l: overhead fixo de sincronização e comunicação (em flop)

•  supõe sobreposição de envio e recebimento

Page 7: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

custo BSP

•  custo de computação: w + l •  w: quantidade de trabalho (em flop) •  l: overhead de sincronização (em flop)

•  custo total: a + bg + cl

•  parâmetros: p, r, g e l •  p: número de processadores •  r: taxa de execução de trabalho: flop/s •  g: taxa de transmissão •  l: overhead

Page 8: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

exemplo de custo

p =5, g = 2.5, l=20

custo(passo1): 60 + l = 80 flops custo(passo2): (hs = 4(msgs).5(pals)) = 20) 20g + l = 70 flops ...

Page 9: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

ex: produto interno

•  X e Y vetores (matrizes nx1)

•  produto interno: XT.Y

•  cada processador calcula uma parte do pi •  todos precisam do resultado

Page 10: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

algoritmo

comunicação

redundância

Page 11: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

custo

2n/p + l

(p-1)g + l

p + l

2n/p + p + (p-1)g +3l!

Page 12: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

algoritmo produto interno

Page 13: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

outra alternativa

•  envio de resultados parciais a um mestre

•  mestre calcula soma e retorna resultados a todos

•  cálculo de custo: •  mais uma fase de comunicação •  na fase em que mestre soma resultados, demais

processadores ficam ociosos •  custo total, no modelo BSP, só aumenta

reflete maior tempo entre início e fim de execução mas e se pensarmos em qto processamento total estamos

gastando…?

Page 14: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

biblioteca BSP

•  padrão de interface de programação •  como MPI

•  diversas implementações •  Oxford •  Universidade de Paderborn

•  para diversas plataformas

•  outras interfaces •  one-sided communication em MPIv2

Page 15: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

BSPlib - modelo de execução

Page 16: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

BSPlib

•  processador 0 tem papel fixo e especial •  só ele pode executar operações de entrada •  só ele executa partes sequenciais

•  operações •  bsp_init, bsp_begin, bsp_sync, bsp_end, bsp_pid, bsp_time,

bsp_nprocs, ... •  FORTRAN, C, C++

•  comunicação executada como parte de bsp_sync

Page 17: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

put: acesso a mem remota

•  processos registram áreas para uso pelos outros •  operações são completadas ao final da sincronização •  condições de corrida

Page 18: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

acesso remoto

•  operação bsp_push_reg(endereco, numerobytes)

deve ser executada em todos os processos

•  chamada de linking entre os processos

•  amarração fica valendo a partir do início do superpasso seguinte

Page 19: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

ex: produto interno

Page 20: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

ex: produto interno

...

Page 21: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

bspinprod - cont.

Page 22: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

ex: produto interno

Page 23: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

one-sided communication - MPI

•  versão 2 do MPI (implementada em mpich2) dá suporte a modelo BSP, com comunicação unilateral: •  int MPI_Win_create (void *base, …, MPI_Win *win)

»  síncrona (coletiva) •  int MPI_Put (void *origin_addr, int origin_count, MPI_Datatype

origin_datatype, int target_rank, …, MPI_Win win) »  assíncrona

•  int MPI_Get (void *origin_addr, …, MPI_Win win) »  assíncrona

•  int MPI_Win_fence (int assert, MPI_Win win)

Page 24: Modelo BSP - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para programas paralelos • implementável de forma eficiente • facilidades para análise

BSP - referências

•  R. Bisseling. Parallel Scientific Computation. Oxford University Press, 2004. •  capítulo 1 disponível online