Menu
in

El furor del procesamiento en paralelo

En los últimos tiempos ha empezado a surgir, en todos los ámbitos de la informática, una nueva ideología. Ya no se trata de conseguir el máximo rendimiento con un sólo componente llevándolo hasta el límite, sino con varios de los actuales trabajando en simultáneo. A continuación veremos cada una de las aplicaciones -en materia de hardware- que aparecieron a partir de este cambio de rumbo.Quizás no les resulte nada novedoso este punto de vista acerca del destino del ordenador de escritorio, tal como lo conocemos actualmente. En estos últimos años han salido los primeros ejemplos de esta nueva tendencia, como ser los procesadores de doble núcleo (dual core), el doble canal de memoria (dual channel), el arreglo de discos duros (RAID) y el procesamiento en paralelo de gráficos tridimensionales (SLI o CrossFire, según el fabricante de los chips). No hay lugar a dudas que todas estas tecnologías constituyen el futuro de cada uno de los componentes mencionados, debido a cuestiones físicas que empiezan a imponer los límites máximos de funcionamiento. Por estos motivos es que ya no es posible seguir subiendo las velocidades de los componentes en forma individual. Con este panorama, las soluciones que existen desde hace tiempo en el mercado de los servidores empiezan a tener sentido en ordenadores de escritorio, como la utilización de varias unidades centrales de proceso en paralelo. Claro que en este sector se manejan otros costos, por lo que hay que adaptar estas soluciones a las plataformas actuales para mantener un mínimo margen de compatibilidad.
Hecha la introducción, estamos en condiciones de empezar a revisar cada una de estas cuatro tecnologías, sus principios básicos de funcionamiento y disponibilidad actual.

Últimamente se ha hablando mucho acerca de utilizar dos módulos de memoria en lugar de uno para -si la placa madre lo soporta- duplicar el ancho de banda de la memoria RAM del sistema con el procesador. Sin embargo, no todo es tan sencillo como parece, ni tampoco se obtiene el beneficio que menciona la teoría al aplicar el doble canal en nuestros ordenadores.
Partiendo desde lo básico, sabemos que las memorias de tipo DIMM tienen una interfaz de 64 bit por cada módulo. Considerando que las DDR más utilizadas hoy en día funcionan a 400 MHz (200 DDR), el ancho de banda es de 3.2 GB por segundo. El concepto de doble canal permite la utilización de dos módulos en forma simultánea, creando un ancho de banda hacia el procesador de 6.4 GB por segundo, gracias al bus de 128 bit generado por los dos módulos de 64 bit.
El dilema se presenta en la comunicación con el bus frontal de la CPU. Las primeras placas madres en soportar esta tecnología fueron las diseñadas para Pentium 4-C y Athlon XP (incluido Sempron y Duron XP). El procesador de Intel, que tiene un bus frontal (FSB) de 800 MHz (6.4 GB/s), es el único de los dos que presenta las condiciones para aprovechar el doble canal. En cambio, la línea de AMD sólo posee bus frontal de 333 y 400 MHz, por lo que se desperdicia la mitad el ancho de banda ganado por el doble canal y, por consecuencia, no tiene influencias positivas en el rendimiento del ordenador en su conjunto. Por su parte, las ganancias que obtienen los sistemas basados en Pentium 4 tampoco son los esperados. En general, el ancho de banda se incrementa en un poco más de 60%, mientras que la performance obtenida varia según la aplicación que se esté ejecutando, pudiendo incrementarse hasta en un 30% o 40% en el mejor de los casos. El principal beneficiado al activar el doble canal es el adaptador de video integrado que se suele incluir en algunos modelos de placas madre, que lo colocan a la par de las tarjetas gráficas de su mismo rango que se consiguen por separado,

A pesar de estos resultados, los fabricantes continuaron dando su apoyo a la tecnología de doble canal. Así es como AMD lanzó el Athlon 64 de zócalo 939, que como toda la familia de Athlon 64 y Sempron, incluye el controlador de memoria integrado en el encapsulado. Luego de que las líneas de 754 contactos no tuvieran soporte para doble canal, el mismo reapareció en los de 939 recién mencionados, que funcionan con un bus de 800 MHz o 1 GHz (el famoso enlace Hyper-Transport). A su vez, Intel continuó con su elevado bus frontal de 800 Mhz en los Pentium 4 con núcleo Prescott. Ésto aseguró que la tecnología de doble canal se mantenga vigente y con posibilidades de mejorar su desempeño en el futuro.
Actualmente, la mayoría de los fabricantes de módulos de memoria RAM, como Corsair, Kingston y OCZ, ofrecen al público sus productos de a pares (en “kits”) para fomentar el uso del doble canal. Pero vale aclarar que aquellos usuarios que no tengan los equipos preparados para aprovechar esta tecnología, como ser placas madres sin soporte en su northbridge o procesadores de AMD como los Athlon XP, no conviene adquirir dos módulos de memoria por separado, sino uno sólo con la capacidad deseada. En cambio, en un equipo medianamente actualizado, uno de estos populares kits de doble canal -especialmente los del tipo DDR2– puede llegar a mejorar el desempeño del sistema en las aplicaciones que manejen mucho movimiento de datos entre el procesador y la memoria, como ser los videojuegos.

Ya sobre los límites físicos del silicio, los dos gigantes de los semiconductores (Intel y AMD) comenzaron a modificar el esquema de sus productos, dejando de lado la velocidad de clock para darle prioridad a otros aspectos. Intel introdujo la primera idea acerca del posible rumbo de los procesadores con su tecnología llamada Hyper-Threading. Gracias a ésta, el sistema operativo “veía” dos unidades centrales de proceso lógicas (habiendo una sola física) y, si la aplicación estaba optimizada para sacarle provecho a las dos, la mejora de rendimiento subía un 30% o 40%.
Pero el Hyper-Threading no fue otra cosa que el paso previo a toda la nueva camada de procesadores con dos núcleos (dual core). En los actuales Pentium D y Extreme Edition (EE), Intel juntó en una sola pastilla de silicio dos núcleos Prescott, los últimos disponibles de la plataforma Pentium 4, y sin modificar en forma radical la arquitectura NetBurst. Es por ello que cada núcleo mantiene su propia caché L2, y ambos están conectados al bus frontal de 800 o 1066 MHz. Esta primera implementación cambiará en el futuro, ya que Intel desechó la arquitectura NetBurst para darle paso a una completamente nueva. Por lo pronto, los modelos disponibles de Pentium D -fabricados bajo un proceso de 90 nanómetros- varían desde los 2.8 GHz hasta los 3.2 GHz, mientras que el Extreme Edition -el único que todavía cuenta con soporte para Hyper-Threading- corre a 3.2 GHz. Además, los Pentium D y EE basados en el núcleo Presler (de 65 nm) alcanzan los 3.4 GHz para el primero, y 3.46 GHz para el segundo; este último es el procesador más poderoso de Intel en la actualidad, con un bus frontal de 1066 MHz.

Por otra parte, quien ha sido pionero en cuanto a integrar dos núcleos en una cápsula es AMD. Fue la primera compañía en ofrecer un procesador dual core, con su conocida línea Athlon 64 X2. Ésto se dio, en parte, gracias a la experiencia adquirida con el Opteron, una CPU destinada al mercado de los servidores que presentaba características internas que luego fueron implementadas en el X2. Por ejemplo, y a diferencia de Intel, existe una interconexión entre los núcleos. A pesar de estar conectados internamente, su comunicación con el resto del sistema -el enlace Hyper-Transport- sigue siendo uno sólo, tal como en los procesadores de un sólo núcleo. Esta característica hace que no sea necesario modificaciones en el chipset de las placas madre para soportar estas CPU, manteniendo una buena compatibilidad con las soluciones actuales. A lo sumo es requerido una actualización de BIOS para un correcto reconocimiento del procesador.
En el mercado de hoy en día, es posible encontrar dos líneas de productos de doble núcleo. Por un lado está el Manchester, que incluye dos núcleos Venice con 512 KB de caché L2 en cada uno, mientras que al otro se lo conoce como Toledo, conformado por dos San Diego que traen 1 MB de caché por núcleo. Comercialmente se los denomina Athlon 64 X2, y sus velocidades van desde los 2 GHz (3800+) a los 2.4 GHz (4800+). A su vez, hace poco tiempo salió una versión dual core de la línea FX de AMD, conocido como Athlon 64 FX-60. Funciona a 2.6 GHz y trae 1 MB de caché L2 por núcleo.
Por el momento no hay aplicaciones que justifiquen el gasto que demandan estos productos, pero es cuestión de tiempo hasta que se comiencen a utilizar en forma efectiva los dos núcleos, posibilitando enormes ventajas en cuanto al desempeño del sistema en ciertas tareas especificas y, a su vez, en el ámbito general de la informática.

Los discos duros son, hoy en día, el componente más lento del ordenador si lo comparamos con otros como la memoria, la placa de video o el mismísimo procesador. Su fuerte es la capacidad de almacenamiento de datos, pero los tiempos de acceso a éstos siguen siendo demasiado extensos para lo que se maneja comúnmente en el rubro. Por ello, la aparición de la tecnología RAID (Redundant Array of Independent Disks, o arreglo redundante e independiente de discos) es un notable avance en este aspecto. Aunque su aplicación no se limita allí, sino que se utiliza para otros fines como la copia de seguridad de información crítica.
Lo primero que necesitamos para crear un RAID es que el chipset de la placa madre tenga el soporte adecuado. En un primer momento, esta tecnología era exclusiva de los discos Serial ATA (S-ATA), pero ahora ha surgido la posibilidad de crearlos de forma mixta (S-ATA y P-ATA). La segunda recomendación apunta a la utilización de discos idénticos en marca, capacidad y características, por diversas cuestiones que tienen que ver con el funcionamiento de los modos de RAID que explicaremos a continuación.

El modo JBOD (Just a Bunch Of Disks) no tiene nada de especial y es el más básico de todos. Simplemente, se toman las capacidades de todos los discos instalados y se suman, creando una sola unidad lógica -que es lo que “ve” el sistema operativo- con la cifra obtenida. O sea que si tenemos dos discos de 250 GB, con JBOD formaremos una sola unidad de 500 GB. Ésto no presenta ninguna ventaja en cuanto a velocidad o seguridad, como si lo hacen los siguientes.
El modo RAID 0 es el destinado a mejorar los tiempos de acceso que antes mencionábamos, a expensas de correr el riesgo de perdida de la información. Aquí también se unen dos o más discos físicos para crear uno lógico, pero se emplea la técnica conocida como stripping que divide los datos a almacenar en porciones iguales, cada una de las cuales se aloja en un disco distinto. Así, al momento de escribir, el proceso se realiza en forma paralela, ganando una velocidad considerable en el proceso. Lo mismo sucede para leer, ya que cada una de las porciones de un dato es accedida por una cabeza lectora distinta y en simultáneo. El problema de este modo es que, si algún disco se daña, todo el RAID deja de funcionar y los datos almacenados se pierden. Cabe aclarar que, al utilizar discos de distinta capacidad, el tamaño de la unidad lógica es igual al doble del disco más pequeño. Por ejemplo, teniendo uno de 80 GB y otro de 60 GB, el volumen total será de 120 GB.
El modo RAID 1 es el que prefieren aquellos que consideren crítica la información alojada en sus discos. En este caso, el algoritmo utilizado se denomina mirroring, o en español, espejado. Este modo utiliza el segundo disco instalado a modo de copia de seguridad; cada uno de los datos que se escriban en el primer disco, también se alojarán en el segundo. De esta manera, si uno de los volúmenes falla o sufre algún daño, la información estará intacta en el restante. Como verán, aquí no hay ganancias en cuanto a tiempos de acceso, pero sí en la seguridad de la información. En RAID 1, la capacidad de la unidad lógica es igual a la de uno de los discos. Si son distintos, como ser uno de 30 GB y otro de 40 GB, indefectiblemente el tamaño estará delimitado por el menor de ellos (30 GB en este ejemplo).
Además de éstos, existen otros modos como la combinación RAID 0+1, que requiere de al menos cuatro discos (dos para stripping y dos para mirroring), con la cual se consiguen los beneficios de ambos modos. A su vez, también existen RAID 5 y RAID 6, que presentan características similares a los comentados anteriormente y algunas ventajas más, y otra combinación como RAID 10. Por cuestiones de costos, estos últimos modos nombrados no se han impuesto en el mercado y sólo están destinados para los que cuenten con el capital económico para llevarlos a cabo.

El paralelismo también se empezó a aplicar en el campo de las tarjetas de video, y no fue ni NVIDIA ni ATI la compañía que presentó una novedad de esta magnitud. Quienes tengan un poco de memoria, seguramente recordarán el chip Voodoo 2 de la difunta 3DFx, que fue el primero en utilizarse en configuración SLI. Este modo de conexión requería de dos placas PCI con este chipset (algo “aparatoso” considerando el tamaño de las mismas), que se interconectaban mediante un cable interno y, a su vez, también se unían a partir de sus salidas hacia el monitor. Los resultados eran asombrosos, logrando una diferencia de casi el 50% con respecto a la utilización de una sola tarjeta de video. Años más tarde, NVIDIA compraría la compañía 3DFx y, con ello, la licencia de uso del SLI. La implementación de esta tecnología se demoró hasta 2004, momento en que las GeForce 6800 hacían su aparición (el NV45). A partir de allí, la mayoría de los modelos de procesadores gráficos de gama media y alta contaron con soporte para SLI, como el 6600 GT, 7800 GTX , por citar un par de ejemplos.
La forma de interconexión de las placas ha cambiando con respecto al original SLI. De más está decir que las tarjetas de video tienen que ser PCI Express, y la placa madre debe proveer de dos slots de este tipo, repartiendo la cantidad de líneas de este tipo según sea la cantidad que se disponga. Pueden quedar dos de 8x o dos de 16x, dependiendo de las características de la placa madre. Un detalle importan es que, hasta el momento, el único chipset habilitado para el uso de esta tecnología es el nForce 4 SLI de la misma NVIDIA. Volviendo al tema de la interconexión, es necesario un puente (bridge) SLI que se coloca uniendo las dos placas. Luego, simplemente conectamos el monitor a una de las salidas de éstas y la instalación estará finalizada. Por supuesto, a continuación habrá que realizar configuraciones a nivel software, ya sea en los drivers o en el sistema operativo.

Por el lado de ATI, en su línea MAXX ya había experimentado con el uso de dos procesadores gráficos Rage 128 Pro en una misma tarjeta, tiempo antes de que empezara a trabajar en el modelo Radeon. Ya en estas épocas, y con un lanzamiento más tardío al SLI de NVIDIA, presento su plato fuerte para competir: el CrossFire. A diferencia del sistema SLI, CrossFire no necesita de dos placas exactamente iguales para funcionar, sino que se utiliza un modelo especial (la CrossFire Edition) y uno de los modelos normales. Ambas pueden utilizarse por separado, pero la primera es requerida para conformar el sistema CrossFire, ya que es la que oficia de tarjeta maestra, mientras que la segunda es la tarjeta esclava. La conexión entre ambas se realiza mediante un cable externo, que sale de una y entra en la otra, y luego de allí al monitor. Al no tener un puente interno, el cableado que surge por fuera resulta algo menos práctico que la solución de NVIDIA de interconexión entre placas. La idea de la gente de ATI es que, si ya poseemos algún modelo de la línea X8x0, podamos actualizar el subsistema gráfico comprando la placa CrossFire Edition, y así armar el sistema CrossFire. Por ahora, los chipsets autorizados para aplicar el paralelismo son los basados en el Radeon Xpress 200 CE.
Cada uno de estos modos (SLI o CrossFire) tiene distintos métodos de funcionamiento en cuanto al dibujado de las escenas tridimensionales. Por ejemplo, las GPU pueden dividirse el trabajo en partes iguales, ya sea partiendo la imagen en forma horizontal o vertical, o encargarse de un cuadro cada una en forma intercalada. En materia de rendimiento, los números indican que la performance entre ambas plataformas de procesamiento paralelo sea asemeja mucho. Si comparamos los resultados con los obtenidos con una tarjeta sola, la diferencia se hace cada vez más notable a medida que subimos la resolución y aplicamos filtros como alisado a pantalla completa. Sin embargo, esta diferencia todavía no justifica el enorme desembolso de dinero que conlleva armar un sistema SLI o CrossFire, por lo que -aquí también- habrá que esperar que las aplicaciones empiecen a optimizarse pensando en las capacidades de procesamiento que tienen estos sistemas gráficos en paralelo. Por ahora, comprar una tarjeta gráfica poderosa sigue teniendo una mejor relación costo / beneficio que armar un SLI o un CrossFire, pero es sólo cuestión de tiempo.

Como habrán visto, todas estas tecnologías tienen un futuro prometedor. Inclusive algunas ya comienzan a “evolucionar”, como es el caso de las futuras unidades centrales de proceso quad core, que contendrán cuatro núcleos en una sola pastilla. Otro ejemplo es el anuncio del Quad-SLI por parte de NVIDIA, el cual se conforma de dos tarjetas gráficas -de igual manera que el SLI actual- pero que cada una contiene dos procesadores gráficos en su PCB. A su vez, los sistemas RAID de hoy en día permiten el arreglo de más de cuatro discos en conjunto. Todo ésto da la pauta de hacia donde señala esta tendencia, que promete integrar en un sólo ordenador varios componentes de un mismo estilo trabajando en forma paralela con un objetivo en común. Inclusive el mundo de las consolas, con la Xbox 360 a la cabeza, también incorporó esta modalidad de funcionamiento. Se sabe que la última “caja” de Microsoft contiene tres núcleos en su procesador, y que todavía no hay juegos que hagan uso de los tres al mismo tiempo, salvo excepciones como Oblivion. Por su parte, la PlayStation 3 tiene a Cell como su centro de procesamiento, que además de estar compuesto por varias unidades de proceso adjuntas, presenta la posibilidad de formar arreglos mediante enlaces físicos.
Todavía es demasiado pronto para juzgar el poder de procesamiento de todos estos sistemas. Es necesario que las aplicaciones actuales -y futuras- den soporte específico para los mismos. A partir de allí, los números serán aún más altos y, con los costos en baja, será posible comenzar a aprovechar realmente todas las ventajas del paralelismo.

Escrito por editorwp_6720

Leave a Reply