A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Memórias Transacionais

Apresentações semelhantes


Apresentação em tema: "Memórias Transacionais"— Transcrição da apresentação:

1 Memórias Transacionais
Izumi Oniki Chiquito Rafael Auler

2 Motivação Redução do período de clock melhora o desempenho, mas também aumenta a dissipação de energia Surgimento de sistemas multi-core Necessidade de executar trechos de código simultaneamente (paralelismo)

3 Motivação Modelo multi-thread  uso de bloqueios (locks)
Difícil composabilidade Programador pode gerar longos trechos seriais que prejudicam desempenho paralelo Instabilidades Deadlocks Convoying Inversão de prioridade

4 Motivação Memória transacional (transactional memory – TM) como alternativa de programação concorrente Utiliza o conceito de transações Detecta conflitos e verifica necessidade de re-executar trechos de código Composabilidade Responsabilidade de sincronização é completamente do sistema

5 Conceitos Básicos Transação: uma seqüência de instruções que impõe modificações no sistema baseada no estado atual Isolamento (seriabilidade) Atomicidade Resultados: Commit ou Abort

6 Interface programador-sistema de memória transacional
Bloco atômico bool mutexX, mutexY; exemploLock (x, y) { lock(mutexX); lock(mutexY); x = x + y; y = 0; unlock(mutexX); unlock(mutexY); } exemploAtomic (x, y) { atomic { x = x + y; y = 0; }

7 Interface programador-sistema de memória transacional
Retry orElse atomic { if (tamanhoFila > 0) fila.remover(); else retry; } atomic { { filaPref.atender(); } orElse { filaRegular.atender(); } }

8 Desafios de Implementação
Versionamento de dados Versionamento adiantado undo log Versionamento tardio (atrasado) buffer local Detecção de conflito Detecção adiantada Detecção tardia

9 Desafios de Implementação
Detecção de conflito adiantada Pessimista Problema em potencial: livelock Escreve X Lê X T1 T2 T2 aguarda para verificar se T1 irá efetivar ou abortar Lê X Escreve X T1 T2 reinicia efetivação

10 Desafios de Implementação
Detecção de conflito atrasada Problema em potencial: starvation Escreve X Lê X T1 T2 efetivação reinicia

11 Desafios de Implementação
Aninhamento de transações Flattening Aninhamento fechado (closed nesting) Dados separados para cada transação Aninhamento aberto (open nesting)

12 Modelos de Memória Transacional
Hardware transaction memory (HTM) Software transaction memory (STM) Modelos híbridos

13 Memória Transacional de Herlihy e Moss (HMTM)
1993 Memória transacional deve ser rápida  apoio do hardware Alterar a arquitetura do processador para incluir novas instruções Cache transacional Transações não são explicitamente definidas Resolução de conflitos adiantada e versionamento tardio Limitações de recursos transacionais e tempo de vida das transações (trocas de contexto)

14 Software Transactional Memory (STM)
1997 – Shavit e Toitou Eliminação dos problemas relacionados à falta de recursos do hardware ou troca de contexto Possibilidade de melhor explorar a semântica de programação Portabilidade Exigência cara: transações estáticas

15 Unbounded Transactional Memory (UTM)
2005 Desempenho do hardware, eliminando restrições do HMTM Utópico  exige muitas modificações na arquitetura Virtualização do tempo e do espaço Detecção de conflitos adiantada, versionamento adiantado e flattening

16 Large Transaction Memory (LTM)
2005 Modelo menos exigente Não virtualiza o tempo Não permite troca de transações entre processadores Versionamento tardio

17 Virtual Transaction Memory (VTM)
2005 Abordagem semelhante a UTM Virtualização do espaço e do tempo Versionamento tardio

18 LogTM 2006 Exemplo de bom desempenho em versionamento adiantado
Ponteiro para log das modificações Escritas diretas na memória comum Software responsável pela recuperação Duas versões Flat LogTM Nested LogTM Suporte a aninhamento aberto e fechado

19 Desempenho igual ou superior a VTM e modelos mais flexíveis
Unbounded Page-Based Transactional Memory (PTM) Extended Transactional Memory (XTM) 2006 Alocação de páginas na memória, aproveitando a memória virtual, quando atingida a limitação do hardware Desempenho igual ou superior a VTM e modelos mais flexíveis Virtualização de aninhamento XTM adota versionamento e detecção de conflitos tardios PTM adota o oposto ou uma abordagem híbrida quanto ao versionamento

20 Memória Transacional Híbrida
Combinam HTM e STM Estratégia geral: Executar transações em hardware  maior velocidade Reiniciar transações em software  combate problema da falta de recursos

21 Resumo Paralelismo/Programação concorrente Uso de transações
Abstração de programação Dificuldades de implementação Modelos de memórias transacionais

22 Conclusão Uso de transações para resolver problemas de concorrência é eficiente A abstração facilita a programação Memórias transacionais prometem ao software o melhor aproveitamento dos processadores de vários núcleos Importante área de pesquisa


Carregar ppt "Memórias Transacionais"

Apresentações semelhantes


Anúncios Google