Paralelismo vs Concurrencia

Paralelismo vs Concurrencia

La concurrencia es la capacidad del CPU para procesar más de un proceso al mismo tiempo,en la concurrencia, los procesos en ejecución no tienen porqué estar relacionados, es decir, cualquiera puede iniciar y terminar en el momento que sea, y el resultado de uno no afecta al otro. 

Ventajas de la concurrencia 

  • Permite optimizar el uso de recursos en sistemas mono/multiprocesador. 

  • Fiable administración de los datos en sistemas con gran información 

  • Mejor aprovechamiento de la CPU 

Desventajas de la concurrencia 

  • Dificultad de verificación. 

  • En programas con pocas instrucciones en mas lento 

  • Si se aplica mal puede llevar a resultados erróneos. 

Paralelismo 

El paralelismo sigue la filosofía de “divide y vencerás”, ya que consiste en tomar un único problema, y mediante concurrencia llegar a una solución más rápido. El paralelismo lo que hace es tomar el problema inicial, dividir el problema en fracciones más pequeñas, y luego cada fracción es procesada de forma concurrente, aprovechando al máximo la capacidad del procesador para resolver el problema.  

La principal diferencia del paralelismo contra la concurrencia es que, en el paralelismo, todos los procesos concurrentes están íntimamente relacionados a resolver el mismo problema, de tal forma que el resultado de los demás procesos afecta al resultado final. 

Ventajas del paralelismo 

  • Resuelve problemas que no se podrían realizar en una sola CPU 

  • Resuelve problemas que no se pueden resolver en un tiempo razonable 

  • Permite ejecutar problemas de un orden y complejidad mayor 

Desventajas del paralelismo 

  • Mayor consumo de energía 

  • Mayor dificultad a la hora de escribir programas 

  • Dificultad para lograr una buena sincronización y comunicación entre las tareas 

Concurrencia vs Paralelismo 

Este puede llegar a ser uno de los puntos que más interés puede llegar a causar en los programadores y con justa razón, ya que son términos que pueden llegar a confundirse fácilmente, es por ello que es necesario aprender a diferenciarlos. 

Concurrencia 

Paralelismo 

Soporta dos o más acciones en progreso 

Soporta dos o más acciones ejecutándose simultáneamente 

Procesos que se ejecutan de manera independiente 

Procesos que se ejecutan Simultáneamente (tal vez relacionados) 

Lidiar con muchas cosas al tiempo 

Hacer muchas cosas al tiempo 

Sobre la estructura 

Sobre la ejecución 

 

Referencias

Grande, R. C. (2020, 10 julio). Paralelismo y Concurrencia - Rubén Cougil Grande. Medium. https://medium.com/@rcougil/software-paralelismo-y-concurrencia-ae6018f68d75 

¿Cuál es la diferencia entre concurrencia y paralelismo? DOKRY Desarrollo. (s. f.). Dokry. https://www.dokry.com/2208 

Rauber, T., & Rünger, G. (2013). Parallel Programming: For Multicore and Cluster Systems (2nd 2013 ed.). Springer. 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.