domingo, 23 de enero de 2011

Procesamiento secuencial y paralelo. Tareas, ordenadores y cerebro

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

No hay comentarios:

Publicar un comentario en la entrada