Programación paralela

Keywords: Programación paralela, C. A. R. Hoare, CPU, Cluster de computadores, Computación distribuida, Edsger Dijkstra, Exclusión mutua (informática), Hilo (informática), Multiplexación

La programación paralela o programación concurrente es una técnica de programación basada en la ejecución simultánea, bien sea en un mismo ordenador (con uno o varios procesadores) o en un cluster de ordenadores, en cuyo caso se denomina computación distribuida.

Los sistemas multiprocesador o multicomputador consiguen un aumento del rendimiento si se utilizan estas técnicas. En los sistemas monoprocesador el beneficio en rendimiento no es tan evidente, ya que la CPU es compartida por múltiples procesos en el tiempo, lo que se denomina multiplexación.

La esencia de la programación concurrente es la división de una tarea en múltiples sub-tareas que puedan ser realizadas relativamente independientemente unas de otras para combinarlas después.

Los padres de la computación paralela fueron Edsger Dijkstra y C. A. R. Hoare.

El mayor problema de la computación paralela radica en la complejidad de sincronizar unas tareas con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes, para garantizar la exclusión mutua en las zonas del código en las que sea necesario.

Temas relacionados

Keywords: Programación paralela, C. A. R. Hoare, CPU, Cluster de computadores, Computación distribuida, Edsger Dijkstra, Exclusión mutua (informática), Hilo (informática), Multiplexación