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

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

Memórias Transacionais Izumi Oniki Chiquito Rafael Auler.

Apresentações semelhantes


Apresentação em tema: "Memórias Transacionais Izumi Oniki Chiquito Rafael Auler."— 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 exemploAtomic (x, y) { atomic { x = x + y; y = 0; } bool mutexX, mutexY; exemploLock (x, y) { lock(mutexX); lock(mutexY); x = x + y; y = 0; unlock(mutexX); unlock(mutexY); }

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 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 Izumi Oniki Chiquito Rafael Auler."

Apresentações semelhantes


Anúncios Google