Grupo de Pesquisa em  Computação de Alto Desempenho MDCC Departamento de Computação Universidade Federal do Ceará
Integrantes <ul><li>Professores </li></ul><ul><ul><li>Francisco Heron de Carvalho Junior </li></ul></ul><ul><ul><ul><li>Do...
Integrantes <ul><li>Alunos de Graduação </li></ul><ul><ul><li>Lucas  Pinheiro de Queiroz (PIBIC-CNPq/UFC) </li></ul></ul><...
Projetos em Andamento <ul><li>CompGRID </li></ul><ul><ul><li>“ Programação Baseada em Componentes para Aplicações de Alto ...
Linhas de Pesquisa <ul><li>Algoritmos  Paralelos  e  Distribuídos ; </li></ul><ul><li>Programação  Concorrente : </li></ul...
<ul><li>Aplicações em Processamento de Alto Desempenho (PAD); </li></ul><ul><ul><li>Desafios em  hardware   (arquiteturas ...
Programação Paralela Baseada em Componentes O Modelo de Componentes #
High Performance Computing Applications <ul><li>Intrinsecamente  computacionalmente intensivos ; </li></ul><ul><li>Alta de...
Desafios em  Hardware Arquiteturas de  Computadores Paralelos
Unidade de Processamento Intel  MMX  /  SSE  /  SSE2 AMD  3DNow! Processadores Vetoriais Load A[1] Mult 4 Store B[1] t 0 t...
Arquiteturas  Distribuídas Multiprocessadores ( Memória  Compartilhada ) <ul><li>clusters ; </li></ul><ul><li>MPP’s; </li>...
Arquiteturas  Hierárquicas Rede de Comunicação ( Ethernet, Myrinet, SCI, Infiniband, QsNET, etc. ) ... <ul><li>Constelaçõe...
Paralelismo: Conceitos Básicos Multiprocessadores Arquiteturas  distribuídas Hardware Software Processadores  super-escala...
Taxonomia ( Dongarra, 2002 ) <ul><li>Cluster Computing: </li></ul><ul><ul><li>Clusters ; </li></ul></ul><ul><ul><li>Proces...
Taxonomia ( Dongarra, 2002 ) <ul><li>Grid Computing  (Grades) : </li></ul><ul><ul><li>Conjunto de computadores paralelos g...
 
Desafios em  Software Programação Paralela
Modelos de Programação Paralela <ul><li>Evolução do  pico de desempenho  das arquiteturas paralelas obedece a  Lei de Moor...
Trends in HPC Software Engineering <ul><li>Requirements for parallel programming artifacts (HPC context): </li></ul><ul><u...
<ul><li>“ (…) A persistent  programming model  for scalable, paralell computers is absolutely essential if computational s...
Tecnologia de Components para HPC <ul><li>“ In the  commercial software industry , the  increased complexity of contempora...
Components Integration Distribution Parallelism Current Component Technology Parallelism Extensions
Tecnologia de Componentes para HPC <ul><li>CCA ( Common Component Architecture ) </li></ul><ul><ul><li>Inspirado em padrõe...
Tecnologia de Componentes para HPC <ul><li>Fractal (INRIA, France Telecom) </li></ul><ul><ul><li>Composição  hierárquica  ...
Tecnologia de Componentes para HPC <ul><li>PASM ( Parallel Architectural Skeleton Model ) </li></ul><ul><ul><li>Programaçã...
The # Component Model Towards a Component Model for Improving Practice of Parallel Programming
Components The # Component Model Integration Distribution Parallelism
O Modelo de Componentes # Premissas e Intuições P 0 P 1 P n ...
O Modelo de Componentes # Premissas e Intuições P 0 P 1 P 2 P 4 shift right ! broadcast ! all to all ! ! ? ! ! ! ? ? ? ! ?...
<ul><li>Processos como unidades de decomposição de  software ; </li></ul><ul><li>Interesses  espalham-se no código dos pro...
P 0 P 1 P 2 P 4 ? ? ? shift right ! broadcast ! all to all ! ??? ??? ??? ??? !!! !!! !!! !!! ! ? ! ! ! ? ? ? ? ! ! ? !! !!...
C 0 C 1 C 2 C 3 C 4 C 5 Retânguls são unidades Elipses são componentes
C O N C E R N S P R O C E S S E S An  orthogonal  perspective of parallel programming !! C 4 C 5 C 3 C 2 C 1 C 0 P 3 P 2 P...
Dado um conjunto de componentes #,  como compôr um programa ? Composição Hierárquica por Sobreposição !
<ul><li>Abstrações Básicas </li></ul><ul><ul><li>Componente; </li></ul></ul><ul><ul><li>Unidade/Interface; </li></ul></ul>...
Final Remarks <ul><li>Programming models  and  environments  for productive development of large scale HPC applications is...
Further Works Proposals <ul><li>Theoretical works about # programming model; </li></ul><ul><ul><li>Semantics, type systems...
Upcoming SlideShare
Loading in …5
×

Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil

1,722 views

Published on

Palestra ministrada no SEMPET sobre o grupo de pesquisa em computação de alto desempenho pelo Prof. Francisco Heron de Carvalho Junior. Inclui estado-da-arte em arquiteturas e software para CAD.

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,722
On SlideShare
0
From Embeds
0
Number of Embeds
60
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Research Group on High Performance Computing - MDCC/UFC - Fortaleza, Brazil

    1. 1. Grupo de Pesquisa em Computação de Alto Desempenho MDCC Departamento de Computação Universidade Federal do Ceará
    2. 2. Integrantes <ul><li>Professores </li></ul><ul><ul><li>Francisco Heron de Carvalho Junior </li></ul></ul><ul><ul><ul><li>Doutor em Ciência da Computação – UFPE, Brasil, 2003 </li></ul></ul></ul><ul><ul><li>Ricardo Cordeiro Corrêa (Bolsista CNPq - 2) </li></ul></ul><ul><ul><ul><li>Doutor em Informática – INPG, França, 1997 </li></ul></ul></ul><ul><li>Doutorado </li></ul><ul><ul><li>Gisele Azevedo Araújo </li></ul></ul><ul><ul><ul><li>Mestre em Ciência da Computação – UFC, Brasil, 2002. </li></ul></ul></ul><ul><li>Mestrado </li></ul><ul><ul><li>Jefferson de Carvalho Silva (Bacharel, UNIFOR, 2005) </li></ul></ul><ul><ul><ul><li>Bacharel em Informática – UNIFOR, Brasil. 2005 </li></ul></ul></ul>
    3. 3. Integrantes <ul><li>Alunos de Graduação </li></ul><ul><ul><li>Lucas Pinheiro de Queiroz (PIBIC-CNPq/UFC) </li></ul></ul><ul><ul><li>Allberson Bruno de Oliveira Dantas (PET) </li></ul></ul><ul><ul><li>Paulo Roberto Cordeiro Gomes (Projeto GREAT) </li></ul></ul><ul><ul><li>Phillipe Rodrigues Sampaio (CNPq) </li></ul></ul><ul><ul><li>Hélio Bonfim de Macêdo Filho (CNPq) </li></ul></ul><ul><ul><li>José Maria Silveira Neto (CNPq) </li></ul></ul>
    4. 4. Projetos em Andamento <ul><li>CompGRID </li></ul><ul><ul><li>“ Programação Baseada em Componentes para Aplicações de Alto Desempenho em Grades Computacionais” </li></ul></ul><ul><ul><li>Edital MCT/CNPq nº 07/2006 - Apoio a Grupos de Pesquisa Vinculados a Programas de Pós-Graduação (Casadinho) </li></ul></ul><ul><ul><li>Vigência: 2007 e 2008 </li></ul></ul><ul><li>CNPq Universal </li></ul><ul><ul><li>“ Programação Baseada em Componentes para Aplicações em Ciências Computacionais sobre Arquiteturas Paralelas e Distribuídas” </li></ul></ul><ul><ul><li>Chamada MCT – CNPq 02/2006 – Universal </li></ul></ul><ul><ul><li>Vigência: 2007 e 2008 </li></ul></ul><ul><li>SIMFRA </li></ul><ul><ul><li>“ Simulação de Fraturas em Dutos” </li></ul></ul><ul><ul><li>FINEP/CNPq/CT-PETRO/PETROBRAS </li></ul></ul>
    5. 5. Linhas de Pesquisa <ul><li>Algoritmos Paralelos e Distribuídos ; </li></ul><ul><li>Programação Concorrente : </li></ul><ul><ul><li>Sincronização de Processos e Threads ; </li></ul></ul><ul><ul><ul><li>Processadores multi-core !!! </li></ul></ul></ul><ul><ul><li>Programação Paralela; </li></ul></ul><ul><ul><ul><li>Clusters e Grids ; </li></ul></ul></ul><ul><ul><ul><li>Fundamentos de linguagens: semântica e sistemas de tipos ; </li></ul></ul></ul><ul><ul><li>Programação Distribuída; </li></ul></ul><ul><ul><li>Modelos de Componentes; </li></ul></ul><ul><ul><ul><li>Forró/CCA: componentes distribuídos ; </li></ul></ul></ul><ul><ul><ul><li># (Hash): componentes paralelos ; </li></ul></ul></ul><ul><li>Avaliação de Desempenho de Sistemas </li></ul>
    6. 6. <ul><li>Aplicações em Processamento de Alto Desempenho (PAD); </li></ul><ul><ul><li>Desafios em hardware (arquiteturas paralelas); </li></ul></ul><ul><ul><li>Desafios em software (programação paralela); </li></ul></ul><ul><li>Tecnologia de componentes para PAD; </li></ul><ul><li>O Modelo # de componentes; </li></ul><ul><li>HPE: The # Programming Environment: </li></ul><ul><ul><li>Fundações para frameworks baseados no modelo #; </li></ul></ul><ul><li>Agenda de pesquisa; </li></ul><ul><li>Observações finais. </li></ul>Plano de Apresentação
    7. 7. Programação Paralela Baseada em Componentes O Modelo de Componentes #
    8. 8. High Performance Computing Applications <ul><li>Intrinsecamente computacionalmente intensivos ; </li></ul><ul><li>Alta demanda por espaço de memória; </li></ul><ul><li>Originárias das Ciências Computacionais e Engenharia ; </li></ul><ul><li>Exemplos illustrativos, porém não exaustivos !  </li></ul><ul><ul><li>Simulação de fenômenos físicos e naturais; </li></ul></ul><ul><ul><ul><li>Terremotos, tornados, tsunamis (previsão and análise de efeitos); </li></ul></ul></ul><ul><ul><ul><li>Previsão de clima; </li></ul></ul></ul><ul><ul><ul><li>Fisiologia dos seres vivos; </li></ul></ul></ul><ul><ul><ul><li>Fraturas em dutos; </li></ul></ul></ul><ul><ul><ul><li>Modelagem de reservatórios de petróleo (otimização da extração); </li></ul></ul></ul><ul><ul><ul><li>Dinâmica dos fluidos (análise e otimização aerodinâmicas) </li></ul></ul></ul><ul><ul><li>Problemas difíceis de otimização combinatória; </li></ul></ul><ul><ul><li>Descoberta de medicamentos; </li></ul></ul><ul><ul><li>Genômica e bioinformática; </li></ul></ul><ul><li>Interesse industrial crescente. </li></ul>
    9. 9. Desafios em Hardware Arquiteturas de Computadores Paralelos
    10. 10. Unidade de Processamento Intel MMX / SSE / SSE2 AMD 3DNow! Processadores Vetoriais Load A[1] Mult 4 Store B[1] t 0 t 1 t 2 B[i] := A[i] * 4 ... ... ... Load A[2] Mult 4 Store B[2] Load A[n] Mult 4 Store B[n] Load A[I] Mult 4 Store B[I] Uma única instrução opera sobre um conjunto de dados SIMD ( Single Instruction Multiple Data ) Pipelined SISD ( Single Instruction Single Data ) Processadores Super-escalares Várias instruções por ciclo de clock MIMD ( Multiple Instruction Multiple Data ) Load A Mult 4 Store B t 0 t 1 t 2 ... ... ... Load E Store F Nop Load I Add 5 Store C B := A * 4 C := 5 + I F := E
    11. 11. Arquiteturas Distribuídas Multiprocessadores ( Memória Compartilhada ) <ul><li>clusters ; </li></ul><ul><li>MPP’s; </li></ul>Unidade de Processamento Unidade de Processamento Memória Memória Rede de Comunicação ( Ethernet, Myrinet, SCI, Infiniband, QsNET, etc. ) Unidade de Processamento Memória ... Unidade de Processamento Unidade de Processamento Memória Unidade de Processamento ...
    12. 12. Arquiteturas Hierárquicas Rede de Comunicação ( Ethernet, Myrinet, SCI, Infiniband, QsNET, etc. ) ... <ul><li>Constelações (N  16); </li></ul><ul><li>Clusters de multiprocessadores; </li></ul>Unidade de Processamento Unidade de Memória Unidade de Processamento ... Unidade de Processamento Unidade de Memória Unidade de Processamento ... Unidade de Processamento Unidade de Memória Unidade de Processamento ...
    13. 13. Paralelismo: Conceitos Básicos Multiprocessadores Arquiteturas distribuídas Hardware Software Processadores super-escalares Arquiteturas vetoriais Clusters MPP’s Constelações Clusters de Multiprocessadores Earth Simulator
    14. 14. Taxonomia ( Dongarra, 2002 ) <ul><li>Cluster Computing: </li></ul><ul><ul><li>Clusters ; </li></ul></ul><ul><ul><li>Processadores e switchs de prateleira; </li></ul></ul><ul><ul><li>Processadores desenvolvidos visando servidores web e uso doméstico (PC’s); </li></ul></ul><ul><ul><li>Larga escala de mercado; </li></ul></ul><ul><ul><li>Custo atrativo para computação científica; </li></ul></ul><ul><ul><li>Software livre. </li></ul></ul><ul><li>Capability Computing: </li></ul><ul><ul><li>MPP’s e vetoriais ; </li></ul></ul><ul><ul><li>Supercomputadores contemporâneos; </li></ul></ul><ul><ul><li>Processadores e switchs proprietários, de propósito específico; </li></ul></ul><ul><ul><li>Processadores desenvolvidos para computação científica ; </li></ul></ul><ul><ul><li>Alta largura de banda, baixa latência; </li></ul></ul><ul><ul><li>Pequena escala de mercado. </li></ul></ul><ul><ul><li>Alto custo; </li></ul></ul><ul><ul><li>Software proprietário. </li></ul></ul>
    15. 15. Taxonomia ( Dongarra, 2002 ) <ul><li>Grid Computing (Grades) : </li></ul><ul><ul><li>Conjunto de computadores paralelos geograficamente dispersos; </li></ul></ul><ul><ul><li>Estrutura hierárquica e recursiva : </li></ul></ul><ul><ul><ul><li>Grades podem ser formadas por sites (melhor gerenciamento); </li></ul></ul></ul><ul><ul><ul><li>Capability computers podem ser sites ; </li></ul></ul></ul><ul><ul><ul><li>Redes de computadores ( clusters ) podem ser sites ; </li></ul></ul></ul><ul><ul><ul><li>Grades podem ser sites de grades de mais alto nível; </li></ul></ul></ul><ul><ul><li>Paralelismo de muito baixo acoplamento em nível de grade : </li></ul></ul><ul><ul><ul><li>Alta latência de comunicação (quando baseada em internet ); </li></ul></ul></ul><ul><ul><ul><li>Atualmente, mais apropriado para paralelismo bag of tasks ; </li></ul></ul></ul><ul><ul><ul><li>Apenas uma limitação tecnológica. Latência tende a reduzir-se; </li></ul></ul></ul><ul><ul><li>Computação com um recurso oferecido aos usuários; </li></ul></ul><ul><ul><ul><li>Transparência, como em sistemas distribuídos; </li></ul></ul></ul><ul><ul><ul><li>Usuário final não precisa estar consciente sobre a estrutura da grade; </li></ul></ul></ul><ul><ul><li>Preocupações com segurança e tolerância a falhas . </li></ul></ul>
    16. 17. Desafios em Software Programação Paralela
    17. 18. Modelos de Programação Paralela <ul><li>Evolução do pico de desempenho das arquiteturas paralelas obedece a Lei de Moore ; </li></ul><ul><li>Software não evolui de acordo com os requisitos de escalabilidade e eficiência das arquiteturas paralelas; </li></ul><ul><ul><li>Sonho do paralelismo escalável encontra-se limitado por algoritmos e modelos de programação ; </li></ul></ul><ul><ul><li>Fato consensual, reconhecido desde a década de 80; </li></ul></ul><ul><ul><li>1989 : CRPC ( Center for Research on Parallel Computation ): </li></ul></ul><ul><ul><ul><li>Coordenação de iniciativas das comunidades acadêmica e industrial ; </li></ul></ul></ul><ul><ul><ul><li>Tornar computação paralela verdadeiramente utilizável ; </li></ul></ul></ul><ul><ul><ul><li>Tendência de consolidação das arquiteturas distribuídas ; </li></ul></ul></ul><ul><ul><ul><li>O alvorecer de uma ciência de fato para computação paralela ? </li></ul></ul></ul>
    18. 19. Trends in HPC Software Engineering <ul><li>Requirements for parallel programming artifacts (HPC context): </li></ul><ul><ul><li>G enerality (functional and data decomposition) ; </li></ul></ul><ul><ul><li>A bstraction (hiding parallelism and architectural details) ; </li></ul></ul><ul><ul><li>P ortability (accross distributed architectures) ; </li></ul></ul><ul><ul><li>E fficiency (peak performance and scalability) ; </li></ul></ul><ul><ul><li>M odularity (Dealing with complexity and large scale) . </li></ul></ul>H – High M – Medium / Relative L – Low L M H H H E L L H L Auto-parallelizing Compilers H H H H Parallel Functional Programming M H H M Skeletal Programming M H H L Scientific Computing Libraries L H L H Message Passing Libraries M P A G
    19. 20. <ul><li>“ (…) A persistent programming model for scalable, paralell computers is absolutely essential if computational science and enginnering is to realize even a fraction of its remarkable promise (…)” </li></ul><ul><li>“ (…) Why, in the face of these advances, is the science of parallel computation will interesting to study ? In 1989, many of us felt that we could develop a higher-level parallel programming interface that would supplant the message-passing paradigms then being used. However, our expectation that explicit message passing would routinely be hidden from the developer have not been realized. Today, most developers must use explicit message passing, albeit via a more sophisticated portable interface, to generate efficient scalable parallel programs . This is but one example demonstrating that the science of parallel computation is incomplete. (…)” </li></ul><ul><li>Sourcebook of Parallel Computing , 2003 </li></ul><ul><li>Jack Dongarra & Ian Foster et al . </li></ul>
    20. 21. Tecnologia de Components para HPC <ul><li>“ In the commercial software industry , the increased complexity of contemporary software has required a new mechanism that scales across people, geography, and time to achieve economics of scale . Component technology is the solution to this demand. It is component technology that enables MS Word TM documents to appear in MS Powerpoint TM slides and has led to the point-and-click graphical user interfaces (GUIs) that inhabit most desktops today. However, high-performance scientific computing has not benefited from these advancements ” </li></ul><ul><li>Armstrong, R. et al. “ The CCA Component Model for High-Performance Computing Scientific Computing ”, Concurrency and Computation: Practice and Experience, vol. 18, n. 2. </li></ul>
    21. 22. Components Integration Distribution Parallelism Current Component Technology Parallelism Extensions
    22. 23. Tecnologia de Componentes para HPC <ul><li>CCA ( Common Component Architecture ) </li></ul><ul><ul><li>Inspirado em padrões industrias (CORBA, COM); </li></ul></ul><ul><ul><li>Padrão de projeto Uses/Provides Ports ; </li></ul></ul><ul><ul><li>Conexões direta, evitando proxies e tal ... </li></ul></ul><ul><ul><li>Suporte a tipos de dados comuns em PAD; </li></ul></ul><ul><ul><li>Paralelismo SCMD ( Single Component Multiple Data ); </li></ul></ul><ul><ul><li>Esforço conjunto de instituições científicas dos EUA, financiadas pelo DOE (Dept. of Energy); </li></ul></ul><ul><ul><li>Vários Frameworks : SciRun, XCAT, MOCCA, etc. </li></ul></ul><ul><ul><li>Babel/SIDL – Interoperabilidade de Linguagens ; </li></ul></ul><ul><ul><li>Visite http://www.cca-forum.org ; </li></ul></ul>
    23. 24. Tecnologia de Componentes para HPC <ul><li>Fractal (INRIA, France Telecom) </li></ul><ul><ul><li>Composição hierárquica de componentes; </li></ul></ul><ul><ul><li>Separação de Interface e Implementação (Padrão de Projeto); </li></ul></ul><ul><ul><li>Comunicação assíncrona ( futures ); </li></ul></ul><ul><ul><li>Arcabouço semântico: ASP Calculus ; </li></ul></ul><ul><ul><li>ProActive e Julia : frameworks para grades computacionais; </li></ul></ul><ul><ul><li>Visite http://fractal.objectweb.org/ </li></ul></ul><ul><li>P-COM </li></ul><ul><ul><li>Composição dinâmica de componentes; </li></ul></ul><ul><ul><li>Interfaces associativas; </li></ul></ul><ul><ul><ul><li>Accepts interfaces / Requires interfaces; </li></ul></ul></ul><ul><ul><ul><li>Role based programming system ; </li></ul></ul></ul><ul><ul><li>Conectores exógenos; </li></ul></ul><ul><ul><li>Protocolos de comportamento nas interfaces; </li></ul></ul>
    24. 25. Tecnologia de Componentes para HPC <ul><li>PASM ( Parallel Architectural Skeleton Model ) </li></ul><ul><ul><li>Programação paralela baseada em esqueletos; </li></ul></ul><ul><ul><li>Design Patterns ; </li></ul></ul><ul><ul><li>Composição hierárquica de esqueletos; </li></ul></ul><ul><li>Forró (“ For All Simulations ”) </li></ul><ul><ul><li>Recentemente tornou-se compatível com o padrão CCA; </li></ul></ul><ul><ul><li>Suporte a múltiplos modos de computação paralela ; </li></ul></ul><ul><ul><ul><li>Workspaces e Locations ; </li></ul></ul></ul><ul><ul><li>Sobreposição de comunicação e computação (iteradores); </li></ul></ul>
    25. 26. The # Component Model Towards a Component Model for Improving Practice of Parallel Programming
    26. 27. Components The # Component Model Integration Distribution Parallelism
    27. 28. O Modelo de Componentes # Premissas e Intuições P 0 P 1 P n ...
    28. 29. O Modelo de Componentes # Premissas e Intuições P 0 P 1 P 2 P 4 shift right ! broadcast ! all to all ! ! ? ! ! ! ? ? ? ! ? ! ? ? ! ??? ! ! ! ??? ??? ??? ??? !!! !!! !!! !!!
    29. 30. <ul><li>Processos como unidades de decomposição de software ; </li></ul><ul><li>Interesses espalham-se no código dos processos; </li></ul><ul><ul><li>Fato amenizado por estilo SPMD; </li></ul></ul><ul><ul><li>Porém, MPMD tem se tornado mais comum devido às grades; </li></ul></ul><ul><li>Dificuldade de entendimento de programas: </li></ul><ul><ul><li>Programador tem que descobrir topologia de comunicação (pior em operações coletivas implementadas ponto-a-ponto !!  ); </li></ul></ul><ul><ul><li>Fato amenizável com programação paralela estruturada (operações coletivas e esqueletos de comunicação). </li></ul></ul><ul><ul><li>Porém, esta alternativa não é geral o suficiente; </li></ul></ul><ul><li>Dificuldade de programação; </li></ul><ul><ul><li>Depuração de programas pode ser complexo; </li></ul></ul><ul><ul><li>Muito propenso a erros (pouco robusto); </li></ul></ul><ul><li>Dificuldade de análise formal de programs; </li></ul><ul><li>Em Engenharia de Software , interesses ( concerns ) e não processos são unidades de decomposição de software por excelência: </li></ul>O Modelo de Componentes # Programação Paralela Orientada a Processos
    30. 31. P 0 P 1 P 2 P 4 ? ? ? shift right ! broadcast ! all to all ! ??? ??? ??? ??? !!! !!! !!! !!! ! ? ! ! ! ? ? ? ? ! ! ? !! !!! ? ? process slice Cores indicam interesses ( concerns )
    31. 32. C 0 C 1 C 2 C 3 C 4 C 5 Retânguls são unidades Elipses são componentes
    32. 33. C O N C E R N S P R O C E S S E S An orthogonal perspective of parallel programming !! C 4 C 5 C 3 C 2 C 1 C 0 P 3 P 2 P 1 P 0
    33. 34. Dado um conjunto de componentes #, como compôr um programa ? Composição Hierárquica por Sobreposição !
    34. 35. <ul><li>Abstrações Básicas </li></ul><ul><ul><li>Componente; </li></ul></ul><ul><ul><li>Unidade/Interface; </li></ul></ul><ul><ul><li>Protocolo. </li></ul></ul><ul><li>Semântica Formal: </li></ul><ul><ul><li>Redes de Petri (RdP); </li></ul></ul><ul><ul><li>Teoria das Instituições; </li></ul></ul><ul><ul><li>Teoria das Categorias; </li></ul></ul><ul><ul><li>Teoria de Tipos; </li></ul></ul><ul><li>Características importantes: </li></ul><ul><ul><li>Conectores exógenos , representados como componentes; </li></ul></ul><ul><ul><ul><li>Uniformidade de representação e simplicidade; </li></ul></ul></ul><ul><ul><li>Protocolos de comportamento facilitam tratamento formal com RdP’s; </li></ul></ul>O Modelo de Componentes # Conceitos <ul><li>Conceitos Avançados: </li></ul><ul><ul><li>Parametrização de Componentes; </li></ul></ul><ul><ul><li>Tipos de componentes; </li></ul></ul><ul><ul><ul><li>(Existential/Universal) Bounded Quantification Polymorphism </li></ul></ul></ul><ul><ul><ul><li>Operadores de Tipos; </li></ul></ul></ul><ul><ul><ul><li>Segurança e Abstração. </li></ul></ul></ul><ul><ul><li>Programação com Esqueletos; </li></ul></ul>
    35. 36. Final Remarks <ul><li>Programming models and environments for productive development of large scale HPC applications is vital to fulfill the current claims of computational sciences and engineering ; </li></ul><ul><ul><li>Heterogenous and complex architectures for parallel computing; </li></ul></ul><ul><ul><ul><li>Grids, off-the-shelf clusters, contemporary supercomputers; </li></ul></ul></ul><ul><ul><ul><li>Distributed processing, vectorial processing, shared memory; </li></ul></ul></ul><ul><ul><ul><li>Deep hierarchies of memory; </li></ul></ul></ul><ul><ul><li>To approximate programming artifacts and specialists, like in PSE’s. </li></ul></ul><ul><ul><li>Requirements of integration , distribution and parallelism ; </li></ul></ul><ul><li>Component technology and its adaptation for HPC needs (CCA); </li></ul><ul><li>We have proposed the # component model and an architecture for compliant frameworks and environments; </li></ul><ul><ul><li>Potentially, a substratum for implementaton of interoperable PSE’s and parallel programming environments; </li></ul></ul>
    36. 37. Further Works Proposals <ul><li>Theoretical works about # programming model; </li></ul><ul><ul><li>Semantics, type systems, relations with other programming concepts, etc; </li></ul></ul><ul><li>To prototype HPE; </li></ul><ul><li>To implement problem solving environments over HPE’s framework; </li></ul><ul><ul><li>Scientific computing or engineering application domains; </li></ul></ul><ul><li>To target grid computing architectures ; </li></ul><ul><li>To investigate the use of ECMA/CLI for implementation of a # framework (SSCLI, CLR, Mono, ...); </li></ul><ul><ul><li>Efficient virtual machine (architecture interoperability); </li></ul></ul><ul><ul><li>Component adaptability through just-in-time compilation ; </li></ul></ul><ul><ul><li>Language interoperability is addressed by CLI; </li></ul></ul><ul><ul><li>Version control for components; </li></ul></ul><ul><ul><li>Parallel components for .NET </li></ul></ul>

    ×