lunes, 22 de diciembre de 2008

Schrödinger y la ecuación del todo

Stephen Hawking celebrando el descubrimiento de la ecuación del todo Hace algunos años (uno es ya perro viejo en estas lides) asistí a una conferencia muy interesante que ofreció en el Aula Magna de mi facultad un profesor de física, creo que de Cantabria, con motivo de una exposición que habían organizado en el Museo de la Ciencia y el Cosmos de La Laguna. No me acuerdo exactamente de qué iba, sólo que fue muy interesante -estas cosas suelen ocurrir-. El tipo nos habló, entre otras cosas, de algunos avances en física y tocó el tema, siempre candente, de la ecuación del todo: aquélla que unificará la relatividad general y la mecánica cuántica y que tiene en vilo a la comunidad científica y a algunos acólitos reclutados por Stephen Hawking.

El caso es que este hombre en la conferencia habló de la ecuación de Schrödinger y dijo que ésa era la ecuación del todo. En realidad la ecuación de todo lo que nos afecta a nosotros. Porque a menos que el vecino se fabrique un agujero negro doméstico microscópico para enseñar a los niños que los agujeros negros no son negros, a mí la relatividad general me pilla un poco lejos. No puedo imaginar una manera de aplicar la métrica de Schwarzchild para mejorar la resolución de los televisores de plasma.

Y aunque la ecuación de Schrödinger ni siquiera es consistente con la relatividad especial, resulta que mediante teoría de perturbaciones se pueden solventar la mayor parte de problemas al respecto. Y tampoco es un problema que el spin del electrón no salte a la palestra de forma natural como ocurre cuando se resuelve la ecuación relativista de Dirac. La ecuación de Schrödinger es el cuatro latas de la física: lento y viejo, pero nunca se casca y sigue llevándonos donde le pidamos a pesar de los años.

Los circuitos electrónicos, los láseres de los lectores de CD, esas lucecitas de colores tan monas que dicen que son el futuro de la iluminación, los paneles solares, los iPod y un sinfín de cacharros fueron diseñados a base de resolver la ecuación de Schrödinger.

De todas formas, independientemente de que consiguiéramos un día obtener la ecuación que gobierna todo el universo, nunca podríamos solucionarla porque nos haría falta un ordenador más grande que el propio universo.

Pero no era esto de lo que quería escribir. Más bien, de lo que me disturba usar estas cosas, el conocimiento científico en general, tan alegremente como lo hacemos. Hoy, intentando ayudar a mi primo Jose, que estudia ingeniería, le dije lo que me molestaba que en sus apuntes no se explicara cómo se obtienen los resultados, a lo que me contestó que la gente cuando se topa con algo que no entiende lo que hace es estudiarlo repetidamente hasta que el sinsentido se convierte en un sinsentido aprendido de memoria. No nos importa de dónde se sacó Schrödinger la dichosa ecuación. Y lo peor de todo no es que a ti ni a mí nos importe, ni al chino que monta los iPod Nano en las afueras de Shanghai, sino que un premio Nobel como Cohen-Tannoudji, en su libro sobre Mecánica Cuántica (considerado una auténtica biblia en la materia), también pasa del tema.

Parece que a nadie le importa si la chistera tenía un agujero por abajo mientras el conejo se asome. Yo, por mi parte, seguiré firme en mi empeño de descubrir de donde salió la ecuación de los cojones. Si un día cayera la breva, prometo compartir mi sabiduría con todos vosotros.

viernes, 12 de diciembre de 2008

El sandwich perfecto

El sandwich perfecto debe tener necesariamente tres cualidades que aportan igualmente a su perfección. Debe ser consistente, contundente y sabroso.

Consistencia:
Es una propiedad básica, ya que lo que distingue a un sandwich o un bocadillo es la posibilidad de comerlo con las manos limitando al mínimo el guarreo. Para alcanzar este extremo es de vital importancia la elección de un pan que no pierda la consistencia al empaparse de ingredientes como el huevo o el tomate, más líquidos. La idea es seleccionar un pan que consiga un equilibrio entre sabor y rigidez.

Contundencia:
Es la propiedad del sandwich para no dejarnos indiferentes. Un sandwich que se jacte de perfecto tiene que impactar desde el primer bocado hasta el último. Tiene que generar un orgasmo mantenido mientras (1) se muerde, (2) se deglute y (3) se traga. Para esto hay que conseguir un armonioso equilibrio de texturas entre los diferentes ingredientes. Es importante en este sentido que podamos agarrar el sandwich con una o dos manos sin que se nos deshaga (vemos que las tres cualidades están interconectadas) para sentir poder sobre él y animalizarnos mientras lo devoramos. Imprescindible que contenga carne para sentirnos en la cúspide de la pirámide alimenticia.

Sabor:
Esta última cualidad escapa a la generalidad y da alas al usuario para que desate su imaginación. Cada uno tiene sus preferencias. Sin embargo, hemos visto que el sandwich perfecto tiene necesariamente que contener carne porque la sensación de depredador es imprescindible mientras lo devoramos. Por otra parte, incluir huevo es siempre una buena idea, ya que no enmascara sino potencia el sabor de los otros ingredientes, y ayuda a compactar el relleno -muy conveniente en sandwiches de varios pisos-.

¿A cuénto de qué viene esto? A cuento de que hoy, al llegar de la facultad, no tenía ganas de cocinar, así que me he preparado el sandwich perfecto. Con dedicatoria especial para Miguel El Colono que, como yo, sabe apreciar el valor de una comida contundente, perfecta:

lunes, 8 de diciembre de 2008

De las 3D a la supercomputación en casa

Hace poco que nVidia ha puesto en el mercado lo que han venido a denominar Tesla Personal Supercomputer o, en otras palabras, un superordenador de andar por casa.

En realidad no tanto como para andar por casa, pero el precio es realmente asequible para instituciones como hospitales o pequeños institutos de investigación que no pueden permitirse un gasto de varios millones de euros en adquirir un superordenador de IBM y que, en realidad, no necesitan. Por un precio en torno a los 10,000 $, uno puede comprar un equipo que disponga de 4 GPU como la de la foto y que, según nVidia, permite alcanzar una potencia de proceso similar a la de unos 250 PCs convencionales.

Pero, ¿cómo funciona el invento y cuáles son los peros?

Muchos de vosotros seguro que asociáis nVidia al mundo de las tarjetas gráficas 3D. nVidia y ATI se reparten el pastel de este sector de la industria de la informática desde que los juegos, cada vez más exigentes, y otras aplicaciones hicieron el procesamiento de gráficos por software una tarea imposible. En contraposición al término CPU (Central Processing Unit), utilizado para designar el microprocesador de un computador, nació el término GPU (Graphics Processing Unit). Una GPU es básicamente un microprocesador de varios núcleos (o sea, varios microprocesadores) cada uno de los cuáles trabaja por separado. Esto se llama computación en paralelo y básicamente consiste en asignar tareas que pueden ser realizadas independientemente una de otra a cada uno de los núcleos para que trabajen todos al mismo tiempo. Individualmente la potencia de proceso de estos procesadores es mucho menor que la de un micro convencional (el típico Pentium, por ejemplo) pero trabajando en paralelo pueden suponer una notable mejoría del rendimiento.

Para ejemplificar esto, imaginemos que tenemos que hacer la siguiente operación con un ordenador:

\sum_{n=1}^{240} \frac{1}{n!} e^{-n^2}

Un microprocesador mononúcleo (un Pentium IV, por ejemplo) lo que haría sería:

1. Calcular el primer término

2. Guardarlo en memoria

3. Calcular el segundo término

4. Sumarlo al primero y guardar el resultado en memoria

.

.

.

479. Calcular el término nº 240

480. Sumarlo a los 239 términos anteriores y mostrar el resultado final

Vemos que antes de calcular el término final, el mismo núcleo ha tenido que esperar a obtener los 239 anteriores, lo que supone un empleo considerable de tiempo en cada paso. Computando en paralelo, la operación de calcular cada término se lleva a cabo a la vez. Una GPU Tesla de nVidia con 240 núcleos haría:

1. Todos los núcleos calculan a la vez, cada uno un término

2. Todos los núcleos guardan a la vez el resultado en memoria

3. Un procesador central se encarga de acceder a la memoria y sumar todos los términos

Aunque el Pentium IV calcula cada término individual más rápido de lo que lo hace uno de los núcleos del Tesla, el resultado final se obtiene mucho más rápidamente con el Tesla.

Hemos visto por tanto que cuando se trata de cálculos que se pueden hacer independientemente unos de otros, resulta que computar en paralelo es mucho más eficiente. Las GPU (es decir, las tarjetas gráficas) son útiles en este sentido porque están diseñadas para procesar diferentes partes de un gráfico. Imaginemos una GPU de 8 núcleos. Podría dividir, por ejemplo, la pantalla en 8 partes iguales y cada uno de los núcleos se encargaría de uno de los trozos, dividiendo en 8 el trabajo a realizar.

¿Dónde está la trampa? Pues en que hay muchos cálculos que no se pueden llevar a cabo en paralelo. Imaginemos la siguiente serie:

a_n = \frac{a_{n-1}}{n!}

¿Qué significa esto? Que para obtener un término de la serie hace falta conocer el anterior. Si quisiéramos obtener el término nº 240, por ejemplo, tendríamos que haber obtenido antes el 239 y, antes de éste, el 238, y así hasta el primero. En este caso las tareas no son independientes y no se puede hacer el procesado en paralelo. Una CPU de 50 € haría esta tarea de forma más eficiente que una GPU nVidia de 1,600 $.

No obstante, hay muchos procesos para los que la computación en paralelo supone una ventaja indiscutible. Por ejemplo, mi trabajo fin de carrera necesitaba cálculos que a veces duraban hasta 10 días. Una parte del programa podía escribirse para que se ejecutase en paralelo, sólo que por aquél entonces no sabía cómo hacerlo. Si lo hubiera hecho, teniendo en cuenta que usaba para los cálculos ordenadores con 4 micros, podría haber reducido el tiempo de ejecución a 2.5 días.