Procesamiento en Paralelo en AMD Phenom X4

Comparé el tiempo que se tarda en traspasar 4 canciones de formato flac a formato ogg en forma secuencial y en paralelo en un procesador de cuatro núcleos como es el AMD Phenom X4 9550 en Ubuntu 8.10 de 64 bits. El resultado es asombroso.

Ejecutando en serie:

time oggenc -Q 01_threnody_in_x.flac 02_bc_blood.flac 03_goop.flac 04_soda_pop.flac)

real    0m37.265s
user    0m37.166s
sys    0m0.100s

En paralelo:

time (oggenc -Q 01_threnody_in_x.flac & oggenc -Q 02_bc_blood.flac & oggenc -Q 03_goop.flac & oggenc -Q 04_soda_pop.flac & wait)

real    0m11.697s
user    0m36.274s
sys    0m0.172s

En paralelo tarda el 31% del tiempo. Significa que casi se llega el límite teórico de reducir a un cuarto el tiempo de cálculo. Ahora resta que más aplicaciones de uno cotidiano aprovechen estas nuevos procesadores al máximo. (Notemos que hasta el comando time se confunde e informa un tiempo de usuario de 36 segundos, cuando el proceso efectivamente tardó 11 segundos).

Anuncios

AMD Phenom X4

Quiero hablar del procesador de AMD que disfruto en mi computadora. Es el AMD Phenom X4 9550.

En rigor son 4 procesadores (o núcleos) integrados junto al controlador de memoria en el mismo chip. Cada uno corre a 2.200 MHz y tiene 128 KB de memoria caché de nivel 1 y 512 KB de nivel 2. Además los 4 comparten 2 MB de memoria caché de nivel 3.

Cada núcleo en si mismo es rápido, supera ampliamente a un AMD Athlon X2 ejecutando a los mismos MHz, pero como 2.200 MHz no es lo más rápido que se ha visto (incluso hay modelos de este mismo procesador de hasta 2.600 MHz) al ejecutar una única tarea como por ejemplo comprimir un video o una canción a mp3 no es el procesador más rápido del mundo (ni siquiera en su familia de Phenoms).

Para sacarle todo el jugo a este Phenom hay que hacer varias cosas a la vez, o paralelizar. Obviamente que no se puede estar todo el tiempo haciendo 4 cosas, la mayor parte del tiempo tenemos suerte si hacemos 2 a la vez (escuchar música y navegar, por ejemplo). Pero hay que armarse de una estrategia para hacer más a la vez y así ganar tiempo aprovechando más y mejor el recurso.

Características que favorecen el procesamiento en paralelo

  • Ya se dijo que es un procesador de 4 núcleos, hay posibilidad de tener 4 tareas ejecutándose en paralelo.
  • 2 MB caché compartida. Este tipo de caché es necesaria porque la caché de cada núcleo suele perder eficacia cuando una tarea que se estaba ejecutando en un núcleo es programada para ejecutarse en otro por el sistema operativo. La caché compartida no tiene ese problema. Fíjense que la versión II del Phenom X4 tiene entre 4 y 6 MB de caché compartida.
  • Acceso a memoria en unganged mode: en teoría permite que diferente núcleos accedan a la memoria en forma independiente en determinadas circunstancias. En algunas aplicaciones hay beneficio. Aunque ese test ejecuta una única tarea a la vez. Sería deseable ver qué pasa cuando se ejecutan diferentes tareas en forma paralela. Ahí hay más probabilidad de que el método de acceso unganged mejore la performance.

La velocidad de una computadora con este procesador en tareas cotidianas es tan rápida como se desea. Lo único que retrasa la experiencia es la conexión a Internet. Para aprovechar este procesador al máximo en tareas que insumen mucho tiempo la clave es dividir el trabajo y paralelizarlo.

Tarea 1: comprimir un CD a MP3

Este tipo de tarea consta de 2 fases, extraer a música del CD (ripping) y la compresión a MP3 (u OggVorvis, FLAC, AAC, el preferido). La primera fase es muy importante para evitar ruidos en el sonido y además requiere muy poco procesador y mucho de leer de la unidad de CD.

Paso 1: ripear el CD a WAV sin comprimirlo. Eso lo podemos hacer en segundo plano mientras hacemos otras cosas.

Paso 2: ejecutar 3 procesos de compresión en forma simultánea, cada una con un subconjunto de las canciones extraídas del CD.

Con seguridad podremos seguir usando la PC como si nada pasara mientras se comprimen las canciones y además si comprimir 12 canciones tardaba 12 minutos, de esta forma en aproximadamente 5 minutos habremos terminado.

Tarea 2: comprimir un DVD a DivX (o Xvid, Theora, el preferido de cada uno)

Lo ideal es copiar el contenido del DVD a una carpeta del disco para evitar estar leyendo de la unidad de DVD todo el tiempo.

En este caso no es tan simple dividir la tarea, pero uno siempre tiene la duda de si elegir tal o cual calidad. Ya no más problemas, elegimos ambas calidades y largamos a comprimir simultáneamente con las 2 calidades ejecutando 2 instancias del programa de compresión.

Lo mismo si se duda entre un codec y otro, podemos largar ambos codecs en 2 instancias del programa en paralelo.

Es probable que cada tarea individual tarde un poquito más al estar ejecutándose en paralelo que si lo hace sola, pero lo que es seguro es que ese tiempo de más nunca será cercano al que tardaríamos ejecutado primero una y luego la otra.

Esto último yo lo hice con un DVD que quería pasar a un formato más comprimido usando Thoggen. Puse 3 instancias de Thoggen a comprimir el video que había copiado del DVD al disco. En 4 horas tenía 3 versiones de diferentes calidades para elegir la que más me gustara. Lo mejor es que durante esas 4 horas, podía usar la PC como si nada para las tareas cotidianas.

Para este tipo de tareas ayuda mucho, diría que es indispensable, tener mucha RAM. Por más que tenemos 4 procesadores, el disco sigue siendo uno solo (salvo en equipos con hardware especial) y poder tener 2 o 3 GB de datos en caché de disco es muy beneficioso.

Las aplicaciones en general no están diseñadas para aprovechar la presencia de muchos procesadores. Pero las pocas que lo están realmente tienen un rendimiento extremo en este procesador. En mi caso lo experimento con las aplicaciones Java como NetBeans. Es que Java de por sí tiene muchas cosas ejecutándose a la vez y particularmente el garbage collector que es una pieza clave en la performance de esta plataforma. Netbeans es una de las pocas aplicaciones que en algún momento utiliza los 4 procesadores (aunque brevemente).

Energía

Para la mayoría de la gente, el ahorro de energía no es importante, pero sí el ruido del los ventiladores de la PC. Este procesador consume típicamente 95 W de potencia (en realidad 95W es tu thermal design power o TDP), y los ventiladores andan a 4.500 RPM como máximo. Pero tiene una característica de ahorro de energía que hace que los ventiladores bajen hasta 3100 RPM según la carga. Es que cada núcleo, puede ejecutarse a la velocidad de 2.200 MHz o a la mitad (1.100 MHz) cuando no hay nada que hacer. Esto ahorra energía, baja la temperatura del procesador y reduce la velocidad de los ventiladores haciéndolos más silenciosos. A pesar de no ser un procesador de una portátil, tiene esta funcionalidad y lo notable es que cada núcleo regula independientemente su velocidad según la carga que tiene en cada momento.

Para esto hay soporte en Windows y Linux, por supuesto. Lo único que noto a veces es que en Windows los ventiladores suelen estar más tiempo a menor velocidad, pero en Linux puedo monitorear segundo a segundo a qué velocidad de reloj está ejecutándose cada núcleo.

Monitores con entrada DVI: ¿dónde hay uno?

Ya hace rato que el lobby industrial argentino nos condena a pagar más o a no conseguir monitores de computadora de LCD con entrada digital (DVI).

Es casi imposible conseguir ese tipo de aparato en los locales de computación, ya que por ser más baratos los que sólo tienen entrada VGA se venden más. Aquí los consumidores están desinformados o tienen computadoras sin salida DVI.

¿Pero tan cara es la entrada DVI? No. Simplemente que la industria nacional de televisores de Tierra del Fuego (que ya cuenta con ventajas impositivas) piensa que un monitor de 19 pulgadas con entrada digital compite con los televisores de LCD de alta definición que ellos ensamblan, meten en cajas y distribuyen.

¿Alguien de ustedes pensaba ver TV de alta definición en un LCD de 19 pulgadas o en una pantalla cuadrada?

No importa, los monitores de LCD con entrada DVI pagan un arancel mayor a los que sólo tienen entrada VGA, aunque sean de 17 pulgadas y ni por asomo sirvan para ver video en Full HD (se necesitan 1920 x 1080 pixeles).

Por suerte DELL vende con entrada DVI, pero hay que esperar a que te lo manden a tu casa y pagarlo con tarjeta.

Conseguir algo cuadrado de 19” con entrada DVI en locales es casi imposible. Sólo veo uno rectangunar de 22” que es en general muy grande y caro para usarlo en una PC.

Por eso espero que mi monitor de tubo de 19” tenga arreglo y así pueda seguir disfrutando de una resolución de 1.280 por 1.024 por los $800 que me salió hace 2 años y no tener que desembolsar $1.300 para tener la misma resolución en un LCD (con DVI) hoy. Por $800 conseguiría uno rectangular de 17” sin DVI.

Comprar un LCD de 19” sin DVI me parece ridículo, y sólo se justifica por el precio.

Veamos referencias al tema:

Salvador Crespo, gerente de Viewsonic:

-¿Qué porcentaje del precio de un monitor corresponde a impuestos?

-Aumenta en un 25%, dependiendo de si tienen o no un puerto DVI (Digital Visual Interface). Desde el Mundial de Fútbol a la fecha todos los monitores que tengan un conector DVI tienen que pagar el doble de aranceles y el doble de IVA. Eso es porque a la Aduana se le ocurrió que si tenían DVI se podían utilizar como televisores, algo absurdo porque muy pocos reproductores de DVD tienen salida DVI y casi todos tienen una salida súper VGA, así que cualquier monitor de tubo puede usarse como reproductor de DVD.

Ariel Torres en La Nación:

[…] para las autoridades locales un LCD con entrada digital (DVI) es igual a un televisor, por lo que paga casi el doble de IVA y aranceles de importación que uno con entrada analógica.

Nuevamente Ariel Torres en La Nación:

Conexiones. Un LCD es enteramente digital, así que rendirá mejores imágenes si se lo conecta por entrada digital (DVI). Debido a que en la Argentina los LCD con DVI son más caros, porque se les carga más impuestos, hay poca oferta. Pero, cuidado: si nuestra PC no tiene salida DVI, la pantalla debe tener una entrada VGA opcional. O pensar seriamente en invertir en una placa de video con DVI. Un buen LCD se la merece.

Los Jázaros

Me sorprende ver que en 1999 se hacía referencia en el diario La Nación al pueblo de los Jázaros (o Khazarians en inglés).

Probablemente un pueblo que tuvo que ver en la conformación de las poblaciones judías del este europeo (Polonia, Rusia, etc.).

En el artículo anterior en este blog, Shlomo Sand hace referencia a ellos como uno de los pueblos judíos conversos que hoy no se tiene en cuenta al difundir la idea de que todos los judíos del mundo tienen un origen común en mediterráneo oriental.

La construcción de un pasado como justificación del presente

“La construcción de un pasado como justificación del presente” es el subtítulo del libro de Felipe Pigna “Los Mitos de la Historia Argentina”.

Vino a mi mente a raíz del rebote en los medios que tiene un libro de Shlomo Sand.

Listo algunos ejemplos de reportajes o comentarios del libro:

Según este profesor de Historia de Europa en la Universidad de Tel Aviv los judíos del mundo no tienen como antepasados a los judíos que vivieron en Palestina en la edad antigua bajo el Imperio Romano, sino que son diversos pueblos que se convirtieron al judaísmo en diferentes momentos de la historia. Dice que no hay evidencia histórica de que los romanos expulsaran a los judíos de Palestina y además no tenían la logística para hacerlo. Sí, en cambio, hay evidencia de muchos judíos eran proselitistas desde el siglo II A.C. y hasta el siglo II de nuestra era y así se explica mucho mejor la aparición de judíos por ejemplo en el norte de África (desde donde pasaron a España junto a los musulmanes). También menciona a los jázaros pueblo del cáucaso que se convirtiera al judaísmo y a quienes señala como los probables introductores de esa religión en el este europeo.

Es interesante cómo esta persona plantea que el pueblo judío es una construcción del siglo XIX, época del nacimiento de los nacionalismos en Europa. Así como nació la nacionalidad alemana y la italiana, intelectuales alemanes habrían creado una nacionalidad judía postulando que todos los judíos del mundo, o la gran mayoría, eran descendientes de aquellos que vivían en Palestina 2.000 años atrás.  Sand sostiene, y dice que varios intelectuales lo han admitido, que probablemente los habitantes de la actual Palestina sean los verdaderos descendientes de los judíos de la antigüedad que nunca se fueron de ahí y que se convirtieron al Islam.

Máxima compresión en Ubuntu Linux con 7-zip

7-zip es un programa para comprimir archivos. Para usarlo en Ubuntu basta con instalar el paquete “p7zip” y luego invocarlo desde la línea de comandos así:

7zr a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on <nombre_archivo>.7z <directorio_o_archivo_a_comprimir>

Por ejemplo:

7zr a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on documentos.7z /home/usuario/documentos

También el FileRoller (el programa de gnome para manejar archivos comprimidos) permite comprimir y descomprimir archivos 7z. Con la línea de comandos anterior nos aseguramos máxima compresión a un mayor costo de tiempo y recursos al comprimir.