Nunca he encontrado que sean muy similares. Permítanme definir a los efectos de esta publicación un "nodo" para ser un hilo de hardware que se ejecuta en una máquina. Entonces, una máquina de cuatro núcleos tiene cuatro nodos, al igual que un grupo de cuatro cajas de un solo procesador.
Cada nodo normalmente ejecutará algún procesamiento, y será necesario que haya algún tipo de comunicación entre nodos. Por lo general, la primera instancia de esta comunicación le dice al nodo qué hacer. Para esta comunicación, puedo usar memoria compartida, semáforos, archivos compartidos, canalizaciones con nombre, sockets, llamadas a procedimientos remotos, COM distribuido, etc. Pero los más fáciles de usar, memoria compartida y semáforos, no suelen estar disponibles en una red. Los archivos compartidos pueden estar disponibles, pero el rendimiento es generalmente pobre. Los zócalos tienden a ser la opción más común y más flexible sobre una red, en lugar de los mecanismos más sofisticados. En ese punto, debe tratar los detalles de la arquitectura de red, incluida la latencia, el ancho de banda, la pérdida de paquetes, la topología de red y más.
Si comienza con una cola de trabajo, los nodos en la misma máquina pueden usar memoria compartida simple para hacer cosas. Incluso puedes escribirlo sin cerrojo y funcionará perfectamente. Con nodos en una red, ¿dónde colocas la cola? Si lo centraliza, esa máquina puede sufrir costos muy altos de ancho de banda. Intenta distribuirlo y las cosas se complican muy rápido.
Lo que he encontrado, en general, es que las personas que abordan este tipo de arquitectura paralela tienden a elegir problemas embarazosamente paralelos para resolver. Raytracing viene a la mente. No se requiere mucha comunicación entre nodos, aparte de la distribución de trabajos. Hay muchos problemas como este, sin duda, pero me parece un poco falso sugerir que la informática distribuida es esencialmente lo mismo que enhebrar.
Ahora, si va a escribir un subprocesamiento que se comporta de forma idéntica a un sistema distribuido, utilizando pasar mensajes puros y no asumir que ningún hilo sea el "principal" y tal, entonces sí, van a estar muy similar. Pero lo que ha hecho es fingir que tiene una arquitectura distribuida y lo implementó en hilos. La cuestión es que el enhebrado es un caso de paralelismo mucho más simple que la verdadera computación distribuida. Puede resumir los dos en un solo problema, pero eligiendo la versión más difícil y apegándose estrictamente a ella. Y los resultados no serán tan buenos como podrían ser cuando todos los nodos son locales para una máquina. No estás aprovechando el caso especial.
Transparencia de red es exactamente el término que estaba buscando. "muchas herramientas utilizadas para la comunicación entre procesos son redes transparentes", ¿algún ejemplo concreto? – sdcvvc