Sunday, September 19, 2010

El nuevo monstruo


La tecnología progresa significativa y aceleradamente. La Ley de Moore, que decía que el progreso tecnológico se duplicaba cada 18 meses, si mal no recuerdo, ya está perdiendo validez, pues el desarrollo en hardware y software no parece detenerse nunca y hoy más que en ninguna otra época, los adelantos están a la vuelta de la esquina.



Así, de tener una computadora con un procesador, surgieron los que usaban dos núcleos, los "dual core". Sin embargo, los nuevos microprocesadores tienen cuatro, seis e incluso más núcleos ahora. Obviamente el software debe poder sacar ventaja de esto y la consecuencia más evidente es la velocidad de los procesos que corremos contínuamente en nuestras computadoras. Si a esto le añadimos el desarrollo de bloques de memoria, los cuales ahora tienen ahora 2, 4, 8, 16 y más gigabytes, pues la cosa se pone buena. Las limitaciones de los equipos caseros son cada vez menores y podemos disfrutar verdaderamente de equipos de cómputo fantásticos por precios que se antojan accesibles, sin lugar a dudas.

El Ing. David Garza, de AMD, siempre ha sido un fanático de los equipos poderosos y su trabajo en AMD ha mostrado lo que una pequeña empresa, comparada con Intel, puede hacer. Así, en una donación a La Morsa Software Co., AMD me dotó de un "motherboard", dos gigabytes de memoria, tarjeta de video y ¡un procesador AMD de seis núcleos seis!


Para que el nuevo monstruo cobre vida, necesito comprarle un buen disco duro, gabinete con fuente de poder y lector de DVD, lo cual -gracias a mi hermano Juan- podré tener en esta semana, de forma tal que esperemos que en unos siete días arranque la configuración de esta nueva computadora, que probablemente será dedicada en mayor grado al ajedrez, asunto que bien sabe David, me apasiona y que además, con los programas actuales, son la herramienta básica de todo ajedrecista que deseé progresar.

Vaya desde aquí mi agradecimiento enorme por el apoyo para el desarrollo de software que hace AMD para conmigo.

12 comments:

ukok said...

vaya... que suerte. Ahora a sacarle todo el provecho a semejante maquina

Jesús said...

Qué envidia. Yo necesito una de esas para procesar listas de palabras, jaja. Felicidades

Morsa said...

Aquí podemos hacer eso, Jesús. Sin problemas.

biani said...

Hola Manuel,

Como siempre muy interesantes todos tus temas; felicidades por tu paquete de evaluación.

Ahora lo que me llamo la atención fue la ley de Moore, efectivamente tal como lo predijo Moore "¿tecnologo o mercadologo?" la capacidad y velocidad de el hardware, se duplica aproximadamente cada 18 meses sin embargo existen dos aspectos que no se han modificado desde Von Neumman:

.-La arquitectura que propuso sigue utilizándose ampliamente (inicio,lectura de contador, búsqueda de instrucción, ejecución de instrucción, incremento de contador y regresar al inicio)

.-La consecuencia de esta arquitectura es que la información se procesa de forma serial.

Estos aspectos no se perciben ya que las velocidades a las que se realizan son demasiado rápidas para darnos cuenta.

eso me hace pensar que los aparentes avances solo son avances superficiales y no de fondo.

los procesadores multinucleo son la solución lógica para continuar con el modelo propuesto por moore, tal vez lleguemos a conocer procesadores con 16 32 o 64 núcleos con hyper threading en el caso de intel.


Sin embargo lo que realmente me gustaría ver es una arquitectura innovadora, se habla de la computación cuántica por que con la tecnología actual se esta llegando a los limites físicos de los semiconductores donde existen fenómenos como la memresistencia.

en fin...

creo que debe proponerse antes algo mas sencillo, como el simple cerebro de un mosquito pocas neuronas y grandes habilidades.

saludos!

Morsa said...

Biani,

No hay duda que cualquier arquitectura de computadoras tiene pros y contras. El modelo más comúnmente usado ha funcionado bastante bien hasta ahora y es claro, al menos para mí, que hay que agotarlo antes de pensar en otro modelo. Ahora, como dices, vemos que estamos llegando a los límites de los semiconductores, pero la realidad es que no tenemos por el momento ninguna otra alternativa víable. La computación cuántica está en pañales, por ejemplo, y creo que sí, que probablemente una arquitectura como la que usa un mosquito sea más sensata, pero no es tan fácil ni sencillo siquiera pensar en crear un modelo que trabaje de esta manera.

De hecho, considerando que las necesidades de cómputo se han elevado, los avances en hardware mantienen bastante bien el asunto, por lo pronto, aunque es evidente, como mencionas, que estamos llegando al límite.

saludos
Manuel

Jorge said...

Hola Manuel:

Recuerdo a mediados de los 80's no se le quitaba de la boca a muchos el asunto de la "Inteligencia Artificial".

"Ya viene la quinta generación" , era el grito de guerra entonces.

Viendo la capacidad del equipo de entonces la "quinta generación" parecía una alucinación aberrante.

Pero entonces se veía que soñar no costaba nada.

Como siempre un saludo

Jorge Alberto.

mfjimeneztar said...

Morsa,

Espero no sonar demasiado agnóstica del tema pero ¿5 núcleos te refieres a que son 5 discos duros? o ¿son 5 qué?

Saludos

MFJM

Morsa said...

MF,

Un procesador que contenga varios núcleos permite separar las tareas que tiene que hacer de forma relativamente independiente. Así, cada núcleo es como una pequeña computadora dentro de la computadora. Seis núcleos implica algo como seis procesadores interconectados, lo que se asume, debe hacer las tareas que le encomiendes más rápidamente. Un clavado a wikipedia puede darte más información.

saludos

beno said...

Hola Manuel,

Oye, tú cuate de AMD ¿no tiene mas donaciones? ... yo quiero uno de esos de muchos núcleos...

;)

A. David Garza Marín said...

biani,

Tienes toda la razón en cuanto al procesamiento serial. En realidad, los avances en materia de procesamiento serial han sido muy, muy superficiales y sí, muy llenos de mercadotecnia.

De hecho, programar en "paralelo" con esos procesadores es una tarea por demás titánica para los desarrolladores. La programación en paralelo cuando se utiliza tecnología serial, trae consigo una serie de compromisos del propio programador, dado que será éste (y no el procesador) el que se encargará de llevar el control del paralelismo, donde a mayor cantidad de subprocesos (o threads) seriales, mayor posibilidad de errores habrá (como "abrazos mortales", colisiones, etcétera).

Así como la programación orientada a objetos, es más fácil llevarla a cabo cuando se usa un lenguaje de programación orientado a objetos, la programación en paralelo debe realizarse en procesadores en paralelo. Pero, ¿qué beneficios trae un procesador en paralelo?

Primordialmente, la ejecución de tareas en paralelo podría ser muy eficiente cuando se realizan fuertes cálculos numéricos (como los que se requieren para una partida de ajedrez). Por ejemplo, un procesador serial de 6 núcleos podría tener una potencia de 77GFLOPS con un consumo de energía máximo de 125W. Sin embargo, un procesador paralelo puede tener una potencia de 2750GFLOPS (¡casi 3TFLOPS!) y con un consumo de energía máximo de 188W.

O sea, un procesador serial tiene la potencia de .62GFLOPS/W, mientras que un procesador paralelo ofrece 14.63GFLOPS/W. ¡Un procesador paralelo ofrece cerca de 24 veces más potencia que un serial!

Lo que tiene el Prof. López Michelone es una plataforma completa que conjuga: Procesador serial de 6 núcleos (AMD Phenom II X6), dos procesadores en paralelo en modo CrossFire Híbrido (un procesador paralelo de 40 núcleos, y otro de 80 núcleos), y un procesador de señales (chipset) con un ancho de banda bidireccional de 6.4GB/s. Si a lo anterior se le agrega una buena cantidad de memoria (al menos, 4GB, aunque serían recomendables 8GB para 126 núcleos combinados de procesamiento) y un disco duro rápido (con una memoria USB de alta velocidad de 4GB a modo de ReadyBoost), el Profr. López Michelone podrá disfrutar de una máquina realmente potente por algún tiempo.

De hecho, si el Profr. López Michelone quiere ingresar en las artes de la programación de Streaming (procesos enviados a la GPGPU), la información se encuentra en http://developer.amd.com.

Optativamente, las bibliotecas de OpenCL 1.1 podrían ser útiles (http://www.khronos.org/opencl/), o de DirectCompute 11 (http://code.msdn.microsoft.com/directcomputehol).

Un abrazo,

biani said...

David,

Hola, gracias por leer mi comment, me dejo una muy buena impresión ver como hiciste la comparación de rendimiento, en realidad dice bastante.

Me parece que tienes información de primera mano.

En el pasado solía estar informado de los cambios en cada familia de procesadores, después dejo de ser interesante.

Sin embargo en definitiva siguen surgiendo avances importantes (“anchos de banda, instrucciones nuevas, etc.”).

De igual manera me gusto mucho la forma en que describiste la computadora de Manuel; procesador de señales y ancho de banda me parecen oraciones elegantes, de hecho es como si hubieses descrito la fisiología de la computadora, no solo la anatomía.

Creo que hay muchos aspectos susceptibles de analizar y que este blogg facilita esta tarea.

Las computadoras necesitan de un sistema operativo y la forma en que este administre los recursos, determina la funcionalidad del equipo; es decir en la computación siempre habrán procesos dependientes e independientes y ejecutar un proceso independiente en varios núcleos puede ser tan ocioso como ejecutar un proceso paralelo en un solo núcleo.

Obviamente los diseñadores de software y hardware observan estas cosas, pero como usuarios el beneficio que obtenemos es ver ejecutar nuestras aplicaciones con la mayor rapidez y calidad posibles.

Cada mejora en la arquitectura de un procesador (caja negra) implica un esfuerzo impresionante en diseño e implementación, esto es el aspecto de la computación que actualmente me apasiona.

Como dice Manuel estamos explotando el modelo más comúnmente usado (a mi juicio x86 superdotados) hasta la última gota; esto es parte de buscar más posibilidades.

Saludos.

Morsa said...

Biani,

según yo, la siguiente generación de equipos de cómputo casero empezarán a trabajar ya en modo paralelo... Aunque hay mucho camino por recorrer.

saludos
Manuel