1
Exploração de Paralelismonos Paradigma de Software
Porto Alegre, outubro de 2001
por
Jorge Luis Victória Barbosa
2
Sumário
1 – Paradigmas de Software2 – Modelos para exploração do paralelismo3 – Paralelismo Implícito e Explícito4 – Paralelismo nos paradigmas de software5 – Multiparadigma6 – Holoparadigma7 – Conclusões
3
1 – Paradigmas de Software
4
1 – Paradigmas de Software
Realidade
5
1 – Paradigmas de Software
Realidade
Domínio
6
1 – Paradigmas de Software
Realidade
Domínio
ModeloComputacional
Modelagem
7
1 – Paradigmas de Software
Realidade
Domínio
ModeloComputacional
ModelagemGap Semântico
8
1 – Paradigmas de Software
Realidade
Domínio
ModeloComputacional
ModelagemGap Semântico
• Paradigma Convencional• Paradigma em Lógica• Paradigma Funcional• Paradigma Orientado a Objetos• Paradigma Orientado a Agentes
9
2 – Modelos para Exploração do Paralelismo
10
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
11
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação
12
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
13
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
2) Suporte à metodologia para desenvolvimento de software
14
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
2) Suporte à metodologia para desenvolvimento de software3) Independência da arquitetura
15
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
2) Suporte à metodologia para desenvolvimento de software3) Independência da arquitetura4) Facilidade de compreensão
16
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
2) Suporte à metodologia para desenvolvimento de software3) Independência da arquitetura4) Facilidade de compreensão5) Garantia de desempenho
17
2 – Modelos para Exploração do Paralelismo
Propriedades Ideais (Skillicorn e Talia, 1998)
1) Facilidade de programação- Decomposição- Mapeamento- Comunicação- Sincronização
2) Suporte à metodologia para desenvolvimento de software3) Independência da arquitetura4) Facilidade de compreensão5) Garantia de desempenho6) Medidas de custo
18
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
19
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
20
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
2) Paralelismo explícito, mas decomposição implícita- Concurrent Prolog
21
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
2) Paralelismo explícito, mas decomposição implícita- Concurrent Prolog
3) Paralelismo e decomposição explícitos, mas mapeamento, comunicação e sincronização são implícitas
22
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
2) Paralelismo explícito, mas decomposição implícita- Concurrent Prolog
3) Paralelismo e decomposição explícitos, mas mapeamento, comunicação e sincronização são implícitas
4) Paralelismo, decomposição e mapeamento explícitos, mascomunicação e sincronização implícitos
- Linda e Compositional C++
23
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
2) Paralelismo explícito, mas decomposição implícita- Concurrent Prolog
3) Paralelismo e decomposição explícitos, mas mapeamento, comunicação e sincronização são implícitas
4) Paralelismo, decomposição e mapeamento explícitos, mascomunicação e sincronização implícitos
- Linda e Compositional C++5) Paralelismo, decomposição, mapeamento, comunicação
explícitos, mas sincronização explícita- Atores, Emerald e Concurrent Smalltalk
24
2 – Modelos para Exploração do Paralelismo
Classificação baseada em níveis de abstração
1) Abstração completa do paralelismo- Opera
2) Paralelismo explícito, mas decomposição implícita- Concurrent Prolog
3) Paralelismo e decomposição explícitos, mas mapeamento, comunicação e sincronização são implícitas
4) Paralelismo, decomposição e mapeamento explícitos, mascomunicação e sincronização implícitos
- Linda e Compositional C++5) Paralelismo, decomposição, mapeamento, comunicação
explícitos, mas sincronização explícita- Atores, Emerald e Concurrent Smalltalk
6) Tudo explícito- PVM, MPI, SR e Concurrent C
25
3 – Paralelismo Explícito e Implícito
26
3 – Paralelismo Explícito e Implícito Paralelismo Explícito: Detecção do paralelismo pelo usuário Paralelismo Implícito: Detecção automática do paralelismo
27
3 – Paralelismo Explícito e Implícito Paralelismo Explícito: Detecção do paralelismo pelo usuário Paralelismo Implícito: Detecção automática do paralelismo
Paralelismo Explícito- Linguagem com mecanismos para controle do paralelismo- Usuário utiliza seu conhecimento empírico- Possível exploração inadequada- Paralelismo é difícil para seres humanos- Menor complexidade dos compiladores
28
3 – Paralelismo Explícito e Implícito Paralelismo Explícito: Detecção do paralelismo pelo usuário Paralelismo Implícito: Detecção automática do paralelismo
Paralelismo Explícito- Linguagem com mecanismos para controle do paralelismo- Usuário utiliza seu conhecimento empírico- Possível exploração inadequada- Paralelismo é difícil para seres humanos- Menor complexidade dos compiladores
Paralelismo Implícito- Linguagem não contém mecanismos para controle do paralelismo- Usuário não se envolve- Aumenta a portabilidade- Aproveitamento dos programas já existentes
29
4 – Paralelismo nos Paradigmas
30
4 – Paralelismo nos Paradigmas Convencional
- Dependências de dados- Dependências de controle- Paralelismo explícito
31
4 – Paralelismo nos Paradigmas Convencional
- Dependências de dados- Dependências de controle- Paralelismo explícito
Lógica- Paralelismo E- Paralelismo OU
32
4 – Paralelismo nos Paradigmas Convencional
- Dependências de dados- Dependências de controle- Paralelismo explícito
Lógica- Paralelismo E- Paralelismo OU
Funcional- Resolução de funções
33
4 – Paralelismo nos Paradigmas Convencional
- Dependências de dados- Dependências de controle- Paralelismo explícito
Lógica- Paralelismo E- Paralelismo OU
Funcional- Resolução de funções
Orientação a Objetos- Inter-objetos- Intra-objetos
34
4 – Paralelismo nos Paradigmas
Semântica paralela nos paradigmas
Realidade
Domínio
35
4 – Paralelismo nos Paradigmas
Semântica paralela nos paradigmas
Modelo em Lógica
Modelagem em Lógica: Paralelismo E e OU
Realidade
Domínio
36
4 – Paralelismo nos Paradigmas
Semântica paralela nos paradigmas
Modelo em Lógica
Modelo Orientado a Objetos
Modelagem em Lógica: Paralelismo E e OU
Modelagem Orientada a Objetos:Paralelismo Intra e Inter Objetos
Realidade
Domínio
37
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
38
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio
39
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio Fontes deParalelismo
40
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio
Modelagem Subliminar do paralelismo
Fontes deParalelismo
ModeloComputacional
41
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio
ModeloComputacional
Modelagem Subliminar do paralelismo
Fontes deParalelismo
Paralelismo Implícito
42
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio
ModeloComputacional
Modelagem Subliminar do paralelismo
Execução Paralela
Exploração automática do paralelismo
Fontes deParalelismo
Paralelismo Implícito
43
4 – Paralelismo nos Paradigmas
Fontes de paralelismo na Realidade
Realidade
Domínio
ModeloComputacional
Modelagem Subliminar do paralelismo
Execução Paralela
Exploração automática do paralelismo
Semântica Paralela
Fontes deParalelismo
Paralelismo Implícito
44
5 – Multiparadigma
45
5 - Multiparadigma
Desenvolvimento Funcional
Desenvolvimento em Lógica
Orientação a Objetos
46
5 - Multiparadigma
Orientação a Objetos
Desenvolvimento Funcional
Desenvolvimento em Lógica
Paradigmas Básicos
47
5 - Multiparadigma
Desenvolvimento Funcional
Desenvolvimento em Lógica
Novos Modelos
Paradigmas Básicos
Orientação a Objetos
48
5 - Multiparadigma
• OLI (Object Logic Integration)• OWB (Object With Brain)• I+• DLO (Distributed Logic Objects)• ETA (Everything buT Assignment)• G• Oz
Exemplos
49
6 – Holoparadigma
50
6 - Holoparadigma
Descrição:• Novo paradigma de desenvolvimento de software• Semântica simples e distribuída• Suporte à exploração automática da distribuição
51
6 - Holoparadigma
Descrição:• Novo paradigma de desenvolvimento de software• Semântica simples e distribuída• Suporte à exploração automática da distribuição
Modelo:
Ente 1 . . .
História
Ente 2 Ente n
Invocação Implícita
Invocação Explícita
Blackboard
52
6 - Holoparadigma
História
História
História
História
História
História
História
História
História
História
Nível 0
Nível 1
Nível 2 Nível 2
Organização:
53
6 - Holoparadigma
Áreas de pesquisa:
• Sistemas Distribuídos• Arquitetura de Software• Multiparadigma• Grupos• Mobilidade• DSM (Distributed Shared Memory)
54
7 – Conclusões
55
7 - Conclusões
• O que são paradigmas de software?
56
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)
57
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)• Paradigmas não convencionais facilitam paralelismo implícito
58
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)• Paradigmas não convencionais facilitam paralelismo implícito• Quais são as fontes de paralelismo existentes na Realidade?
59
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)• Paradigmas não convencionais facilitam paralelismo implícito• Quais são as fontes de paralelismo existentes na Realidade?• Multiparadigma é uma tendência
60
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)• Paradigmas não convencionais facilitam paralelismo implícito• Quais são as fontes de paralelismo existentes na Realidade?• Multiparadigma é uma tendência• Paralelismo + Multiparadigma é uma tendência
61
7 - Conclusões
• O que são paradigmas de software?• Artigo interessante Skillicorn e Talia (1998)• Paradigmas não convencionais facilitam paralelismo implícito• Quais são as fontes de paralelismo existentes na Realidade?• Multiparadigma é uma tendência• Paralelismo + Multiparadigma é uma tendência• Holoparadigma em desenvolvimento