El paradigma de memoria compartida distribuida permite aprovechar la potencialidad de computación paralela que ofrecen los sistemas multicomputador. Estos sistemas son más escalables y menos costosos que los sistemas multiprocesador fuertemente acoplados. Su programación es simple, a diferencia de los sistemas distribuidos basados en paso de mensajes. En este artículo describimos el diseño y los detalles de implementación de DSM-PEPE, un sistema de memoria compartida distribuida que opera sobre multicomputadores basados en computadores personales con los sistemas operativos Windows y Linux. Con DSM-PEPE es posible ejecutar programas paralelos con semántica de memoria compartida, utilizando redes convencionales compuestas por estaciones de bajo costo. El sistema fue diseñado por niveles y utilizando orientación a objetos, lo cual facilita su modificación y portabilidad. De hecho, la mayoría del código es común para los dos sistemas operativos en los que opera. Se condujo una serie de experimentos con una aplicación paralela, y los resultados confirman la potencialidad de este tipo de sistemas como máquinas paralelas virtuales. Utilizando 8 procesadores, se consiguió una aceleración de 3,26 al multiplicar matrices de tamaño 2048 x 2048, bajando el tiempo de ejecución en casi 20 minutos. Actualmente trabajamos en la incorporación de multithreading y migración de threads, a nivel de los programas del usuario, así como en la inclusión de protocolos de consistencia relajados.