PAARTech
Multiprocessamento
em tempo real
Paralelismo com Haskell
Paralelismo é aumentar a
velocidade de um programa
usando múltiplos
processadores.
Fonte: http://www.haskell.org/haskellwiki/Parallelism
Paralelismo com mais rigor
Conjunto de técnicas de
programação e de hardware
permitindo a execução
simultânea de instruções
independentes em
processadores diferentes.
– Guy Moebs.
Fonte: Laboratório de Matemática Jean Leray.
Universidade de Nantes
Paralelismo & concorrência
Há duas maneiras de se obter
paralelismo em Haskell:
● Paralelismo puro: pode ser usado
para acelerar partes do programa que
não lidam com E/S;
Paralelismo & concorrência
Há duas maneiras de se obter
paralelismo em Haskell:
● Paralelismo puro: pode ser usado
para acelerar partes do programa que
não lidam com E/S;
● Concorrência: que pode ser usada
para paralelizar operações de E/S.
Vantagens do paralelismo puro
Garantidamente determinístico
Não há condições de corrida
nem deadlocks
Regra de ouro
Sempre que puder use
paralelismo puro; quando não
puder: concorrência.
Hardware Description Language
VHDL
Verilog
HDL Funcional
Lava
Bluespec
Haskell
HDL Funcional
NÃO
E
OU
Meio-somador
Meio-somador em VHDL
entity halfAdder is
port (a,b : in bit; sum,carry : out bit);
end halfAdder;
architecture ha_beh of halfAdder is
begin
sum <= a xor b;
c_out <= a and b;
end ha_beh;
Meio-somador
halfAdder (a, b) = (sum, carry)
where
sum = xor2 (a, b)
carry = and2 (a, b)
Paralelismo em C: Cilk
●
Professor Charles E. Leiserson no MIT;
●
Provê à linguagem C programação
multithread
●
Última versão oficial pelo MIT: 5.4.6
●
Intel se junta aos desenvolvedores para
avançar nesta tecnologia: Cilk Plus
Paralelismo em C: Cilk
Extensão é provida por cinco palavras-chave:
●
cilk;
●
spawn;
●
sync;
●
inlet;
●
abort;
Exemplo em Cilk Plus
Unified Parallel C – UPC
●
Berkley/LBNL
●
2.18.2 em 5 de maio de 2014
●
Global Address Space – GAS
●
Ferramentas de análise (UPC Thrille), benchmarking...
●
Suporta grande gama de SMPs, clusters e MPPs : 
– x86, Itanium, Opteron, Alpha, PPC, MIPS, ARM, PA-RISC, SPARC, X1,
SX-6, Cray XT and XE, IBM Blue Gene...
– Linux, {Free,Net,Open}BSD, Tru64, AIX, IRIX, HPUX, Solaris, MS
Windows, Mac OS X, Unicos, SuperUX...
– Pthreads, Myrinet, Quadrics Elan 3/4, InfiniBand, IBM LAPI, Dolphin
SCI, MPI, Ethernet, Cray X1 / SGI Altix shmem, Cray XT Portals, Cray
XE Gemini (beta), IBM BG/P DCMF

Multiprocessamento em tempo real

  • 1.
  • 2.
    Paralelismo com Haskell Paralelismoé aumentar a velocidade de um programa usando múltiplos processadores. Fonte: http://www.haskell.org/haskellwiki/Parallelism
  • 3.
    Paralelismo com maisrigor Conjunto de técnicas de programação e de hardware permitindo a execução simultânea de instruções independentes em processadores diferentes. – Guy Moebs. Fonte: Laboratório de Matemática Jean Leray. Universidade de Nantes
  • 4.
    Paralelismo & concorrência Háduas maneiras de se obter paralelismo em Haskell: ● Paralelismo puro: pode ser usado para acelerar partes do programa que não lidam com E/S;
  • 5.
    Paralelismo & concorrência Háduas maneiras de se obter paralelismo em Haskell: ● Paralelismo puro: pode ser usado para acelerar partes do programa que não lidam com E/S; ● Concorrência: que pode ser usada para paralelizar operações de E/S.
  • 6.
    Vantagens do paralelismopuro Garantidamente determinístico Não há condições de corrida nem deadlocks
  • 7.
    Regra de ouro Sempreque puder use paralelismo puro; quando não puder: concorrência.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Meio-somador em VHDL entityhalfAdder is port (a,b : in bit; sum,carry : out bit); end halfAdder; architecture ha_beh of halfAdder is begin sum <= a xor b; c_out <= a and b; end ha_beh;
  • 13.
    Meio-somador halfAdder (a, b)= (sum, carry) where sum = xor2 (a, b) carry = and2 (a, b)
  • 14.
    Paralelismo em C:Cilk ● Professor Charles E. Leiserson no MIT; ● Provê à linguagem C programação multithread ● Última versão oficial pelo MIT: 5.4.6 ● Intel se junta aos desenvolvedores para avançar nesta tecnologia: Cilk Plus
  • 15.
    Paralelismo em C:Cilk Extensão é provida por cinco palavras-chave: ● cilk; ● spawn; ● sync; ● inlet; ● abort;
  • 16.
  • 17.
    Unified Parallel C– UPC ● Berkley/LBNL ● 2.18.2 em 5 de maio de 2014 ● Global Address Space – GAS ● Ferramentas de análise (UPC Thrille), benchmarking... ● Suporta grande gama de SMPs, clusters e MPPs :  – x86, Itanium, Opteron, Alpha, PPC, MIPS, ARM, PA-RISC, SPARC, X1, SX-6, Cray XT and XE, IBM Blue Gene... – Linux, {Free,Net,Open}BSD, Tru64, AIX, IRIX, HPUX, Solaris, MS Windows, Mac OS X, Unicos, SuperUX... – Pthreads, Myrinet, Quadrics Elan 3/4, InfiniBand, IBM LAPI, Dolphin SCI, MPI, Ethernet, Cray X1 / SGI Altix shmem, Cray XT Portals, Cray XE Gemini (beta), IBM BG/P DCMF