Conferencia - Transactional Memory Today

Co desenvolvemento dos procesadores multicore aumentou o interese no modelo multithread para a programación paralela, sacándoa do eido HPC a un moito máis amplo e xeral. Tradicionalmente, o paralelismo multithread e o acceso aos datos compartidos coordínase mediante mecanismos de sincronización explícita, tales como locks, semáforos, barreiras... Son esencialmente mecanismos non estruturados, que dificultan a abstracción e a composición e, sobre todo, limitan a concorrencia entre threads.

A concorrencia pode mellorarse empregando sincronización de gran fino, pero isto supón unha grande dificultade para o desenvolvemento de aplicacións multithread eficientes, sobre todo por programadores "non expertos". En 1977 D. Lomet observou que unha abstracción similar ás transaccións das bases de datos podería facilitar a coordinación dos accesos aos datos compartidos entre threads. Esta idea plásmase nunha proposta de implantación práctica en 1993, onde aparece por primeira vez o nome de memoria transaccional (TM). A idea básica consiste en protexer os accesos á memoria compartida por medio dunha transacción, abstracción que asegura atomicidade e illamento entre os distintos threads que acceden a eses datos. Hai que agardar á década dos 2000 para que se retome a idea de TM e empecen a aparecer as primeiras propostas de implementacións completas do modelo TM, tanto en software (STM) coma con soporte hardware (HTM e HyTM).

Especialmente na segunda metade desa década, desenvólvese unha grande actividade de investigación neste campo, principalmente no mundo académico, explorando todas as oportunidades que ofrece o espazo de deseño. A industria non é allea a esta actividade, aínda que cunha implicación un tanto tímida. Compañías como IBM ou Intel, por exemplo, realizaron implementacións STM nos seus compiladores, aínda que cuns resultados de rendemento mediocres. Sun, por outra banda, desenvolveu unha microarquitectura multicore, denominada Rock, que soportaba unha versión restrinxida de TM (best-effort HTM). Este proxecto está actualmente pechado. Con todo, na actualidade a situación está empezando a cambiar, aínda que dun xeito aínda tímido. Tanto AMD como Intel e IBM están empezado a ofrecer nas súas novas microarquitecturas, un soporte TM simplificado. Nesta conferencia revisaremos a evolución e situación actual dos sistemas de memoria transaccional, facendo un énfase especial nas propostas da industria, AMD ASF, Intel TSX e IBM Blue Gene/Q.