Ahora, la carrera de los dos corazones

Uno ya no es suficiente
Fecha: 2005-04-17 00:00:00por: A. David Garza Marín (adgarza@mexico.com)

¿Dual Core? ¿Dos corazones? Curiosa expresión para ser integrada en la computación. Sin embargo, Dual Core es mucho más que los corazones de una computadora. En realidad se refiere al reciente ingreso de la tecnología x86 al mundo de la computación de mayor empuje y potencia, al alcance de usuarios y empresas comunes y corrientes.

Abundo, en el mundo de la tecnología ya existen arquitecturas donde los procesadores contienen más de un núcleo o core; es decir, el dual core se refiere a procesadores (sí, los cerebros de la computadora) que en un solo chip contiene, es decir, más de una parte funcional central en el procesador. Es como tener dos procesadores en uno. Pero eso no hay que confundirlo con Hyperthreading, la tecnología que Intel presentó a partir de Agosto del 2002 supuestamente para agilizar los procesos internos de la máquina, dado que esa tecnología emula a otro procesador a través de la virtualización. Semejante emulación poco o nada puede hacer para mejorar el rendimiento y para ser aprovechada hay que echar mano de procesos de afinación en el desarrollo de aplicaciones y en los sistemas operativos.

El doble núcleo o dual core se refiere a dos procesadores físicos metidos en un mismo chip, donde, en efecto, la potencia de procesamiento podría mejorarse sensiblemente dado que ahora el sistema podría llevar a cabo la multitarea con ayuda del multiprocesamiento... Pero vamos por partes, diría Jack el Destripador. :-)

¿Multitarea? ¿Multiprocesamiento? ¿Multiconfusión?
Está bien, está bien... Vamos poco a poco a entenderlo. Estamos en "Computación sin dolor" y por ello todo debe quedar bien claro. La multitarea es una cualidad de un sistema operativo para ejecutar más de una aplicación o servicio a la vez. Por ejemplo, en la actualidad estamos acostumbrados a usar computadoras donde pueden utilizarse varias aplicaciones al mismo tiempo; es decir, si se usa Windows podría ser que se utilizara un procesador de textos, una hoja de cálculo y un reproductor de MP3 para trabajar en el sistema (ello sin incluir un explorador Web y un lector de correo electrónico, entre otras cosas).

Lo anterior es, precisamente, multitarea: la capacidad de un sistema operativo de ejecutar más de una aplicación o servicio a la vez. Antaño en las PC se utilizaba un sistema operativo llamado DOS que sólo permitía ejecutar una aplicación a la vez: se usaba el procesador de texto, o la hoja de cálculo, pero no ambas al mismo tiempo. En la actualidad no es extraño usar un sistema operativo y abrir la cantidad de aplicaciones que nos permita el sistema.

Ahora bien, en gran cantidad de sistemas operativos, como Windows, hay una barra de tareas que se encarga de decirnos, mediante botones, qué aplicaciones tenemos abiertas en ese momento. Mire con detenimiento su barra de tareas. ¿Se ha dado cuenta que el grupo de botones parece una fila de vagones colocados uno detrás de otro, como un tren? Si hacemos una analogía, una locomotora podría jalar uno, dos, tres... 10 vagones... Tal vez 15... Pero cada vez que se agrega un vagón a la locomotora ésta requiere de un mayor esfuerzo para jalarlos, a la vez que el desplazamiento es cada vez más lento. Y es lo mismo que sucede con un sistema operativo: cada aplicación le va pesando al procesador y provoca lentificación en el sistema. Cada aplicación requiere de cierta potencia de la "locomotora" que es el procesador.

¿Qué sucede cuando una locomotora por sí sola ya no puede cargar con la cantidad de vagones que se han enganchado? Por lo general se agrega una segunda locomotora para que, en conjunto, puedan jalar con mayor eficiencia al cúmulo de vagones. Eso es lo que sucede en los equipos de cómputo, principalmente los llamados Servidores, a los que se les coloca un segundo procesador o más: coadyuvan a jalar con mayor celeridad al cúmulo de aplicaciones que se ejecutan en un equipo como tal. Eso es, precisamente, el multiprocesamiento.

La única diferencia respecto al ejemplo de las locomotoras es que el sistema operativo debe ser capaz de reconocer a ambos procesadores (locomotoras) y aprovecharlos a cabalidad. Por ejemplo, Microsoft Windows XP Professional, GNU/Linux, FreeBSD, OpenBSD, IBM OS/2 Warp, así como Windows 2000 y Windows NT Workstation reconocen y pueden utilizar uno o dos procesadores al menos. Pero, por ejemplo, DOS, Windows 9x/Me y Windows XP Home Edition no pueden reconocer más de un procesador, por lo que es indistinto colocar un segundo procesador en el equipo.

Y, ¿cuáles son las opciones?
En toda la historia del cómputo x86 jamás se había tenido la oportunidad de contar con tecnologías de esta índole: dos "locomotoras" en el mismo chip. En la actualidad, los dos principales fabricantes de procesadores x86, AMD e Intel, están en pos de ofrecer procesadores con dos núcleos físicos (insisto, Hyperthreading no es, de ninguna forma, tener dos procesadores, sino la emulación de un procesador virtual que poco o nada hace por mejorar el rendimiento). Sin embargo, aún cuando en ambos casos se trata de dos "locomotoras" en el mismo chip, la diferencia primordial entre uno y el otro se centra en la posición de las locomotoras: Mientras que AMD ha colocado las locomotoras una frente a otra, Intel las ha colocado una encima de otra. Ello permite evaluar la forma en que la segunda locomotora coadyuvará para el procesamiento de la información.

Otro de los puntos a favor de la tecnología ofrecida por AMD es que los procesadores de la gama AMD64 (Athlon 64 y Opteron) han sido diseñados *desde sus bases* para contener más de un núcleo. Eso significa que los procesadores están preparados para albergar al segundo núcleo por diseño, lo cual permite aprovechar la infraestructura adquirida para utilizar procesadores de doble núcleo en el sistema. Así, si ya se cuenta con servidores AMD Opteron, lo más seguro es que se puedan actualizar a doble núcleo, con lo que un servidor de dos procesadores, de pronto se convertiría en uno de cuatro procesadores con la misma infraestructura y con sólo aplicar una actualización al BIOS. Lo mismo ocurriría con los equipos PC que cuenten con el Socket 939. Ello significa que los procesadores de doble núcleo ofrecidos por esta empresa no necesitarían ni fuentes de energía de mayor potencia, ni procesos más eficientes de enfriamiento; con la infraestructura existente se podría aprovechar la nueva tecnología, sin mayor problema.

De esta forma, podría tenerse una mayor potencia de cómputo con la misma infraestructura, lo cual no necesariamente podría ser cierto con Intel, puesto que ni en los procesadores Pentium 4 ni los Xeon se avizoró la integración de tecnologías multinúcleo, ni tampoco los requerimientos de electricidad y emisión de calor derivados de ello. En pruebas generales se ha demostrado que un procesador AMD consume mucho menor electricidad a carga completa que un Intel en modo inactivo: "The move down to 90nm really reduced AMD's power consumption a lot, to the point where the 90nm Athlon 64 3500+ actually consumes less power under full load than the Pentium 4 630 at idle".

Así pues, el doble núcleo podría coadyuvar al equipo, no a ser más ágil, sino a ser más potente. Aún cuando podrían confundirse estos términos, la verdad es que son claros: con el uno (agilidad) se agrega velocidad o rapidez al equipo, y con el otro (potencia) se agrega poder o capacidad de ejecutar una mayor cantidad de tareas al mismo tiempo, con menores probabilidades de reducir su rendimiento. El uno agrega velocidad, el otro agrega constancia. Así, no hay que esperar que el equipo sea más ágil con el doble núcleo, pero sí más constante en su rendimiento. ¡Nos seguimos leyendo!


Más artículos de A. David Garza Marín
Artículos de hoy en Lapalabra.com

Fecha: 2005-04-17 00:00:00por: A. David Garza Marín (adgarza@mexico.com)