martes, 25 de agosto de 2009

Sistemas de Altas Prestaciones, algoritmos de Inteligencia Artificial. Parte I – ProfessionalSAT

Después de un período en el que he alternado semanas de vacaciones con breves periodos de trabajo vuelvo de nuevo con energía renovadas, aunque todavía con unos diez días de vacaciones pendientes…

PIC03282

En estos momentos estoy enfrascado en el diseño de un sistema que realizará tareas de investigación en inteligencia artificial, análisis Monte Carlo y evaluación de soluciones óptimas mediante tablas Hash. Su proceso se centrará en ocho threads concurrentes con carga 100% con un mix de instrucciones de enteros e intensivamente de branch prediction.

Es el primer sistema de cálculo que optimizo para proceso de enteros y no para coma flotante como es habitual en mis sistemas de altas Prestaciones fuera de especificación. Observando atentamente las cargas de trabajo a las que se verá sometido continuamente este sistema y analizando la dinámica de los performance counters del procesador así como su consumo y temperatura pico he llegado a varias conclusiones:

  • Este tipo de procesamiento es menos arduo en cuanto a cargas térmicas y eléctricas que las cargas de trabajo típicas de mis sistemas (principalmente coma código en flotante altamente optimizado).
  • Hay un margen superior en cuanto a frecuencia máxima debido a temperaturas inferiores en carga en unos 8 – 10 ºC.
  • En un artículo a parte hablaré brevemente sobre este tipo de cargas de trabajo con un análisis mediante PerfMonitor.

Para este peculiar trabajo son necesarios 12 GB de memoria y un sistema operativo de 64 bit, en este caso Windows XP 64. Ya en Febrero de este año monté otro sistema con 12 GB para uso en arquitectura, principalmente para AutoCad.

PIC03146 Alguna de las piezas que conformarán este Sistema de Altas Prestaciones.

Para esta compleja tarea he elegido los siguientes componentes principales:

  • Torre Antec 900 Two
  • Placa base ASUS P6T Deluxe V2
  • Procesador Core i7 920 stepping D0
  • ASUS Triton 88
  • 12 GB en 2 KITs de 3 DIMMs de DDR3 1600 Patriot 8-8-8-24 1.65 V
  • ATI HD4670
  • HD 1 TB
  • SSD Intel X25M G2 34 nm 80 GB
  • F/A 720W Tacens

Configuración fuera de especificación:

Los Core i7 920 tienen una frecuencia nominal de 2.66 GHz y 2.8 GHz en Turbo Mode multithreaded, en esta ocasión y gracias a la variación del Host Clock desde los 133 MHz nominales hasta los 181 MHz conseguimos una frecuencia efectiva en carga 100% en Windows de 3.82 GHz.

La frecuencia objetivo para el Uncore (controladora de memoria y la caché L3 de 8 MB) es de 3622 MHz, con un aumento de un 70% (!!) desde los 2133 MHz nominales de los procesadores Core i7 920 stepping D0.

Como destaqué en varios artículos anteriores la frecuencia del Uncore es crítica en las prestaciones de un procesador Core i7.

PIC03157 Uno de los preciados i7 920 en stepping D0.

Un punto importante a considerar al configurar sistemas Core i7 (y que es extensible a otras plataformas) es considerar el incremento de la exigencia a las controladoras de memoria con cargas elevadas de las mismas (cargas eléctricas).

En este caso se montan seis DIMM de 2 GB llenando todos los slots, este hecho hace que tenga que ser especialmente cuidadoso con los ajustes en BIOS en cuanto a voltajes y multiplicadores de las controladoras de memoria integradas en los chips Nehalem.

Normalmente con tal carga es necesario recurrir al ajuste 2T e hilar fino con el voltaje tanto en Uncore como en memoria y QPI.

PIC03148 Los siempre excelentes Kits de 6 GB Patriot a 1600 MHz.

PIC03150 Detalle de los 6 DIMM DDR3.

PIC03151 Ya montados sobre la ASUS P6T Deluxe V2.

PIC03154 Vista del área del socket LGA 1366.

PIC03155 El Core i7 920 presentado sobre la placa base.

Mejoras en la placa base:

En las placa base P6T Deluxe de Asus llevo a cabo algunas mejoras de cara a optimizar la refrigeración del chipset X58, ya que la frecuencia del QPI será incrementada por encima de los máximos 6.4 GHz llegando a unos 6500 – 6600 MHz.

PIC03158 Parte inferior de la P6TDeluxe V2.

En primer lugar procedo a apretar los dos tornillos negros de la captura anterior para aumentar la presión sobre el chipset X58 (siempre con cautela…), a mayor presión mejor transferencia térmica.

La segunda mejora consiste en sustituir el Thermal Pad que esconde el radiador del chipset en su interior por pasta térmica de primera calidad.

PIC01862Radiador del X58 desmontado, se aprecian sus dos partes de cobre y aluminio.

PIC01866Disipador del X58 desmontado con el thermal pad visible.

En la foto anterior podemos apreciar las dos partes, la superior en aluminio lacado en negro y la inferior, un bloque sólido de cobre atravesado por el heat pipe.

PIC01867

Como podemos apreciar, el contacto térmico entre ambos componentes es fácilmente mejorable, por lo que elimino el thermal pad de origen y lo sustituyo por pasta térmica, en este caso Artic Cooling MX2.

PIC01863Thermal pad retirado y superficies limpias, listas para aplicar la interfaz térmica.

PIC01864El thermal pad, seguro que encuentro algún chip donde ponerlo …

PIC01869Por el orificio podemos ver la pasta térmica aplicada producto de la intensa presión de los tornillos.

PIC01871El disipador de aluminio ya montado y listo.

PIC03159 La zona central no hacía contacto térmico, perjudicando gravemente la refrigeración.

La tercera consiste en retirar el embellecedor que cubre el radiador de calor de láminas de cobre del south bridge ICH10R:

PIC01892

Muchos fabricantes de placas base tienen últimamente la extraña e incomprensible costumbre de tapar los radiadores con chapitas de aluminio con sus logos. Sinceramente me parece ilógico e incluso estúpido aunque quizás a los responsables de marketing les parecerá muy bonito:

PIC01887Disipador del southbridge ¿dónde está? … tapado tras el logo de ASUS.

PIC01907Ahora sí, el radiador ya puede realizar su función de irradiar calor infrarrojo y disipar por convección y conducción.

Ahora llega el turno del montaje del radiador – ventilador de CPU. Como sabéis, en procesadores fuera de especificación es más importante si cabe la elección de un compuesto térmico adecuado y una correcta colocación. Segundo enlace.

Si nominalmente un i7 920 stepping D0 disipa en pico sobre los 130W (entre los 4 cores con SMT, la cahé L3, las 3 controladoras de memoria, el QPI y el northbridge integrado) en condiciones fuera de especificación como las expuestas y debido al aumento de frecuencia y al aumento de varios voltajes aterriza en valores sobre los 200 – 225 W estimados.

Montaje fuera de la torre. Tests de memoria:

Una vez optimizados estos aspectos, procedo con la configuración de BIOS a las frecuencias objetivo fuera de especificación y empiezan ya los tests de memoria fuera del sistema operativo.

PIC03162 El sistema ya pasando los rigurosos tests de memoria tras la configuración de BIOS.

PIC03164 Otra vista.

PIC03167 Memtest+ 2.11 con 12 GB.

Dentro de unas 24h veré los resultados del test.