modelo bsp - inf.puc-rio.brnoemi/pcp-10/aula8-bsp.pdf · motivação • modelo simples para...
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/3.jpg)
“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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042203/5ea4d4c26ecb6e0cd243d71e/html5/thumbnails/24.jpg)
BSP - referências
• R. Bisseling. Parallel Scientific Computation. Oxford University Press, 2004. • capítulo 1 disponível online