Si un ordenador fuera humano, entonces su unidad de procesamiento central sería el cerebro. Como ya se ha dicho varias veces en esta web, la CPU es un microprocesador, que es básicamente un motor de computación en forma de chip. Mientras que los microprocesadores son pequeños, son también muy potentes. Pueden interpretar miles y millones de instrucciones por segundo. Aun así, hay algunos problemas de cálculo en este campo que son tan complicados, que incluso el microprocesador más potente requeriría años para solucionar.
Los científicos dedicados a la tecnología moderna usan diferentes técnicas para dedicar sus esfuerzos a este problema. Una de estas aproximaciones es buscar microprocesadores más potentes. Normalmente esto significa hacer encajar más transistores en un chip informático. Los ingenieros de computación ya están construyendo microprocesadores con transistores que son extremadamente pequeños, midiéndose en nanómetros. ¿Cómo de pequeño es un nanómetro? Pues es una billonésima parte de un metro. Si tienes dudas, puedes estar seguro de que es algo muy diminuto.
Construir microprocesadores más potentes requiere un proceso de producción muy caro e intenso. Algunos problemas de computación necesitan años para ser resueltos incluso con el beneficio de procesadores muy potentes.
Parcialmente por motivo de estos factores, los científicos usan una tecnología que les puede ayudar bastante, y es el procesamiento paralelo. En general, el procesamiento paralelo significa que al menos dos microprocesadores manejan partes de la totalidad de una tarea.
El concepto es bastante sencillo: Un científico en ordenadores divide un problema complejo usando un software especial específicamente diseñado para la tarea. El programa ensambla los datos para llegar a la conclusión final del complicado problema original.
Es una manera de algo nivel para decir que es más fácil realizar el trabajo su se puede compartir la carga. Se puede dividir la carga entre diferentes procesadores localizados en el mismo ordenador, o se pueden conectar varios ordenadores entre si y dividir la carga entre ellos. Hay varias maneras de conseguir la misma meta. ¿Cuáles son las diferentes técnicas en el procesamiento paralelo?
Para entender el procesamiento paralelo, necesitamos revisar cuatro modelos básicos de programación. Los científicos defines estos modelos basándose en dos factores: El número de instrucciones y el número de peticiones de datos que el ordenador puede manejar.
Estas instrucciones son realmente algoritmos. Un algoritmo es simplemente una serie de pasos diseñados para resolver un problema en particular. La petición de datos es información sacada de la memoria del ordenador usada como valores de entrada a los algoritmos. El procesador conecta los valores de los datos dentro de los algoritmos desde la serie de instrucciones. Entonces, inicia la operación para obtener resultados.
Los ordenadores de instrucciones únicas de datos (SISD) tienen un procesador que maneja un algoritmo usando una fuente de datos cada vez. El ordenador recoge y procesa cada tarea en orden, por lo que algunas personas usan la palabra “secuencial” para describir este tipo de ordenadores. No son capaces de realizar procesamientos paralelos por sí mismos. Los ordenadores de instrucciones múltiples y datos únicos (MISD) tienen varios procesadores.
Cada procesador usa un algoritmo diferente, pero comparte los mismos datos de entrada. Estos ordenadores pueden analizar el mismo conjunto de datos usando diferentes operaciones al mismo tiempo. El número de operaciones depende del número de procesadores. No hay muchos casos reales de los MISD, en parte porque los problemas que pueden calcular son poco comunes y son especializados.
Luego tenemos los de instrucción simple pero de datos múltiples (SIMD), que son ordenadores que tienen varios procesadores que siguen el mismo conjunto de instrucciones, pero cada procesador mete distintos datos en esas instrucciones. Los ordenadores SIMD funcionan con diferentes datos por medio del mismo algoritmo. Esto puede ser útil para analizar largos trozos de datos basándose en el mismo criterio. Muchos problemas de computación no encajan en este modelo.
Por último tenemos los de múltiples instrucciones y múltiples datos (MIMD), cada uno capaz de aceptar sus propias instrucciones enviadas independientemente desde otros. Cada proceso también envía datos desde una fuente separada. Un ordenador MIMD puede ejecutar varios procesos al mismo tiempo. Estos ordenadores son más flexibles que los otros mencionados, pero es más difícil crear algoritmos complejos para que estos equipos funcionen.
De forma individual, cada procesador trabaja de la misma forma que cualquier otro microprocesador. El procesador actúa con instrucciones escritas en lenguaje de ensamblado. Basándose en estas instrucciones, los procesadores realizan operaciones matemáticas de datos sacados de la memoria del ordenador. Los procesadores pueden también mover datos a una diferente localización de memoria.
En un sistema secuencial, no es un problema de los valores de los datos cambian como resultado de una operación del procesador. El procesador puede incorporar el nuevo valor en futuros procesos y continuar. En un sistema paralelo, los cambios en valores puede ser problemático.
Si múltiples procesadores están trabajando desde los mismos datos pero estos cambian con el paso del tiempo, los valores en conflicto pueden causar que el sistema falle o se quede colgado. Para prevenir esto, muchos sistemas de procesamiento algún tipo de mensajes entre procesadores.
Los procesadores delegan en software para enviar y recibir mensajes. El software permite al procesador comunicar información a otros procesadores. Al intercambiar mensajes, los procesadores pueden ajustar los valores de los datos y mantenerse sincronizados entre ellos.
Esto es importante porque una vez que todos los procesadores acaban sus tareas, la CPU debe ensamblar todas las soluciones individuales en una solución general para el problema de computación original. Se puede pensar en ello como un puzzle – si todos los procesadores se mantienen sincronizados, la piezas del puzzle encajan entre si sin problemas. Si los procesadores no están sincronizados, las piezas puede que no encajen para nada.