El procesamiento secuencial o paralelo
tiene una importancia trascendental en la eficiencia de los procesos
que se realizan. Esto incluye los procesos realizados por el cerebro,
por los ordenadores o por distintas organizaciones. Pero es importante
fijarse en las tareas. Unas se pueden paralelizar y otras no.
Se produce un procesamiento secuencial cuando una tarea va después de otra. Es un proceso lento en el que si una tarea se retrasa, el sistema completo debe esperar. La ventaja es que es fácil de entender y de implementar.
En el procesamiento paralelo, varios procesos ocurren al mismo tiempo
mejorando el rendimiento general del sistema. Su contrapartida es la
complejidad. No siempre se puede paralelizar una tarea. Aunque se pueda,
no siempre es fácil hacerlo. En principio, cuanto más nodos actúen en
paralelo, más rápido ira el sistema. Hasta cierto punto. Lo común es que
haya un límite en que añadir más nodos no aumente la eficiencia,
sino que incluso la reduzca. Normalmente las tareas en paralelo tienen
una fase secuencial al principio en la que se dividen las tareas y otra
al final en la que consolidan resultados.
Tareas secuenciales.
- Leer una novela (obligatoriamente una página detrás de otra, si no, el resultado varía).
- Consultar el saldo, dar dinero, actualizar el saldo (en un cajero automático)
- Ver a alguien, reconocerle, preguntarle por su familia.
Tareas paralelas
- Consultar entra varias personas palabras en la enciclopedia (personas en paralelo)
- Contar los votos en un proceso electoral (mesas en paralelo).
- Buscar los “López” en una base de datos. (se divide la base de datos en trozos y se busca en paralelo).
- Reconocer a una persona. Se analizan los rasgos faciales, el movimiento, los gestos, la voz, la entonación en paralelo.
Ordenadores
Haciendo de la necesidad virtud, los ordenadores se han movido del procesamiento secuencial al paralelo, hace
tiempo que la miniaturización de los componentes HW está llegando a su
fin. Cuanto más pequeños los chips, más rápidos y fiables. Pero
también se calientan más. Si no puedo fabricar procesadores más
rápidos ¿qué puedo hacer? La respuesta es: poner más. Así, los chips
actuales han pasado de ser de 1 core a multicore (procesador se
entiende a veces como core o unidad de proceso CPU y a veces como chip o
pieza de HW visible que con patillas se engancha a la placa base). Los
actuales chips son de 2, 4 u 8 cores.
Pero hacer trabajar a 8 cores supone ejecutar tareas en paralelo. Existen dos tipos de soluciones: trabajar con varias tareas distintas
en paralelo: una busca en internet, otra dibuja en la pantalla, otra
calcula un gráfico… La otra posibilidad es que una tarea se descomponga
en pasos paralelos que se ejecuten simultáneamente. Ya sabemos
que esto es difícil. La programación paralela puede ser muy compleja,
muchas tareas no lo permiten y los resultados no siempre son buenos (no
escalan bien, es decir, a partir de cierto punto, a más cores,
no hay más rendimiento). Así que es muy posible que un flamante chip de
8 procesadores tenga inactivos muchos de ellos la mayor parte del tiempo.
Los superordenadores son ordenadores con decenas de miles de procesadores en paralelo que procesan petaflops y consumen megavatios.
Cerebro
El cerebro es un órgano de procesamiento de información masivamente paralelo.
Cientos de miles de millones de neuronas actúan simultaneamente de una
forma en la que cualquier producto humano (superordenadores) palidece
en comparación.
Cada retina
tiene millones de conos y bastoncillos que perciben la luz, la procesan
y la envían a través del nervio óptico de forma simultanea. La
corteza visual procesa de forma paralela esta información para
reconocer puntos, rayas, rayas orientadas, rayas orientadas en
movimiento, objetos, caras… Sin perjuicio de que otras áreas y neuronas
puedan mantener el equilibrio corporal, escuchar una conversación…
El cerebro también procesa la información en serie
puesto que hay tareas que deben de procesarse en serie. Así, primero
se percibe, luego se decide y luego se ejecuta. Es muy notable que
somos conscientes algunos milisegundos después de haber tomado una
decisión de modo que un observador con el debido aparataje puede
conocer nuestra decisión antes que nosotros.
Cuando llegamos al pensamiento lógico, este es estrictamente secuencial, convirtiéndose en un cuello de botella.
Por ejemplo al realizar una operación matemática. Así mientras podemos
reconocer una cara en milisegundos, invertimos muchos segundos en
realizar una multiplicación compleja o fracasamos por completo. El
proceso secuencial del cerebro es más evidente aún en el paradigma de interferencia de tareas donde una tarea dificulta o impide la realización de otra, porque querámoslo o no, sólo podemos tomar una decisión al tiempo.