Definición de Proceso Paralelo
Un proceso paralelo es aquel que se realiza al mismo tiempo que otro, siendo ejecutados ambos de modo simultáneo. Cuando hablamos de procesos paralelos en un ordenador, nos referimos a aquellos procesos que se ejecutan y/o procesan a la vez, anteponiéndose a los procesos lineales o secuenciales, que serán ejecutados de uno en uno.
El proceso paralelo sólo es posible si disponemos de varias unidades de proceso, generalmente núcleos o procesadores. Esto se debe a que los procesadores son secuenciales, esto es, ejecutan las órdenes una por una, y por tanto no pueden ejecutar dos a la vez. Para solucionar esto se han inventado diversas fórmulas, como añadirles coprocesadores, derivar las operaciones a otros equipos conectados entre si, disponer de múltiples núcleos… etc. Vamos, en definitiva tener un sistema con una estructura capaz de trabajar junta y compartir tareas, lo que se llama un proceso cooperativo.
El proceso en paralelo tiene muchas ventajas sobre el sistema secuencial clásico. Permite salvar el llamado cuello de botella, algo que sucede en los atascos y también en el ordenador: si un proceso funciona lentamente, los demás deben esperar a que se termine para ejecutarse, con lo cual el rendimiento del ordenador se verá afectado en gran medida. Con un sistema en paralelo, aunque un proceso sea lento, el resto continúan ejecutándose, lo que permite evitar este efecto. Sin embargo, el proceso en paralelo tiene un gran inconveniente: es mucho más complejo, básicamente porque para que un sistema trabaje en paralelo debes indicarle a donde derivar cada proceso, y esta tarea requiere ser hecha de antemano, o al menos tomar decisiones en el momento previo a ejecutar los procesos. Esto puede ralentizar el inicio de las tareas, al requierir cálculos previos. Además algunas tareas pueden no ser divisibles, o el programa haber sido diseñado para que los pasos se hagan uno a uno, con lo cual el procesamiento paralelo lejos de ayudar puede entorpecer la ejecución.
Existen varios métodos para hacerlo: uno es descomponiendo cada proceso en procesos más pequeños de los cuales se encargará cada núcleo individualmente (esto es, dividir las tareas en otras más pequeñas) y otro sería derivar los procesos según el tipo que sean hacia la unidad más adecuada para ejecutarlos. Pongamos un ejemplo en donde se verá bien esto último: un programa que va a realizar dos tareas, tocar música y hacer unos cálculos. Si disponemos de una tarjeta de sonido, la música irá a ella para que se ejecute y los cálculos al coprocesador matemático. Cada tarea viaja entonces a un sistema que las procesará muy eficientemente pues ha sido diseñado con ese fin.
Como vemos, el proceso en paralelo es algo que se puede dar dentro de un ordenador con un solo procesador, o bien en un ordenador con múltiples procesadores, e incluso en múltiples ordenadores conectados entre si por medio de una red. En este sentido, ya existen en Internet desde hace tiempo redes de ordenadores interconectados que emplean los procesos paralelos para ahorrar tiempo y costes en proyectos de gran envergadura.
Por Sistemas, el 16/02/2005.