lunes, 2 de marzo de 2015

PROCESAMIENTO PARALELO



PROCESAMIENTO 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.

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.


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 requerir 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.


No hay comentarios:

Publicar un comentario