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

Simultáneamente: sucede en el mismo intervalo de tiempo. En los “viejos tiempos” cuando Unix era joven (y yo también …) había una CPU y todos los procesos que se ejecutaban en un momento dado recibían “porciones” de tiempo de procesador. Eran concurrentes pero no paralelos. No hay comunicación ni coordinación entre estos avances.

Paralelo: Ejecutando al mismo tiempo . El cómputo paralelo por definición requiere múltiples CPU (ignore la nomenclatura “núcleo” vs. CPU). En esta situación, más de un proceso concurrente puede ejecutarse simultáneamente .
Al igual que con el procesamiento concurrente, no hay comunicación ni coordinación entre estos avances.

Distribuido: varios programas se ejecutan simultáneamente y se comunican entre sí para realizar un cómputo colectivamente. La esencia de la computación distribuida es que una computación general se “distribuye” en múltiples procesos (generalmente, casi siempre, pero no necesariamente, usando múltiples procesadores) que realizan la tarea computacional general mediante la comunicación entre los procesos. Hoy (2015) generalmente hay muchos (8, 16, 24, 32) procesadores en una sola computadora. A menudo, varias computadoras (cada una con múltiples CPU) participan en un algoritmo distribuido. Los participantes en un sistema distribuido pueden estar ejecutando el mismo código o (típicamente) un código distinto.

La computación concurrente se refiere a múltiples procesos que se ejecutan al mismo tiempo en una máquina (en múltiples núcleos de CPU o múltiples subprocesos en un solo núcleo, o alguna combinación) en los que los diferentes procesos compiten por recursos (tiempo de CPU, acceso a archivos, etc.) Los procesos pueden o no estar relacionados, pero generalmente no están coordinados de ninguna manera.

La computación paralela se refiere a procesos que están diseñados intencionalmente para ejecutarse en múltiples núcleos de CPU, hacia un objetivo compartido. La programación paralela a menudo hace uso de lenguajes de programación especializados y bibliotecas que facilitan la tarea de dividir un problema en partes que pueden ejecutarse independientemente una de la otra. Algunos tipos de problemas son fácilmente paralelizables (por ejemplo, búsqueda de documentos), pero muchos no lo son.

La computación distribuida se refiere a los procesos que se ejecutan en máquinas separadas, donde las únicas comunicaciones son a través del envío de mensajes a través de algún tipo de red. Muchos problemas de computación paralela pueden ser abordados por una red distribuida de computadoras.

More Interesting

¿Qué consejos puede ofrecerle a un estudiante de primer año con especialización en ingeniería informática que no tiene idea de lo que realmente quiere?

¿Cuáles son las oportunidades además de la codificación para la ingeniería en graduados de informática?

¿Vale la pena completar un título en ingeniería informática si quieres estudiar ingeniería de software?

¿Cuáles son las posibilidades de que la ingeniería de software quede obsoleta por la automatización?

¿Cuáles son los trabajos en línea que puede hacer un estudiante de ingeniería informática de primer año?

¿Existe algún tipo especial de medio de almacenamiento de respaldo que, bajo circunstancias especiales, pueda retener su contenido eternamente?

¿Quién es más inteligente, un ingeniero informático UIUC o un IIT Topper?

¿Cognizant o L&T Infotech son una mejor compañía para un estudiante de primer año?

¿Cómo hace una computadora la recursividad desde el punto de vista del hardware?

¿Cuál es el primer lenguaje informático que debo aprender, teniendo en cuenta que voy a estudiar ingeniería informática el próximo año?

¿Cuál es su opinión sobre Ingeniería Informática?

¿Cómo va una especialización en Ciencias de la Computación y Matemáticas sobre la autoaprendizaje de Ingeniería Eléctrica e Informática?

Cómo descifrar una entrevista en el campus

¿Puedo obtener pasantías de 'trabajo desde casa' en mi primer año de ingeniería informática? ¿Vale la pena obtener una pasantía en el primer año?

Quiero estudiar ingeniería informática, ¿debería elegir USC, UCLA o UIUC?