Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A nivel industrial y de alto rendimiento tenemos no solo procesadores multinúcleo, sino clusters
de ordenadores o multi-procesadores. Estos son capaces de ejecutar tareas de gran volumen
conectados a través de la red, y son los llamados superordenadores o supercomputadoras de las
que tanto escuchamos oír por su eso en los centros de datos mundiales y para la investigación.
En nuestra casa procesadores en paralelo casi para cualquier tarea, por ejemplo, nuestros móviles
cuentan con procesadores multinúcleo capaces de ejecutar varias tareas, nuestros ordenadores
también e incluso los televisores inteligentes ya cuentan con procesadores de este tipo.
¿Qué problema tiene aumentar más y más la frecuencia? Pues que es un elemento directamente
proporcional al consumo, y a su vez esto influye en la temperatura generada.
El pipeline es la capacidad del procesador de trabajar con varias instrucciones a la vez, cada una de
ellas situadas en una etapa distinta. Cuanto nos referimos a etapas son las típicas de la
arquitectura RISC: pedir instrucción -> decodificar -> ejecutar -> acceso a memoria -> escritura que
estudiamos en asignaturas de computación o informática.
Paralelismo de datos
En este nivel lo que se pretende dividir es la entrada de datos de un programa, que trasladado a
nivel de procesador consistiría en asignar un subconjunto de datos a cada procesador o núcleo
para que ejecuten la misma secuencia de operaciones. Un ejemplo claro de esto es el trabajo con
vectores y matrices, algo muy utilizado en los procesadores gráficos en donde en aplican
operaciones similares en grandes conjuntos.
Paralelismo de tareas
Ahora es turno de ver lo más importante, ¿qué formas hay de ejecutar tareas en paralelo? Y ya
hemos visto la más cercana y clara a nosotros: los procesadores multinúcleo, pero hay algunas
más.
Procesadores multinúcleo
Esta es la tendencia actual desde hace más de 10 años ya, concretamente desde sus inicios en
2004 como hemos comentado antes. En un procesador multinúcleo tenemos más de una unidad
de ejecución, lo que llamamos núcleos o cores. De esta forma un procesador con varios núcleos
puede ejecutar tantas instrucciones de forma paralela como núcleos tenga, y además de forma
secuencial y de distinta naturaleza entre ellas.
Pero además de esto, se une la condición de procesador superescalar antes vista, en donde cada
núcleo puede ejecutar más de una tarea en un solo ciclo de reloj. Esto se hace creando
subprocesos, hilos o threads, que es un flujo de instrucciones más simple que optimiza y
disminuye los tiempos de espera de cada núcleo. La esta tecnología se le denomina
Multithreading, y se aplica en forma de HyperThreading en Intel y SMT en AMD, creando así
procesadores con dos hilos o procesadores virtuales por cada núcleo físicos.
Este es el segundo caso que por lógica nos vendría a la mente si nos imaginamos dos procesadores
en paralelo. Efectivamente se trata de tener una placa o PCB en donde dos o más procesadores
idénticos entre ellos trabajan con recursos compartidos como será una memoria principal y un bus
de datos. A esto también se le llama UMA (Uniform Memory Access).
Lo bueno en este método es su escalaridad al encontrarnos con placas que soportan hasta 32
procesadores, y al hecho de tenerlo todo ubicado en un solo sistema físico. Por el contrario,
presenta una clara desventaja como es tener que compartir bus de datos, el cual debe ser
controlado y arbitrado para que esté disponible para la CPU que solicite acceso, generando
tiempos de espera en las otras unidades.
Procesadores en clúster
este es el caso que más uso tiene en el sector de supercomputación, ya que los superordenadores
más potentes del mundo trabajan con este método de procesamiento en paralelo y con el
siguiente en la lista.
El procesamiento en paralelo es una de las implementaciones que más beneficios han traído en la
era actual, creándose verdaderos monstruos del procesamiento de información a nivel mundial. El
llamado TOP500, los ordenadores más potentes del mundo, el procesamiento en paralelo.
Pero también la mayoría de servidores de red actuales cuenta con varios procesadores en
paralelo, virtualizados o simplemente CPU con varios núcleos en su interior. Nosotros mismos
somos los mayores beneficiarios del procesador en paralelo gracias a los Intel Core, AMD Ryzen de
PC, o los procesadores de nuestros teléfonos móviles.