¿Cuál es la diferencia entre computación paralela y distribuida?

Los dos conceptos están muy relacionados; en su mayoría provienen de orígenes muy diferentes.

La computación paralela significa que ocurren diferentes actividades al mismo tiempo. El término se usó principalmente en computación científica (las computadoras de consumo hasta hace muy poco tiempo no eran paralelas) donde generalmente significa: extender una sola aplicación en muchos núcleos / procesadores / procesos para hacerlo más grande / más rápido. Las grandes computadoras paralelas actuales tienen de 100 mil a un millón de procesadores / núcleos / hilos / locomotoras paralelos.

La computación distribuida proviene del mundo de los negocios donde tiene sistemas distribuidos, como los sistemas de reserva de aerolíneas, donde muchas personas acceden y modifican los mismos datos al mismo tiempo. La maquinaria involucrada aquí suele estar mucho más suelta, y las actividades en un sistema distribuido suelen estar mucho menos sincronizadas.

Pero realmente, las distinciones no son del todo claras.

Por cierto, noto que tanto la respuesta de Atul Jangra a ¿Cuál es la diferencia entre la computación paralela y distribuida? y la respuesta de John Fawcett a ¿Cuál es la diferencia entre computación paralela y distribuida? están bajo la idea errónea de que una máquina paralela está contenida en una sola caja y que tiene memoria compartida. Esto ciertamente no es cierto. El paralelismo de la memoria compartida no es más que un tipo de paralelismo, la memoria distribuida es otro, y en este momento es el que tiene el paralelismo más masivo. Por ejemplo, la computadora de Texas Advanced Computing Center Stampede tiene 6000 nodos, cada uno con 16 núcleos. Eso es memoria compartida de 16 vías, y 360 veces más en paralelismo de memoria distribuida. Este equilibrio es típicamente para supercomputadoras paralelas.

La computación paralela es un término generalmente utilizado en el área de la computación de alto rendimiento (HPC). Se refiere específicamente a realizar cálculos o simulaciones utilizando múltiples procesadores. Las supercomputadoras están diseñadas para realizar cálculos paralelos. Estos sistemas no necesariamente tienen memoria compartida (como afirman incorrectamente otras respuestas). OpenMP, una herramienta utilizada en el espacio, funcionará en una sola máquina o grupos de máquinas que se encuentran en supercomputadoras.

La computación distribuida es un término que en realidad es más general que la computación paralela. Se podría usar la computación distribuida en el mismo sentido que la computación paralela para significar que la computación se distribuye entre muchas computadoras diferentes. Sin embargo, la informática distribuida se ocupa de aspectos adicionales distintos de la concurrencia. La informática distribuida trata con capacidades adicionales que pueden incluir consistencia, disponibilidad y tolerancia de partición. Estos tratan con las propiedades de un sistema distribuido en caso de diferentes tipos de fallas.

Un sistema como Hadoop o Spark son sistemas informáticos distribuidos que tienen capacidades para manejar fallas de nodos y redes. Sin embargo, ambos sistemas también están diseñados para realizar computación paralela. A diferencia de los sistemas HPC como MPI, estos nuevos tipos de sistemas pueden continuar con un cálculo masivo incluso si falla uno de los nodos computacionales.

Computación paralela vs distribuida

La computación paralela es un tipo de computación en el que múltiples procesadores ejecutan múltiples tareas simultáneamente.

La computación distribuida es un tipo de computación en la cual las computadoras en red se comunican y coordinan el trabajo a través del envío de mensajes para lograr un objetivo común.

===================================

Cantidad de computadoras requeridas

La computación paralela ocurre en una computadora.

La computación distribuida ocurre entre múltiples computadoras.

===========================================

Mecanismo de procesamiento

En computación paralela, múltiples procesadores realizan el procesamiento.

En la computación distribuida, las computadoras dependen del paso de mensajes.

=================================================

Sincronización

Todos los procesadores comparten un solo reloj maestro para la sincronización.

No existe un reloj global en la informática distribuida, utiliza algoritmos de sincronización.

================================================== ====

Memoria

En computación paralela, las computadoras pueden tener memoria compartida o memoria distribuida.

En informática distribuida, cada computadora tiene su propia memoria.

================================================== ======

Uso

La computación paralela se usa para aumentar el rendimiento y para la computación científica.

La informática distribuida se utiliza para compartir recursos y aumentar la escalabilidad.

servicios de computación en la nube en la india

La computación paralela es el uso de dos o más procesadores en combinación para resolver un solo problema. La escala de los procesadores puede variar desde múltiples unidades aritméticas dentro de un solo procesador, hasta múltiples procesadores que comparten memoria, hasta distribuir la computación en muchas computadoras. El paralelismo generalmente se trata de usar múltiples hilos simultáneos de cómputo internamente, para calcular un resultado final.

En la informática distribuida hay una red de computadoras que se comunican y coordinan su acción a través del envío de mensajes. Todas las computadoras en la red trabajan para lograr un objetivo común. La informática distribuida estudia procesadores separados conectados por enlaces de comunicación.

Podemos decir que la computación distribuida y la computación paralela están relacionadas entre sí. Las diferencias son:

Los modelos de procesamiento paralelo a menudo (pero no siempre) asumen memoria compartida (la computación paralela se clasifica para SIMD, MISD, MIMD con arquitectura de memoria compartida y distribuida).

Los sistemas distribuidos dependen fundamentalmente del paso de mensajes (sin memoria compartida).

El paralelismo es a veces el que contiene muchos procesadores que comparten un solo reloj maestro.

En la informática distribuida, no se utiliza ningún reloj global presente en estos algoritmos de sincronización.

Estoy de acuerdo con las respuestas Tanto el paralelismo como la distribución se implican mutuamente. No se pueden calcular varias cosas simultáneamente (paralelismo) sin tener que distribuir los cálculos en el espacio . Mientras tanto, la distribución significa que los núcleos hacen su trabajo independientemente uno del otro, es decir, hacen su trabajo en paralelo. Por eso la confusión.

Básicamente, el cómputo paralelo y distribuido significa lo mismo. Sin embargo, el paralelismo significa la simultaneidad temporal, mientras que la distribución enfatiza la distribución espacial. Los sistemas distribuidos, por lo tanto, tienden a ser multicomputadoras cuyos nodos están hechos de procesador más su memoria privada, mientras que la computadora paralela se refiere a un multiprocesador de memoria compartida . Es decir, la computadora paralela tiene todos sus nodos de cómputo compartiendo una sola memoria principal, por lo que los procesadores prefieren comunicarse bloqueando algo de memoria y escribiendo en ella, mientras que el multicomputador distribuido no ve la memoria común y, por lo tanto, se comunica utilizando una red, enviando mensajes el uno al otro.

aspecto [matemático]: paralelo vs. distribuido [/ matemático]

[matemáticas] actúa en: tiempo vs. espacio [/ matemáticas]

modelo de programación [matemática]: multiprocesador frente a multicomputadora [/ matemática]

memoria [matemática]: compartida vs. privada [/ matemática]

comunicación [matemática]: bloqueos + memoria compartida | mensaje que pasa [/ math]

Acoplamiento [matemático]: apretado vs. flojo [/ matemático]

La distribución puede hacerse para la confiabilidad donde la separación espacial más grande hace que los nodos sean más independientes y, por lo tanto, si uno falla, otro sobrevive y sigue prestando el servicio. La distribución también se puede realizar para un servicio de latencia reducida en el que los servidores se colocan más cerca del cliente que de los otros nodos. El procesamiento paralelo, por otro lado, aborda el procesamiento de alto rendimiento (HPS). Es decir, los procesadores se colocan más cerca y se conectan más estrechamente para realizar una sola tarea computacional grande más rápido y en menos tiempo. Es por eso que la gente dice que la informática distribuida implica menos acoplamiento .

En la computación paralela, una tarea se divide en componentes que se pueden calcular en paralelo. Por ejemplo, si está buscando correos electrónicos que contengan “De: papá” entre sus 100 correos electrónicos, sus correos electrónicos podrían dividirse en 10 grupos de 10 correos electrónicos cada uno y la búsqueda podría ser calculada simultáneamente por 10 máquinas.

En informática distribuida , las máquinas colaboran para resolver una tarea. Por ejemplo, imagine que las computadoras forman una red que abarca todo el país con algunas de ellas conectadas. Cuando le pide a su computadora en NYC que envíe un correo electrónico a su papá en LA, las computadoras pueden colaborar para encontrar la ruta más rápida de NY a LA usando un algoritmo distribuido como el algoritmo de Dijkstra y enrutar su correo. En cierto sentido, cada computadora está haciendo un cálculo local de la métrica requerida, digamos rutas más cortas, y las computaciones locales se combinan para llegar a una métrica global , como las rutas más cortas entre dos nodos.

En cierto sentido, la computación paralela es un tipo específico de computación distribuida.

Los términos computación paralela, computación distribuida y computación concurrente tienen muchas similitudes y, por lo tanto, tienen muchas superposiciones. Por lo tanto, no existe una distinción clara entre ellos, pero seguramente podemos señalar algunos.
Una de las principales diferencias entre la computación paralela y distribuida es la arquitectura subyacente del intercambio de memoria.
En la computación paralela, todos los diferentes “procesadores” tienen acceso a una memoria compartida. Esta memoria también se puede usar para compartir información entre diferentes procesadores en lugar de enviar mensajes explícitamente.
En Computación distribuida, todos los diferentes procesadores tienen su propia memoria privada no compartible. Por lo tanto, la información se intercambia entre los procesadores únicamente sobre la base de mensajes.
Ambos pueden estar contenidos en una sola computadora o en varias computadoras. En realidad, no hay límites cuando se trata de computación paralela y distribuida.

Estoy seguro de que podría entrar en detalles sobre esto, pero lo haré simple.

Paralelo generalmente significa contenido dentro de la misma computadora mientras se distribuye en varias computadoras. Mientras que en un modelo distribuido, las operaciones podrían realizarse en paralelo, el tiempo que lleva pasar mensajes entre procesos es mucho mayor que el del modelo paralelo.

Entonces, ambos usan múltiples procesos, pero la diferencia que define es la interfaz entre ellos. Distribuido normalmente tendrá algún tipo de interfaz de red, mientras que la interfaz para paralelo será bus de procesador y caché. Que obviamente este último es mucho más rápido.

Suponga que tiene una tarea de computación intensiva, como renderizar una secuencia de imágenes en movimiento usando sombreado y reflexión (CGI, trazado de rayos, etc.). La tarea podría ejecutarse en un procesador paralelo como una GPU, que tiene múltiples ‘sombreadores’, cada uno de los cuales ejecuta su propio hilo y comparte memoria con los demás, y organiza la lógica para todo el proceso. Los videojuegos emplean GPU para la velocidad y el realismo.

Para tareas realmente grandes, el trabajo se puede dividir en fragmentos, tal vez aún en marcos, y cada fragmento se envía a través de una red a una máquina diferente (computación distribuida). Los resultados se recopilarían y unirían para formar la película mediante un programa central. Una ‘granja de renderizado’ es un ejemplo. Otros ejemplos incluyen proyectos de ciencia ciudadana que generalmente trabajan en análisis de datos o modelos como Folding @ home

  • La computación paralela se refiere a los cálculos que ocurren en múltiples núcleos o procesadores al mismo tiempo. Hay 2 formas de lograr esto.
  1. Memoria compartida Paralelismo
  2. Paralelismo de memoria distribuida (Esto no es lo mismo que Computación distribuida)
  • La computación distribuida se refiere a la computación que ocurre en una red de computadoras que se coordinan entre sí por medio del envío de mensajes para acceder y modificar los datos simultáneamente.

Esto es a mi entender.

Estoy de acuerdo con la respuesta de Victor Eijkhout.

La computación paralela es el uso simultáneo de múltiples recursos computacionales para resolver un problema computacional, mientras que en la computación distribuida la carga computacional de un trabajo se divide en múltiples módulos / tareas ejecutables independientemente y estos módulos / tareas se asignan a varios nodos del Sistema distribuido.

  • La computación paralela está más estrechamente acoplada a subprocesos múltiples o cómo hacer uso completo de una sola CPU.
  • La computación distribuida se refiere a la noción de dividir y conquistar, ejecutar subtareas en diferentes máquinas y luego fusionar los resultados.

Sin embargo, la mayoría de los sistemas actuales utilizan una combinación de computación paralela y distribuida.