Dissertação

Reducing Conflicts in Software Transactional Memory EVALUATED

A memória transaccional por software (STM) já provou ser um mecanismo útil no desenvolvimento de aplicações com altos níveis de paralelismo, porque elimina a necessidade de identificar explicitamente que dados vão ser acedidos por cada tarefa concorrente. Em vez disso, os sistemas de STM monitorizam os acessos aos dados partilhados e detectam conflitos quando ocorrem acessos concorrentes a esses dados. Quando isso acontece, as transacções são re-executadas para garantir a sua atomicidade, mas por vezes essas re-execuções são desnecessárias e dão origem a perdas de desempenho que podiam ser evitadas. Uma abordagem para evitar este tipo de ineficiência consiste em identificar conflitos benignos - acessos concorrentes aos mesmos dados mas que são semanticamente correctos - e evitar a re-execução completa da transacção. Este trabalho explora a possibilidade de identificar este tipo de conflitos benignos ao particionar uma transacção em operações mais pequenas - transacções restartable - que podem ser validadas independentemente no final da transacção. Se a validação de uma destas transacções restartable falha, podemos voltar a executá-la para verificar se estamos na presença de um falso conflito, caso em que se pode continuar a execução, evitando a re-execução de toda a transacção. Esta abordagem foi implementada na JVSTM, um sistema de memória transaccional por software versionado, tendo melhorado o seu desempenho numa série de aplicações de teste.
Memória transaccional por software, redução de conflitos, re-execução parcial

junho 4, 2013, 10:30

Documentos da dissertação ainda não disponíveis publicamente

Orientação

ORIENTADOR

João Manuel Pinheiro Cachopo

Departamento de Engenharia Informática (DEI)

Professor Auxiliar