francisco heron de carvalho junior, dr. escola politécnica, universidade de pernambuco...

65
Francisco Heron de Carvalho Francisco Heron de Carvalho Junior, Dr. Junior, Dr. Escola Politécnica, Universidade de Pernambuco Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas Distribuídas Nível sobre Arquiteturas Distribuídas

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

Francisco Heron de Carvalho Junior, Dr.Francisco Heron de Carvalho Junior, Dr.

Escola Politécnica, Universidade de PernambucoEscola Politécnica, Universidade de Pernambuco

Programação Paralela Eficiente e de Alto Nível Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas Distribuídassobre Arquiteturas Distribuídas

Page 2: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

2

Computação de Alto Desempenho - Computação de Alto Desempenho - HardwareHardware Estado-da-ArteEstado-da-Arte

• Consolidação de arquiteturas Consolidação de arquiteturas distribuídasdistribuídas::

– MPP’s (MPP’s (Massive Parallel ProcessorsMassive Parallel Processors););

– Constelações;Constelações;

– ClustersClusters;;

– GridsGrids;;

• Evolução do Evolução do pico de desempenhopico de desempenho das arquiteturas paralelas das arquiteturas paralelas ainda obedece a ainda obedece a Lei de Moore !Lei de Moore !

– Duplicação a cada período de 18 meses;Duplicação a cada período de 18 meses;

– Arquiteturas Arquiteturas sequenciaissequenciais atingiram seu ponto de saturação; atingiram seu ponto de saturação;

• Top 500 (Top 500 (www.top500.orgwww.top500.org).).

Page 3: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

3

0

10

20

30

40

50

60

70

80

90

100

Single

Vector

SMP

Constellations

MPP

Clusters

Page 4: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

4

Page 5: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

5

Rank SiteCountry/Year

Computer / ProcessorsManufacturer

Rmax

Rpeak

1 Earth Simulator CenterJapan/2002

Earth-Simulator / 5120NEC

3586040960

2 Lawrence Livermore National LaboratoryUnited States/2004

ThunderIntel Itanium2 Tiger4 1.4GHz - Quadrics / 4096California Digital Corporation

1994022938

3 Los Alamos National LaboratoryUnited States/2002

ASCI Q - AlphaServer SC45, 1.25 GHz / 8192HP

1388020480

4 IBM - Thomas Watson Research CenterUnited States/2004

BlueGene/L DD1 Prototype (0.5GHz PowerPC 440 w/Custom) / 8192IBM/ LLNL

1168016384

5 NCSAUnited States/2003

TungstenPowerEdge 1750, P4 Xeon 3.06 GHz, Myrinet / 2500Dell

981915300

6 ECMWFUnited Kingdom/2004

eServer pSeries 690 (1.9 GHz Power4+) / 2112IBM

895516051

7 Institute of Physical and Chemical Res. (RIKEN)

Japan/2004

RIKEN Super Combined Cluster / 2048Fujitsu

872812534

8 IBM - Thomas Watson Research CenterUnited States/2004

BlueGene/L DD2 Prototype (0.7 GHz PowerPC 440) / 4096IBM/ LLNL

865511469

9 Pacific Northwest National LaboratoryUnited States/2003

Mpp2Integrity rx2600 Itanium2 1.5 GHz, Quadrics / 1936HP

863311616

10 Shanghai Supercomputer CenterChina/2004

Dawning 4000A, Opteron 2.2 GHz, Myrinet / 2560Dawning

806111264

Page 6: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

6

Computação de Alto Desempenho - Computação de Alto Desempenho - HardwareHardware Iniciativas nos EUAIniciativas nos EUA

• ASCIASCI ( (Accelerated Strategy Computing IntiativeAccelerated Strategy Computing Intiative););

– Department of EnergyDepartment of Energy ( (DOEDOE), EUA;), EUA;

– SNL, LLNL, LANL;SNL, LLNL, LANL;

– Suporte omputacional a simulação de artefatos nucleares;Suporte omputacional a simulação de artefatos nucleares;

– 10 10 TeraflopsTeraflops em em 20012001 / 1 / 1 PetaflopsPetaflops em em 20102010;;

• Centros de Supercomputação da Centros de Supercomputação da NSFNSF::

– Cornell Theory Center (CTC);Cornell Theory Center (CTC);

– National Center for Atmonspheric Research (NCSA);National Center for Atmonspheric Research (NCSA);

– Pittsburgh Supercomputing Center (PSC);Pittsburgh Supercomputing Center (PSC);

• Extensible Terascale FacilityExtensible Terascale Facility (ETF), (ETF), 20022002::

– Grid computingGrid computing;;

– Cinco super-nósCinco super-nós: : National Center for Supercomputing ApplicationsNational Center for Supercomputing Applications ( (NCSANCSA), ), San Diego San Diego Supercomputing CenterSupercomputing Center ( (SDSCSDSC), ), Pittsburgh Supercomputing CenterPittsburgh Supercomputing Center, , Argonne National Argonne National LaboratoryLaboratory ( (ANLANL), e ), e California Institute of TechnologyCalifornia Institute of Technology;;

Page 7: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

7

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Antecedentes (Anos 80)Antecedentes (Anos 80)

• Ferramentas de Ferramentas de softwaresoftware (algoritmos e linguagens) não acompanham a (algoritmos e linguagens) não acompanham a

evolução do pico de desempenho do evolução do pico de desempenho do hardwarehardware;;

– Uso verdadeiramente Uso verdadeiramente escalescalávelável das arquiteturas limitada pelo das arquiteturas limitada pelo softwaresoftware;;

• ComoComo conciliar conciliar escalabilidadeescalabilidade com com portabilidadeportabilidade ? ?

• Center for Research in Parallel ComputationCenter for Research in Parallel Computation (CRPC) (CRPC)

– Iniciativa da Iniciativa da NSFNSF ( (National Science FoundationNational Science Foundation), 1989;), 1989;

– Coordenação de iniciativas do meio acadêmico; Coordenação de iniciativas do meio acadêmico;

– Tornar computação paralela Tornar computação paralela verdadeiramente utilizávelverdadeiramente utilizável;;

– O alvorecer de uma O alvorecer de uma ciência de fato para investigar computação paralelaciência de fato para investigar computação paralela ? ?

– Tornar públicas Tornar públicas ferramentasferramentas, , aplicaçõesaplicações e e algoritmosalgoritmos voltados ao voltados ao

processamento paralelo;processamento paralelo;

Page 8: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

8

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

• Década de 90Década de 90: modelos e linguagens portáveis e eficientes:: modelos e linguagens portáveis e eficientes:

– HPFHPF ( (High Performance FortranHigh Performance Fortran) e Fortran 90;) e Fortran 90;

– PVMPVM ( (Parallel Virtual MachineParallel Virtual Machine) ;) ;

– MPIMPI ( (Message Passing EnvironmentMessage Passing Environment););

– openMP openMP ((multiprocessadoresmultiprocessadores););

– Inúmeras Inúmeras bibliotecas científicasbibliotecas científicas de propósito específico de propósito específico

• ((LAPACKLAPACK, , ScaLAPACKScaLAPACK, , PETScPETSc, etc.), etc.)

• Eficiência Eficiência portabilidade portabilidade generalidade generalidade abstração; abstração;

– ModelosModelos e e linguagenslinguagens atuais não têm atuais não têm conciliadoconciliado tais propriedades; tais propriedades;

Page 9: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

9

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

• Aplicações de computação de alto desempenho tem crescido Aplicações de computação de alto desempenho tem crescido

em em escalaescala, , complexidadecomplexidade e variedade de potenciais usuários; e variedade de potenciais usuários;

– MotivoMotivo: advento de : advento de clustersclusters e e gridsgrids;;

• Não há suporte a múltiplas hierarquias de paralelismo:Não há suporte a múltiplas hierarquias de paralelismo:

– ConstelaçõesConstelações e e cclusterslusters de multiprocessadores de multiprocessadores são hoje comuns; são hoje comuns;

– Abordagem tradicional:Abordagem tradicional: MPI + openMP; MPI + openMP;

• Técnicas formaisTécnicas formais confiáveis e utilizáveis para confiáveis e utilizáveis para verificaçãoverificação e e

avaliaçãoavaliação de desempenho de programas paralelos ainda de desempenho de programas paralelos ainda

constituem um “sonho distante”. constituem um “sonho distante”.

Page 10: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

10

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

““(…) the continued drive for high- and higher-(…) the continued drive for high- and higher-performance systems (…) leads us to one simple performance systems (…) leads us to one simple

conclusion: conclusion: the future is parallelthe future is parallel (…)” (…)”

Parallel ArchitecturesParallel Architectures

M. J. Flynn & K. W. RuddM. J. Flynn & K. W. Rudd

ACM Computing Surveys, ACM Computing Surveys,

Vol.28(1), 1996Vol.28(1), 1996

Page 11: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

11

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

““(…) At a minimun, we recommend increased (…) At a minimun, we recommend increased investment in research in ultra-high-performance investment in research in ultra-high-performance hardware-software architectures including new hardware-software architectures including new

programming paradigms, user interfaces and specially programming paradigms, user interfaces and specially peta-scale distributed databases. (…)”peta-scale distributed databases. (…)”

What’s Next in High-Performance ComputingWhat’s Next in High-Performance Computing

Gordon Bell & Jim GrayGordon Bell & Jim Gray

Communications of the ACM, Communications of the ACM,

Vol.45(2), Fev. 2002Vol.45(2), Fev. 2002

Page 12: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

12

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

““(…) A persistent programming model for scalable, (…) A persistent programming model for scalable, paralell computers is absolutely essential if paralell computers is absolutely essential if

computational science and enginnering is to realize computational science and enginnering is to realize even a fraction of its remarkable promise (…)”even a fraction of its remarkable promise (…)”

Sourcebook of Parallel ComputingSourcebook of Parallel Computing

Jack Dongarra & Ian Foster Jack Dongarra & Ian Foster et alet al..

((Chapter 1, Section 1.2Chapter 1, Section 1.2))

Page 13: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

13

Computação de Alto Desempenho - Computação de Alto Desempenho - SoftwareSoftware Estado-da-ArteEstado-da-Arte

““(…) Why, in the face of these advances, is the science of (…) Why, in the face of these advances, is the science of parallel computation will interesting to study ? In 1989, many parallel computation will interesting to study ? In 1989, many

of us felt that we could develop a of us felt that we could develop a higher-level parallel higher-level parallel programming interfaceprogramming interface that would supplant the that would supplant the message-message-

passing paradigmspassing paradigms then being used. However, our expectation then being used. However, our expectation that explicit message passing would routinely be hidden from that explicit message passing would routinely be hidden from the developer have not been realized. Today, most developers the developer have not been realized. Today, most developers

must use explicit message passing, albeit via a more must use explicit message passing, albeit via a more sophisticated portable interface, to generate sophisticated portable interface, to generate efficient scalable efficient scalable parallel programsparallel programs. . This is but one example demonstrating This is but one example demonstrating

that the science of parallel computation is incomplete.that the science of parallel computation is incomplete. (…)” (…)”

Sourcebook of Parallel ComputingSourcebook of Parallel Computing

Jack Dongarra & Ian Foster Jack Dongarra & Ian Foster et alet al..

((Chapter 1, Section 1.3Chapter 1, Section 1.3))

Page 14: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

O Modelo #O Modelo #

Uma Proposta para Uma Proposta para Programação ParalelaProgramação Paralela sobre as Arquiteturas Contemporâneas de sobre as Arquiteturas Contemporâneas de

Computação de Alto DesempenhoComputação de Alto Desempenho

Page 15: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

15

AntecedentesAntecedentes

• Idéias de Idéias de Rafael D. LinsRafael D. Lins (final da década de 80); (final da década de 80);– Linguagens funcionais Linguagens funcionais paralelasparalelas;;– Hierarquia de processos;Hierarquia de processos;– Integração à Integração à ambienteambiente dede provaprova (redes de Petri); (redes de Petri);– PrototipaçãoPrototipação rápida e rápida e simulaçãosimulação de programas; de programas;– Incorporação de Incorporação de bibliotecasbibliotecas encapsuladasencapsuladas;;

• Haskell#:Haskell#:– Ricardo Massa Ferreira Lima:Ricardo Massa Ferreira Lima:

• Tese de doutorado, 2000;Tese de doutorado, 2000;

– Francisco Heron de Carvalho Junior:Francisco Heron de Carvalho Junior:• Dissertação de mestrado, 2000;Dissertação de mestrado, 2000;

Page 16: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

16

Programação Paralela DistribuídaProgramação Paralela Distribuída

• EEficiênciaficiência PPortabilidadeortabilidade GGeneralidadeeneralidade AAbstraçãobstração;;

• Abordagens mais usadas atualmente:Abordagens mais usadas atualmente:– Paralelismo implícito;Paralelismo implícito;

• HPF, Fortran 90 e GpH;HPF, Fortran 90 e GpH;

• EE PP GG AA;;

– Bibliotecas Bibliotecas explícitasexplícitas de passagem de mensagens; de passagem de mensagens;

• PVM e MPIPVM e MPI;;

• EE PP GG AA;;

– Bibliotecas científicas Bibliotecas científicas paralelizadasparalelizadas de propósito específico; de propósito específico;

• LAPACK, ScaLAPACK e PETSc;LAPACK, ScaLAPACK e PETSc;

• EE PP GG AA..

Page 17: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

17

O Modelo #O Modelo #

• Disciplinando a programação paralela por Disciplinando a programação paralela por passagem de mensagenspassagem de mensagens; ;

• EficiênciaEficiência: Explícito e estático, com traduç: Explícito e estático, com tradução trivial paraão trivial para MPIMPI;;

• Programação em dois níveis ortogonais:Programação em dois níveis ortogonais:

– Mundo das Mundo das funçõesfunções ( (computaçõescomputações););

– Mundo dos Mundo dos processosprocessos ( (coordenaçãocoordenação););

– Modelo de Modelo de coordenaçãocoordenação baseado em processos baseado em processos;;

• Nível de Nível de modularidademodularidade elevado: elevado:

– Suporte ao desenvolvimento de programas complexos e de Suporte ao desenvolvimento de programas complexos e de larga escalalarga escala;;

– Enfatiza programação orientada a Enfatiza programação orientada a componentescomponentes;;

• Requisitos Requisitos funcionaisfuncionais ou ou não-funcionaisnão-funcionais e e encapsuladasencapsuladas ou ou entrelaçadasentrelaçadas;;

• Programação orientada a Programação orientada a aspectosaspectos (AOP) e (AOP) e hyperspaceshyperspaces;;

• Reuso de componentes;Reuso de componentes;continua

Page 18: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

18

• Nível de Nível de abstraçãoabstração potencialmente elevado: potencialmente elevado:

– Encapsulamento de Encapsulamento de bibliotecas científicasbibliotecas científicas;;

– EsqueletosEsqueletos topológicos parciais topológicos parciais;;

• Tradução de programas # para Tradução de programas # para Redes de PetriRedes de Petri

– Informações Informações necessáriasnecessárias e e suficientessuficientes em em nível de coordenaçãonível de coordenação;;

– Verificação/análise de propriedades (INA/PEP); Verificação/análise de propriedades (INA/PEP);

– Avaliação de desempenho (TimeNET);Avaliação de desempenho (TimeNET);

• Suporte a Suporte a múltiplasmúltiplas hierarquias de paralelismo; hierarquias de paralelismo;

• HaskellHaskell##

– Computações descritas usando linguagem Computações descritas usando linguagem HaskellHaskell (mundo das funções); (mundo das funções);

– Ortogonalidade Ortogonalidade sintáticasintática entre meios de entre meios de coordenaçãocoordenação e e computaçãocomputação;;

– Tratamento formal extensível ao meio de computação;Tratamento formal extensível ao meio de computação;

• Visual # Tool (VHT)Visual # Tool (VHT): Ambiente Integrado de programação;: Ambiente Integrado de programação;

O Modelo #O Modelo #

Page 19: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

19

O Modelo # de Programação ParalelaO Modelo # de Programação Paralela

E

P G A

Modelo #=

Passagem de Mensagens+

Encapsulamento de Biblotecas Científicas+

Programação Orientada a Esqueletos

Page 20: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

20

O Modelo #O Modelo #

• Hierarquia de ProcessosHierarquia de Processos::– Programação em dois níveis hierárquicos Programação em dois níveis hierárquicos ortogonaisortogonais;;

– Modelo de Modelo de coodenaçãocoodenação orientado a processos; orientado a processos;

Nível de Coordenação

Nível de Computação

Interface via lazy streams

(“não invasiva”)

Linguagem Sequencial (Haskell)

Linguagem de Configuração #

Page 21: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

21

Conceito Primitivo:Conceito Primitivo: Componentes Componentes

• Descrevem Descrevem requisitosrequisitos ( (concernsconcerns):):– Funcionais/Funcionais/não-funcionaisnão-funcionais, encapsuladas/, encapsuladas/entrelaçadasentrelaçadas;;

• Podem ser classificados em:Podem ser classificados em:– SimplesSimples: Computações : Computações sequenciais;sequenciais;

• Programados em uma linguagem Programados em uma linguagem host host (Haskell, no caso de Haskell#)(Haskell, no caso de Haskell#) ;;

• Conjunto de componentes simples = Conjunto de componentes simples = Meio de computaçãoMeio de computação;;

– CompostosCompostos: Computações : Computações paralelasparalelas;;• Programados na linguagem #, pela composição de outros componentes;Programados na linguagem #, pela composição de outros componentes;

• Conjunto de componentes compostos = Conjunto de componentes compostos = Meio de coordenaçãoMeio de coordenação;;

#

Argumentos Pontos de Retorno

Page 22: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

22

Programa # = Composição de ComponentesPrograma # = Composição de Componentes

#

#

#

#

Page 23: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

23

Programa # = Composição Programa # = Composição HierárquicaHierárquicade Componentesde Componentes

Nível de Coordenação

#

#

# #

#

Nível de Computação

Componente Principal (funcionalidade da

aplicação)

Aninhamento / Sobreposiçãode Componentes

Page 24: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

24

Nível de Coordenação

Capturando a Essência da Programação Paralela

Distribuída(passagem de mensagens)

A Linguagem # A Linguagem # Programando em Programando em Nível de CoordenaçãoNível de Coordenação

Page 25: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

25

Processos interagem por troca explícita de mensagens

recv a 1

x:=x+1

0

1

3

2

4

send a 0

send buf 2

print a

Configurando Componentes CompostosConfigurando Componentes CompostosProgramação #Programação #

Page 26: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

26

Configurando Componentes CompostosConfigurando Componentes Compostos Unidades e InterfacesUnidades e Interfaces

• UnidadesUnidades::

– Entidades que executam tarefas individuais;Entidades que executam tarefas individuais;

– Instanciadas a partir de Instanciadas a partir de interfacesinterfaces;;

• InterfacesInterfaces descrevem como descrevem como unidadesunidades comportam-se no comportam-se no meio de coordenaçãomeio de coordenação;;

– TarefasTarefas são descritas por componentes atribuídos a unidade ( são descritas por componentes atribuídos a unidade (assignassign););

• Classes de InterfaceClasses de Interface

– Classe de unidades que compartilham Classe de unidades que compartilham comportamento análogocomportamento análogo;;

– Analogia: Analogia: Classes de interfacesClasses de interfaces estão para estão para unidadesunidades, assim como:, assim como:

• TiposTipos de dadosde dados estão para estão para variáveisvariáveis, em programas;, em programas;

• ClassesClasses estão para estão para objetosobjetos em linguagens orientadas a objetos; em linguagens orientadas a objetos;

• Componentes compostosComponentes compostos são redes de são redes de unidadesunidades, as quais interagem por , as quais interagem por meio de meio de canais de comunicaçãocanais de comunicação que conectam suas que conectam suas interfacesinterfaces;;

Page 27: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

27

Configurando Componentes CompostosConfigurando Componentes CompostosProgramação #Programação #

clusters processos

unidadevirtual

bind

bind

bind

connect

connect

connect

connect

connect

unit

unit

unit

unit

unit

assign

assign

assign

#

#

assign

Page 28: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

28

InterfacesInterfaces

• Uma Uma interfaceinterface é descrita por: é descrita por:– Uma coleção de Uma coleção de portasportas ( (entradaentrada ou ou saídasaída););

– Uma Uma expressão expressão comportamentalcomportamental::• Descreve Descreve ordens válidasordens válidas para para ativação das portasativação das portas;;

• Expressões regulares controladas por semáforos;Expressões regulares controladas por semáforos;

• Equivalência expressiva com Equivalência expressiva com redes de Petri rotuladas terminaisredes de Petri rotuladas terminais;;

… …

Portas de Entrada

Portas de Saída

Page 29: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

29

InterfacesInterfacesExpressão ComportamentalExpressão Comportamental

• Ações primitivas:Ações primitivas:– pid pid !! :: ativação de ativação de portaporta de saída; de saída;

– pidpid ?? : : ativação de ativação de portaporta de entrada; de entrada;

– signalsignal ss :: incremento de incremento de semáforosemáforo

– waitwait ss :: decremento de decremento de semáforosemáforo

• Combinadores de ações:Combinadores de ações:– seqseq aa11 a a22 …a …ann : : sequência;sequência;

– parpar aa11 a a22 …a …ann :: concorrência; concorrência;

– altalt aa11 a a22 …a …ann : : alternativa (“não-determinístico”);alternativa (“não-determinístico”);

– ifif <<??> > thenthen a a11 elseelse a a22: : escolha baseada em condição <?>;escolha baseada em condição <?>;

– repeatrepeat aa :: repetição; repetição;• until until <?><?>: : condição de terminação (finalização de condição de terminação (finalização de streamsstreams););

• counter : counter : número de repetições pré-fixadonúmero de repetições pré-fixado;;

interface IMerge where ports: IPipe i1 -> o # IPipe i2 -> o protocol: repeat seq {alt {i1?;i2?}; o!} until <i1 & i2 & o>

Page 30: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

30

Como Configurar Unidades ?Como Configurar Unidades ?

merge

Group ofPorts

IndividualPort

AccumulateListsIMergei2

i1 o

AccumulateLists

interface Imerge where: ports: IPipe i1 -> o # IPipe i2 -> o protocol: repeat seq {alt {i1?;i2?}; o!} until <i1 & i2 & o>

assign AccumulateLists to mergingunit merge # IMerge

Page 31: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

31

Funções de LigaçãoFunções de Ligação

g f

Função de Ligação

+

Page 32: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

32

Agrupamentos Agrupamentos anyanyFunção de LigaçãoFunção de Ligação

f ! +

g?+ …

Page 33: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

33

f!

!

!

Agrupamentos Agrupamentos allallFunção de LigaçãoFunção de Ligação

g?

?

?…

Page 34: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

34

StreamsStreams

• Sequências de itens de dados transmitidos em um canal;Sequências de itens de dados transmitidos em um canal;

vv11, , vv22, …, , …, vvnn;;

– EOSEOS:: Valor terminador de Valor terminador de streamstream;;

• Portas que transmitem Portas que transmitem streamsstreams::

– Ativadas no contexto de combinadores Ativadas no contexto de combinadores repeatrepeat;;

– Terminador de Terminador de streamstream e e condição de terminação de repetiçãocondição de terminação de repetição;;

• Múltiplos Múltiplos níveis de aninhamentoníveis de aninhamento::

– EOSEOS é acompanhado do é acompanhado do valor de aninhamentovalor de aninhamento da da streamstream;;

– Transmissão de Transmissão de <<<<<<11>,<>,<22,,33>>,<<>>,<<33,,44>,<>,<55,,66,,77>>>>>>::

• [Data [Data 11, , EosEos 33, Data , Data 22, Data , Data 33, , EosEos 33, , EosEos 2 2, Data , Data 33, Data , Data 44, , EosEos 3 3, ,

Data Data 55, Data , Data 66, Data , Data 77, , EosEos 3 3, , EosEos 2 2, , EosEos 1 1];];

Page 35: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

35

interface NestingExample t # (x*, y**::t) -> (z***::t) behavior: repeat seq {x?; z! repeat seq { y?; z!; repeat seq {x?; y?; z!} until z } until <y & z> } until <x & y & z>

zx

y

*

**

***[t]

[[t]][[[t]]]

• Em Haskell#:Em Haskell#:– Portas Portas streamstream são associadas à listas nos são associadas à listas nos argumentosargumentos e e pontos pontos

de retornode retorno do módulo funcional associado à unidade; do módulo funcional associado à unidade;

– Daí o conceito de Daí o conceito de lazylazy streamsstreams;;

– Intercalação entre computação e comunicaçãoIntercalação entre computação e comunicação sem sem comprometimento da hierarquia de processos;comprometimento da hierarquia de processos;

StreamsStreams e Interfaces e Interfaces

Page 36: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

36

Canais de ComunicaçãoCanais de Comunicação

• Conectam Conectam parespares de portas da interface de unidades; de portas da interface de unidades;– Portas devem ter direções opostas;Portas devem ter direções opostas;

• Ponto-a-ponto, unidirecionais e tipados;Ponto-a-ponto, unidirecionais e tipados;– Inspiração em Inspiração em OCCAMOCCAM e e CSP CSP (disciplina formal);(disciplina formal);

• Modos suportados (inspiração em MPI):Modos suportados (inspiração em MPI):– synchronoussynchronous: : MPI_SSEND/MPI_RECVMPI_SSEND/MPI_RECV;;

– bufferedbuffered: : MPI_BSEND/MPI_RECVMPI_BSEND/MPI_RECV;;

– readyready: : MPI_RSEND/MPI_RECVMPI_RSEND/MPI_RECV;;

Page 37: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

37

UnidadesUnidades VirtuaisVirtuais

• Unidade para qual não há componente associado:Unidade para qual não há componente associado:

– ParametrizadaParametrizada pela tarefa que executará; pela tarefa que executará;

– Somente sua Somente sua interfaceinterface é conhecida; é conhecida;

• Esqueletos topológicos parciaisEsqueletos topológicos parciais::

– Componente (compostos) abstratos; Componente (compostos) abstratos;

– Pelo menos uma Pelo menos uma unidade virtualunidade virtual ocorre em sua composição; ocorre em sua composição;

– SobreposiçãoSobreposição e e aninhamentoaninhamento;;

– Descrições topológicas de alto nível:Descrições topológicas de alto nível:

• Geração de Geração de código otimizadocódigo otimizado (uso de bibliotecas); (uso de bibliotecas);

• Aumenta capacidade de Aumenta capacidade de raciocínioraciocínio sobre programas; sobre programas;

• Encapsulamento de Encapsulamento de bibliotecas científicasbibliotecas científicas;;

• Suporte a modularização de Suporte a modularização de requisitos entrelaçadosrequisitos entrelaçados ( (cross-cutting concernscross-cutting concerns).).

– Aspect-Oriented ProgrammingAspect-Oriented Programming ( (AOPAOP) e ) e HyperspacesHyperspaces;;

Page 38: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

38

Operações sobre Unidades VirtuaisOperações sobre Unidades Virtuais

• UnificaçãoUnificação: : nn unidades unidades 11 unidade; unidade;

• FatoraçãoFatoração: : 11 unidade unidade nn unidades; unidades;

• Operações Operações inversasinversas;;

• Regras de Regras de preservação da topologiapreservação da topologia

– Operações aplicam-se sobre redes bem formadas;Operações aplicam-se sobre redes bem formadas;

• Regras de Regras de preservação comportamentalpreservação comportamental..

Page 39: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

39

UnificaçãoUnificação(permite (permite sobreposição de componentessobreposição de componentes))

unify ctA.u # (i,i’) -> o ctB.u # i -> (o,o’) to new_u # (i,i’) -> (o,o’)

unify

ctA ctB

u ui i

oo i’o’

Page 40: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

40

UnificaçãoUnificação(permite sobreposição de componentes)(permite sobreposição de componentes)

ctActB

new_u

unify ctA.u # (i,i’) -> o ctB.u # i -> (o,o’) to new_u # (i,i’) -> (o,o’)

i

i’o

o’

Os componentees atribuídos aosclusters ctA e ctB são agora componentes sobrepostos !!

Page 41: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

41

FatoraçãoFatoração

u

factorize u # (i,i’) -> (o,o’) to u1 # (i[1],i’) -> o, u2 # i[2] -> (o,o’)

i

i’o

o’

Page 42: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

42

FatoraçãoFatoração

u1 u2i i

oo i’o’

factorize u # (i@{i1,i2},i’) -> (o,o’) to u1 # (i1,i’) -> o u2 # i2 -> (o,o’)

Page 43: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

43

…… …

Esqueletos Esqueletos ElementaresElementares

…… …

FarmFarm

MeshMeshTorusTorus

Pipe_LinePipe_Line

Page 44: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

44

Esqueletos de Comunicação ColetivaEsqueletos de Comunicação Coletiva

0

1

2

n

0

1

2

n

Prim_OneToAllPrim_OneToAll Prim_AllToOnePrim_AllToOne•BcastBcast•ScatterScatter•ScattervScatterv•Reduce_ScatterReduce_Scatter•ScanScan

Prim_AllToAllPrim_AllToAll•GatherGather•GathervGatherv•ReduceReduce

•AllGatherAllGather•AllGathervAllGatherv•AllToAllAllToAll•AllToAllvAllToAllv•AllReduceAllReduce

0 1

n

Page 45: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

45

Uso de EsqueletosUso de Esqueletos

• Esqueletos podem prover ao compilador informações de Esqueletos podem prover ao compilador informações de

alto nível sobre topologia da rede:alto nível sobre topologia da rede:

– Geração de código otimizado;Geração de código otimizado;

• Abstração de funcionalidades encapsuladas em bibliotecas;Abstração de funcionalidades encapsuladas em bibliotecas;

• Primitivas de comunicação especiais;Primitivas de comunicação especiais;

– Em MPI: Comunicação coletiva, por exemplo …Em MPI: Comunicação coletiva, por exemplo …

– Otimização da alocação de processadores;Otimização da alocação de processadores;

– Simplificação da rede de Petri equivalente:Simplificação da rede de Petri equivalente:

• Exemplo adiante…Exemplo adiante…

• Esqueletos # permitem modularização de Esqueletos # permitem modularização de requisitos requisitos

entrelaçadosentrelaçados, assim como AOP e , assim como AOP e HyperspacesHyperspaces..

Page 46: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

46

Implementação HaskellImplementação Haskell## de NPB de NPB

• NPB = NPB = NAS NAS Parallel BenchmarksParallel Benchmarks ( (NASA Research at Ames, EUANASA Research at Ames, EUA););

– Aplicações em dinâmica dos fluidos computacional;Aplicações em dinâmica dos fluidos computacional;

• Padrão Padrão SPMDSPMD ( (SSingle ingle PProgram, rogram, MMultiple ultiple DDataata););

• Como derivar de programas # a partir de Como derivar de programas # a partir de programas MPIprogramas MPI. .

– Componentes simples implementados em Haskell (Componentes simples implementados em Haskell (módulos funcionaismódulos funcionais););

• Kernels: Kernels: EPEP, , ISIS, , CGCG;;

– Extensivo uso de Extensivo uso de comunicação coletivacomunicação coletiva;;

– Usadas nos Usadas nos benchmarksbenchmarks mostrados adiante; mostrados adiante;

– Sobreposição de esqueletos MPI;Sobreposição de esqueletos MPI;

• Aplicações Simuladas: Aplicações Simuladas: LULU, , SPSP e e BTBT;;

– Comunicação ponto-a-ponto;Comunicação ponto-a-ponto;

– Exercita capacidade de lidar com unidades com muitas portas;Exercita capacidade de lidar com unidades com muitas portas;

Page 47: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

47

Kernel IS: Kernel IS: Topologia #Topologia #

AlltoAllv

AllReduce

is_unit[4]

is_unit[1]

is_unit[2]

is_unit[3]

RShift

IS

IS

IS

IS

Page 48: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

48

componentcomponent ISIS <problem_class, num_procs, max_key_log2, num_buckets_log2, <problem_class, num_procs, max_key_log2, num_buckets_log2,

total_keys_log2, max_iterations, max_procs, test_array_size> total_keys_log2, max_iterations, max_procs, test_array_size> withwith

#define PARAMETERS (IS_Params problem_class num_procs max_key_log2 num_buckets_log2 #define PARAMETERS (IS_Params problem_class num_procs max_key_log2 num_buckets_log2

total_keys_log2 max_iterations max_procs test_array_size)total_keys_log2 max_iterations max_procs test_array_size)

iteratoriterator i i rangerange [1, num_procs] [1, num_procs]

useuse Skeletons. Skeletons.{{Misc.RShift, Collective.Misc.RShift, Collective.{{AllReduce, AllToAllvAllReduce, AllToAllv}}}}

useuse IS -- IS -- ISIS Functional ModuleFunctional Module

interfaceinterface IISIIS (bs*, kb*, k) (bs*, kb*, k) ->-> (bs*, kb*, k) (bs*, kb*, k)

wherewhere: bs@: bs@IAllReduceIAllReduce (UArray Int Int) # (UArray Int Int) #

kb@kb@IAllToAllvIAllToAllv (Int, Ptr Int) # (Int, Ptr Int) #

k@k@IIRShiftRShift Int Int

behaviourbehaviour: : seqseq { {repeatrepeat seqseq {{dodo bs; bs; dodo kb} kb} untiluntil <bs & kb>; <bs & kb>; dodo k} k}

unitunit bs_comm ; bs_comm ; assignassign AllReduce<num_procs, MPI_SUM, MPI_INTEGER> AllReduce<num_procs, MPI_SUM, MPI_INTEGER> toto bs_comm bs_comm

unitunit kb_comm ; kb_comm ; assignassign AllToAllv<num_procs> AllToAllv<num_procs> toto kb_comm kb_comm

unitunit k_shift ; k_shift ; assignassign RShift<num_procs> 0 -> _ RShift<num_procs> 0 -> _ toto k_shift k_shift

[/ [/ unifyunify bs_comm.p[i] # bs, bs_comm.p[i] # bs,

kb_comm.p[i] # kb, kb_comm.p[i] # kb,

k_comm.p[i] k_comm.p[i] # k # k toto is_unit[i] # is_unit[i] # IISIIS

assignassign IS (PARAMETERS, bs, kb, k) -> (bs, kb, k) IS (PARAMETERS, bs, kb, k) -> (bs, kb, k) toto is_unit[i] # bs # kb # k is_unit[i] # bs # kb # k /] /]

Page 49: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

49

Page 50: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

50

Tratamento Formal de Programas # Tratamento Formal de Programas # Usando Redes de PetriUsando Redes de Petri

• Tradução da rede de processos para redes de Petri;Tradução da rede de processos para redes de Petri;

• Análise de propriedades formais de programas:Análise de propriedades formais de programas:

– INA (INA (Integrated Net AnalyserIntegrated Net Analyser) e PEP;) e PEP;

• Avaliação de desempenho de programas:Avaliação de desempenho de programas:

– Redes de Petri estocásticas;Redes de Petri estocásticas;

– SPNL e TimeNET;SPNL e TimeNET;

• Antecedentes:Antecedentes:

– Tradução OCCAM Tradução OCCAM redes de Petri (Lins & Maciel, 1996); redes de Petri (Lins & Maciel, 1996);

– Tradução Haskell# Tradução Haskell# redes de Petri (Lima, 2000); redes de Petri (Lima, 2000);

• Versão anterior de Haskell#;Versão anterior de Haskell#;

Page 51: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

51

• Estudos de Caso:Estudos de Caso:– Jantar dos FilósofosJantar dos Filósofos: :

• 2 soluções com características distintas;2 soluções com características distintas;

– Simulação do Simulação do Protocolo do Protocolo do BitBit Alternado Alternado;;

• Ferramentas: Ferramentas: INAINA e e PEPPEP;;• Técnicas empregadas:Técnicas empregadas:

– Propriedades Propriedades comportamentaiscomportamentais e e estrututuraisestrututurais;;– Computação (parcial) de Computação (parcial) de grafo de estadosgrafo de estados e e grafo de coberturagrafo de cobertura;;– Teste de alcançabilidade de marcações;Teste de alcançabilidade de marcações;– Teste de Teste de livenessliveness;;– Computação e teste de invariantes;Computação e teste de invariantes;

• Verificação de propriedades:Verificação de propriedades:– PresençaPresença dede deadlocks deadlocks (impasses);(impasses);– Justiça;Justiça;– Grau de Grau de paralelismoparalelismo ou concorrência; ou concorrência;

Tratamento Formal de Programas # Tratamento Formal de Programas # Usando Redes de PetriUsando Redes de Petri

Page 52: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

52

Jantar dos FilósofosJantar dos Filósofos Solução 1 Solução 1

• Situação geral;Situação geral;

• Presença de Presença de agrupamentos de portasagrupamentos de portas;;

• Filósofos disputam talheres Filósofos disputam talheres arbitrariamentearbitrariamente::

– Ocorrência de Ocorrência de deadlocksdeadlocks;;

– Solução assíncrona (canais “Solução assíncrona (canais “bufferizados”bufferizados”););

– Justiça Justiça condicionalcondicional (escalonamento fortemente justo); (escalonamento fortemente justo);

Page 53: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

53

Um processo filósofo

Um processo filósofo (Modelagem da Natureza

do Valor Transmitido)

Page 54: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

54

Cinco processos filósofos(Canais de Comunicação)

Page 55: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

55

Jantar dos FilósofosJantar dos Filósofos Solução 2 Solução 2

• Filósofos estabelecem Filósofos estabelecem protocoloprotocolo::

– Máximo paralelismo;Máximo paralelismo;

– Justiça incondicional;Justiça incondicional;

– Ausência de Ausência de deadlocksdeadlocks;;

– Comunicação Comunicação síncronasíncrona (canais síncronos); (canais síncronos);

– Não emprega agrupamentos de portas (Não emprega agrupamentos de portas (simplicidadesimplicidade))

Page 56: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

56

Cinco processos filósofos(Canais de Comunicação)

Page 57: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

57

Protocolo do Bit AlternadoProtocolo do Bit Alternado

• Pode ser visto como um esqueleto:Pode ser visto como um esqueleto:

– Modelagem de protocolos de comunicação de canais;Modelagem de protocolos de comunicação de canais;

– Preocupação não-funcional entrelaçada;Preocupação não-funcional entrelaçada;

• Unidades heterogêneas;Unidades heterogêneas;

• Verificação de Verificação de deadlocksdeadlocks;;

– Empregando o teste de Empregando o teste de alcançabilidade marcações mortasalcançabilidade marcações mortas a partir a partir

do grafo de estados não foram encontrados do grafo de estados não foram encontrados deadlocksdeadlocks;;

Page 58: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

58

Page 59: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

59

VHT (Visual # Tool)VHT (Visual # Tool)

• Ambiente # de programação paralela:Ambiente # de programação paralela:

• Configuração visual de componentes;Configuração visual de componentes;

– Geração de código na linguagem # a partir das especificações visuais;Geração de código na linguagem # a partir das especificações visuais;

• Biblioteca de Biblioteca de componentescomponentes e e classes de interfacesclasses de interfaces reutilizáveis; reutilizáveis;

• Uso de XML como formato de intercâmbio;Uso de XML como formato de intercâmbio;

– Definições visuais e estruturais;Definições visuais e estruturais;

• Integração à ferramentas de verificação e análise de redes de Petri;Integração à ferramentas de verificação e análise de redes de Petri;

– Geração de código Geração de código PNMLPNML ( (Petri Net Markup LanguagePetri Net Markup Language););

Page 60: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

60

VHT (Visual # Tool)VHT (Visual # Tool)

• Avaliação de Desempenho;Avaliação de Desempenho;

– Redes de Petri estocásticas usando a ferramenta Redes de Petri estocásticas usando a ferramenta TimeNETTimeNET;;

• Geração de código Geração de código SPNLSPNL ( (Stochastic Petri Net LanguageStochastic Petri Net Language););

– Simuladores de redes de computadores;Simuladores de redes de computadores;

• Geração de simulações para a ferramenta Geração de simulações para a ferramenta NSNS ( (Network SimulatorNetwork Simulator););

• Simulação de programas;Simulação de programas;

– Animação usando ferramentas de redes de Petri;Animação usando ferramentas de redes de Petri;

– Simuladores de rede, como Simuladores de rede, como NSNS (Network Simulator) (Network Simulator)

• Execução do programa e Execução do programa e debugingdebuging;;

– Integração ao Integração ao LAMLAM--MPIMPI ou ou MPICHMPICH;;

– Possível integração a ferramentas de Possível integração a ferramentas de debuggingdebugging de programas de programas MPIMPI;;

• EmEm fasefase desenvolvimento (prototipação).desenvolvimento (prototipação).

Page 61: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

61

ConclusõesConclusões

• Advento de Advento de grid computinggrid computing e e cluster computingcluster computing;;– Aumento de escala e complexidade das aplicações;Aumento de escala e complexidade das aplicações;– Maior número de usuários interessados em PAD (academina e indústria);Maior número de usuários interessados em PAD (academina e indústria);– Novos desafios para programação paralelaNovos desafios para programação paralela;;

• O modelo # integra em um mesmo arcabouço mecanismos que conferem O modelo # integra em um mesmo arcabouço mecanismos que conferem eficiênciaeficiência e e alto nível de abstraçãoalto nível de abstração para programação paralela: para programação paralela:– Total transparência entre os meios de Total transparência entre os meios de coordenaçãocoordenação e e computaçãocomputação;;– A noção de A noção de modularidademodularidade é levada ao extremo: é levada ao extremo:

• Desenvolvimento baseado em Componentes;Desenvolvimento baseado em Componentes;

• Programação de aplicações de Programação de aplicações de larga escalalarga escala;;

• ReusabilidadeReusabilidade de componentes; de componentes;

• Suporte a modularização de preocupações Suporte a modularização de preocupações não-funcionaisnão-funcionais e e entrelaçadasentrelaçadas;;

– Mecanismos de Mecanismos de abstraçãoabstração: : EsqueletosEsqueletos e e bibliotecas científicas encapsuladasbibliotecas científicas encapsuladas;;– Tradução direta para MPI (Tradução direta para MPI (eficiênciaeficiência e e portabilidadeportabilidade););– Suporte multi-lingual;Suporte multi-lingual;– Tradução para redes de Petri;Tradução para redes de Petri;

Page 62: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

62

Trabalhos em Andamento e Propostas de Trabalhos em Andamento e Propostas de Trabalhos FuturosTrabalhos Futuros

• Implementação de estratégias de Implementação de estratégias de alocação de processos a processadoresalocação de processos a processadores

usando esqueletos topológicos parciais:usando esqueletos topológicos parciais:

– Tipo de preocupação Tipo de preocupação não-funcionalnão-funcional e e entrelaçadaentrelaçada;;

– FlexibilidadeFlexibilidade: programador escolhe esqueleto de acordo com a arquitetura ou : programador escolhe esqueleto de acordo com a arquitetura ou

características da aplicação;características da aplicação;

• Implementação de interfaces com Implementação de interfaces com bibliotecas científicasbibliotecas científicas::

– PETSc, LAPACK, ScaLAPACK, e inúmeras outras.PETSc, LAPACK, ScaLAPACK, e inúmeras outras.

– Abstração de funcionalidades por meio de Abstração de funcionalidades por meio de esqueletos topológicos parciaisesqueletos topológicos parciais;;

– Geração automática de código usando as primitivas da biblioteca;Geração automática de código usando as primitivas da biblioteca;

• Formalização uma álgebra para programação #:Formalização uma álgebra para programação #:

– Teoria das categorias;Teoria das categorias;continua

Page 63: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

63

Trabalhos em Andamento e Propostas de Trabalhos em Andamento e Propostas de Trabalhos FuturosTrabalhos Futuros

• Ferramentas de alto nível para suporte à Ferramentas de alto nível para suporte à animaçãoanimação e e análise de análise de

propriedades formaispropriedades formais de programas # com redes de Petri: de programas # com redes de Petri:

– Implementação no topo de Implementação no topo de INA INA ee PEP PEP;;

– Integração à Integração à VHTVHT;;

• Ferramentas de alto nível para suporte à Ferramentas de alto nível para suporte à análise e simulação de análise e simulação de

desempenhodesempenho de programas #: de programas #:

– Abordagem 1Abordagem 1: Modelagem e Simulação usando redes de Petri estocásticas;: Modelagem e Simulação usando redes de Petri estocásticas;

• Implementação no topo de TimeNET com tradução de programas # para Implementação no topo de TimeNET com tradução de programas # para SPNLSPNL;;

– Abordagem 2Abordagem 2: Simulações no topo de : Simulações no topo de NS NS ((NetworkNetwork SimulatorSimulator););

• Proposta de mestrado de Proposta de mestrado de Fernando Aires LinsFernando Aires Lins (atualmente bolsista IC-FDPE/UPE); (atualmente bolsista IC-FDPE/UPE);

– Integração à Integração à VHTVHT;; continua

Page 64: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

64

Trabalhos em Andamento e Propostas de Trabalhos em Andamento e Propostas de Trabalhos FuturosTrabalhos Futuros

• Implementação de extensões multi-linguais para o compilador #:Implementação de extensões multi-linguais para o compilador #:

– Módulos funcionais em C, Fortran, JAVA, etc.;Módulos funcionais em C, Fortran, JAVA, etc.;

– Adaptação ao problema em consideração;Adaptação ao problema em consideração;

– HaskellHaskell é ideal para prototipação; é ideal para prototipação;

– Recentes implementações de Recentes implementações de LAMLAM--MPIMPI são heterogêneas. são heterogêneas.

• Formalização de um Formalização de um modelo de custosmodelo de custos para esqueletos #: para esqueletos #:

– Existem muitos trabalhos sobre modelos de custos de esqueletos;Existem muitos trabalhos sobre modelos de custos de esqueletos;

– Captura da noção de Captura da noção de composicionabilidade de esqueletoscomposicionabilidade de esqueletos;;

– SobreposiçãoSobreposição de esqueletos; de esqueletos;

• Meta-linguagem para especificação de implementação de esqueletos definidos Meta-linguagem para especificação de implementação de esqueletos definidos

ad-hocad-hoc pelo usuário; pelo usuário;

• Programação # sobre Programação # sobre gridsgrids..

Page 65: Francisco Heron de Carvalho Junior, Dr. Escola Politécnica, Universidade de Pernambuco Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas

Francisco Heron de Carvalho Junior, Dr.Francisco Heron de Carvalho Junior, Dr.

Escola Politécnica, Universidade de PernambucoEscola Politécnica, Universidade de Pernambuco

Programação Paralela Eficiente e de Alto Nível Programação Paralela Eficiente e de Alto Nível sobre Arquiteturas Distribuídassobre Arquiteturas Distribuídas