Las apli­ca­cio­nes y los juegos modernos suponen un reto cada vez mayor para el hardware. Además de los gráficos pa­r­ti­cu­la­r­me­n­te so­fi­s­ti­ca­dos y las enormes exi­ge­n­cias de memoria, la velocidad del núcleo del pro­ce­sa­dor es es­pe­cia­l­me­n­te im­po­r­ta­n­te para trabajar sin problemas con un PC o un portátil. Para hacer frente a estos retos, los fa­bri­ca­n­tes de hardware de­sa­rro­llan co­n­ti­nua­me­n­te nuevas técnicas y ar­qui­te­c­tu­ras para sus CPU. Una de estas técnicas es el mu­l­ti­th­rea­di­ng. Con ella, el pro­ce­sa­dor consigue procesar varios hilos (una pequeña unidad de cálculo) más o menos si­mu­l­tá­nea­me­n­te. ¿Cómo funciona esto?

Domain Name Re­gi­s­tra­tion
Proyecta tu marca con un gran dominio
  • Gratis SSL Wildcard para tra­n­s­fe­re­n­cias de datos más seguras
  • Gratis registro privado para más pri­va­ci­dad  

¿Qué es el mu­l­ti­th­rea­di­ng?

Para aumentar la velocidad del núcleo del pro­ce­sa­dor sin tener que cambiar la fre­cue­n­cia del reloj, el mu­l­ti­th­rea­di­ng permite a la CPU procesar varias tareas si­mu­l­tá­nea­me­n­te. Siendo más precisos: se procesan varios hilos al mismo tiempo. Un hilo puede en­te­n­de­r­se como una hebra de un proceso. Los programas pueden dividirse en procesos y éstos, a su vez, en hilos in­di­vi­dua­les. Cada proceso consta de al menos un hilo.

Los procesos suelen pro­ce­sar­se de forma se­cue­n­cial, es decir, un proceso tras otro. Esto no es óptimo, porque de esta manera las tareas tediosas bloquean el hardware. Si se necesita otro proceso de forma es­po­n­tá­nea, este tiene que esperar su turno en la cola. Con el mu­l­ti­th­rea­di­ng se procesan varios hilos de forma si­mu­l­tá­nea. Sin embargo, esta afi­r­ma­ción es solo pa­r­cia­l­me­n­te correcta: la si­mu­l­ta­nei­dad de verdad solo puede ga­ra­n­ti­zar­se en raras ocasiones, aunque puede co­n­se­gui­r­se en algunos casos.

De igual forma, la llamada pseu­do­si­mu­l­ta­nei­dad también pro­po­r­cio­na un aumento del re­n­di­mie­n­to: el sistema organiza y calcula los hilos de forma tan in­te­li­ge­n­te que el usuario tiene la impresión de estar pro­ce­sa­n­do si­mu­l­tá­nea­me­n­te. Esta forma de si­mu­l­ta­nei­dad no debe co­n­fu­n­di­r­se con las ca­pa­ci­da­des de las CPU mu­l­ti­nú­cleo, en el que, si el sistema tiene varios mi­cro­pro­ce­sa­do­res, también se procesan varios procesos de forma si­mu­l­tá­nea.

Para que el mu­l­ti­th­rea­di­ng se utilice efi­ca­z­me­n­te, el software debe estar preparado para ello. Si los de­sa­rro­lla­do­res no dividen (o no son capaces de dividir) sus programas en varios hilos, la te­c­no­lo­gía no fu­n­cio­na­rá. Los gamers, por ejemplo, han co­m­pro­ba­do a menudo que tienden a notar una caída del re­n­di­mie­n­to cuando se activa el mu­l­ti­th­rea­di­ng. En este caso, los juegos de ordenador no están diseñados con la te­c­no­lo­gía de mu­l­ti­th­rea­di­ng en mente. Por ello, el intento del sistema de procesar varios hilos si­mu­l­tá­nea­me­n­te tiene un efecto pe­r­ju­di­cial.

Objetivos del mu­l­ti­th­rea­di­ng

El objetivo final del mu­l­ti­th­rea­di­ng es aumentar la velocidad de cálculo de un ordenador y, por tanto, su re­n­di­mie­n­to. Para ello, se intenta optimizar la uti­li­za­ción de la CPU. En lugar de detenerse el sistema en un proceso durante mucho tiempo, aunque siga esperando datos, con el mu­l­ti­th­rea­di­ng el sistema pasa rá­pi­da­me­n­te a la siguiente tarea. De este modo, apenas hay tiempos de espera.

Al mismo tiempo, el sistema reacciona más rá­pi­da­me­n­te a los cambios de prio­ri­da­des. Cuando los usuarios o las apli­ca­cio­nes necesitan re­pe­n­ti­na­me­n­te y sin pla­ni­fi­ca­ción otra tarea, con la ayuda de los niveles de prioridad y los hilos cortos, el pro­ce­sa­dor también puede cambiar y dedicarse rá­pi­da­me­n­te a otra tarea.

La te­c­no­lo­gía está diseñada pri­n­ci­pa­l­me­n­te para acelerar apli­ca­cio­nes in­di­vi­dua­les que constan de varios procesos e hilos. De este modo, se pueden procesar varias tareas del mismo software más o menos en paralelo. Esto tiene sentido en la edición de vídeo, por ejemplo: una escena puede ser re­n­de­ri­za­da en segundo plano mientras el usuario está editando la siguiente escena.

Con el mu­l­ti­th­rea­di­ng, los fa­bri­ca­n­tes de chips tienen la po­si­bi­li­dad de acelerar sus CPUs sin generar un consumo de energía mucho mayor. Mientras que las fre­cue­n­cias de reloj más altas también generan más calor, que luego tiene que ser disipado de forma costosa, este no es el caso de los mu­l­ti­th­rea­di­ng.

¿Cómo funciona el mu­l­ti­th­rea­di­ng?

El mu­l­ti­th­rea­di­ng es el resultado de una in­ter­ac­ción entre el hardware y el software. Los programas y procesos se dividen en hilos in­di­vi­dua­les y la CPU los procesa en estas unidades más pequeñas. Se distingue entre el mu­l­ti­th­rea­di­ng basado en hardware y el basado en software.

Basado en hardware

Los programas in­di­vi­dua­les pro­po­r­cio­nan sus procesos divididos en hilos para el mu­l­ti­th­rea­di­ng basado en hardware. El sistema operativo se encarga de la gestión de los hilos y decide qué hilo se transmite primero a la CPU. A co­n­ti­nua­ción, el pro­ce­sa­dor procesa los hilos de forma si­mu­l­tá­nea o pseu­do­si­mu­l­tá­nea.

En la práctica, se pueden encontrar di­fe­re­n­tes im­ple­me­n­ta­cio­nes de mu­l­ti­th­rea­di­ng basadas en hardware.

Switch on Event Mu­l­ti­th­rea­di­ng (SoEMT)

SoEMT trabaja con dos hilos: uno en primer plano y otro en segundo plano. El cambio entre los niveles (lo que se denomina cambio de contexto) tiene lugar a través de eventos. Un evento de este tipo puede ser, por ejemplo, la entrada del usuario, pero también el mensaje de que un hilo sigue esperando datos y, por tanto, no puede seguir pro­ce­sá­n­do­se. A co­n­ti­nua­ción, el sistema cambia rá­pi­da­me­n­te al segundo hilo y mueve al primero a un segundo plano. El primer hilo solo se sigue pro­ce­sa­n­do cuando llega la in­fo­r­ma­ción requerida. Es entonces cuando el sistema reacciona rá­pi­da­me­n­te y crea una pseu­do­si­mu­l­ta­nei­dad entre los hilos en primer y segundo plano.

El Switch on Event Mu­l­ti­th­rea­di­ng también se conoce como Coarse-grained mu­l­ti­th­rea­di­ng. Se denomina de grano grueso porque la técnica es más adecuada para tiempos de espera más largos. Mientras que otras técnicas reac­cio­nan aún más rápido, SoEMT aprovecha sus fo­r­ta­le­zas con bloques de hilos más grandes.

Time-Slice-Mu­l­ti­th­rea­di­ng

Mientras que SoEMT activa el cambio entre hilos mediante un evento, con el time slicing se activan en in­te­r­va­los de tiempo fijos. Aunque no haya terminado de procesar el primer hilo, el pro­ce­sa­dor alinea otro y solo vuelve a cambiar en el siguiente intervalo para seguir tra­ba­ja­n­do en el primer hilo. Cualquier progreso en el pro­ce­sa­mie­n­to de un hilo se guarda en la memoria RAM.

El reto consiste en elegir la longitud adecuada del intervalo. Si el intervalo es demasiado corto, los procesos apenas pueden avanzar de forma si­g­ni­fi­ca­ti­va. En cambio, si el intervalo es demasiado largo, se pierde la pseu­do­si­mu­l­ta­nei­dad. En este caso, el usuario se daría cuenta de que los procesos se están pro­ce­sa­n­do uno tras otro en lugar de en paralelo.

Si­mu­l­ta­neous Mu­l­ti­th­rea­di­ng (SMT)

La técnica Si­mu­l­ta­neous Mu­l­ti­th­rea­di­ng (SMT) garantiza una verdadera si­mu­l­ta­nei­dad. Los pipelines acumulan los hilos que esperan a ser co­mpu­tados. El pro­ce­sa­dor procesa varios pipelines en paralelo. Así, en lugar de alternar entre dos hilos, las partes de los procesos se procesan si­mu­l­tá­nea­me­n­te. Un solo pro­ce­sa­dor actúa como varios pro­ce­sa­do­res (lógicos). En la práctica, la te­c­no­lo­gía SMT está vinculada a la te­c­no­lo­gía mu­l­ti­nú­cleo: con esta te­c­no­lo­gía, un sistema con dos núcleos de pro­ce­sa­mie­n­to puede aparentar tener ocho núcleos hacia el exterior.

Hecho

El fa­bri­ca­n­te de CPUs Intel tiene mucho éxito con la te­c­no­lo­gía de­no­mi­na­da Hyper-Threading (HTT). Mientras tanto, su co­m­pe­ti­dor AMD también produce te­c­no­lo­gías se­me­ja­n­tes. En ambos casos se trata de la técnica Si­mu­l­ta­neous Mu­l­ti­th­rea­di­ng.

mSZpDF-zUoI.jpg Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

Basado en software

Con el mu­l­ti­th­rea­di­ng basado en software, la apli­ca­ción es la re­s­po­n­sa­ble de dividir los procesos en hilos. Los hilos llegan de manera in­di­vi­dual al sistema operativo y al pro­ce­sa­dor. En este escenario, el hardware ni siquiera es co­n­s­cie­n­te de las co­ne­xio­nes y trata cada hilo de forma in­di­vi­dual. El sistema establece un nivel de prioridad para cada hilo. Los niveles más altos se procesan más rá­pi­da­me­n­te. Este sistema permite colar nuevos procesos que deben te­r­mi­nar­se con rapidez. En el caso del proceso a largo plazo, solo se completa un hilo, lo que supone que los si­guie­n­tes hilos acaben más atrás en la cola.

Hecho

El mu­l­ti­th­rea­di­ng basado en software es es­pe­cia­l­me­n­te útil para sistemas con pro­ce­sa­do­res de un solo núcleo. Dado que los or­de­na­do­res modernos están ahora equipados con CPUs de mínimo dos núcleos, esta forma de mu­l­ti­th­rea­di­ng es cada vez menos im­po­r­ta­n­te.

Mu­l­ti­th­rea­di­ng vs. mu­l­ti­ta­s­ki­ng

Aunque las dos te­c­no­lo­gías pueden parecer similares a primera vista, el mu­l­ti­ta­s­ki­ng y el mu­l­ti­th­rea­di­ng se basan en dos ideas di­fe­re­n­tes. En principio, el mu­l­ti­ta­s­ki­ng solo significa que varios programas se ejecutan al mismo tiempo. La CPU cambia entre las tareas in­di­vi­dua­les. Sin embargo, las apli­ca­cio­nes no se procesan si­mu­l­tá­nea­me­n­te (ni de forma si­mu­l­tá­nea ni de forma pseu­do­si­mu­l­tá­nea). Por regla general, el sistema operativo se encarga de la or­ga­ni­za­ción de las distintas tareas y asigna los procesos pe­n­die­n­tes a la CPU. Para el usuario, parece que se están pro­ce­sa­n­do varios programas si­mu­l­tá­nea­me­n­te, pero en realidad siempre se están al­te­r­na­n­do.

Consejo

Si abres el ad­mi­ni­s­tra­dor de tareas, puedes ver qué procesos tiene el sistema en ejecución uno al lado del otro. De igual manera, si abres el ad­mi­ni­s­tra­dor de tareas de Mac, puedes echar un vistazo a cómo están or­ga­ni­za­das las distintas tareas.

El mu­l­ti­th­rea­di­ng busca un mayor grado de si­mu­l­ta­nei­dad. Sin embargo, la te­c­no­lo­gía trata pri­n­ci­pa­l­me­n­te de acelerar los programas in­di­vi­dua­l­me­n­te. Mientras que el mu­l­ti­ta­s­ki­ng permite que di­fe­re­n­tes programas se ejecuten a la vez, los hilos in­di­vi­dua­les para el mu­l­ti­th­rea­di­ng se generan para un mismo programa. El pro­ce­sa­mie­n­to si­mu­l­tá­neo de estas etapas del proceso hace que el software funcione más rápido.

En resumen

El mu­l­ti­th­rea­di­ng es una forma in­te­li­ge­n­te y económica de aumentar el re­n­di­mie­n­to del pro­ce­sa­dor. Sin embargo, solo funciona si el software también está co­n­fi­gu­ra­do para ello. Si quieres aumentar el re­n­di­mie­n­to de tu ordenador sin utilizar el mu­l­ti­th­rea­di­ng, también tienes otras al­te­r­na­ti­vas. Sin embargo, si haces ove­r­clo­c­ki­ng de la CPU, debes prestar mucha atención a la te­m­pe­ra­tu­ra de la CPU, de lo contrario puedes hacer que todo tu sistema se paralice.

Ir al menú principal