Los sistemas de Memoria Compartida Distribuida (DSM) son el vehículo ideal para la programación paralela debido a las facilidades de programación que brinda la memoria compartida y a la escalabilidad de los sistemas distribuidos. El reto de construir un DSM es lograr una buena performance sobre un amplio espectro de programas paralelos sin requerir que los programadores reestructuren sus programas de memoria compartida.
Por su parte, en la implementación por software de estos sistemas, del tipo DVSM, se tiene la tendencia a una gran cantidad de comunicación que se debe realizar entre procesadores para mantener consistente la memoria. Desde la creación de los primeros DVSM se han aplicado diversas alternativas para aliviar este cuello de botella en la performance. La mayoría de ellas se concentran en los modelos de consistencia de memoria, i.e. se encargan de definir como se ve la memoria compartida frente al programador, determinan la interface entre el programador y el sistema [11]. Una tendencia en estas alternativas es el empleo de modelos relajados, los cuales aumentan la complejidad del protocolo pero reducen el tráfico en la red mientras siguen manteniendo consistente la memoria. Ejemplo de ello es la lazy release consistency (LRC) [1] en TreadMarks [7] o la scope consistency (ScC) [2] en JIAJIA v1.1 [5]. Otras implementaciones tratan de reducir el tráfico refinando protocolos de coherencia de memoria, como el protocolo de migración de home en JIAJIA v2.1 [8] y el de home migratorio en JUMP [4].