AbaBlog

Tag: Mersenne

A la búsqueda del gran primo!!

by Abad on Feb.04, 2009, under GIMPS, General

a-la-busqueda-del-gran-primo

Hola a todos!! Aquí estoy de nuevo dando el coñazo. Hoy os voy a contar una bonita historia, basada en hechos reales:

Hace mucho, muuucho tiempo (hará un par de años), en un lugar muy, muuuuy lejano (en el salón de actos de mi facultad), un chaval que estaba cursando primero de ingeniería informática que se llamaba igual que yo, y hasta tenía mi mismo corte de pelo y todo, acudió a una charla acerca de criptografía, y en ella le explicaron que los numeros primos son muy importantes para la seguridad informática, pero que MUY muy importantes. Tan importantes que, según le contaron al chaval, había un concurso internacional, mejor dicho, que ofrecían dinero por encontrar numeros primos muuuuy muy grandes (ahí es donde entra la Electronic Frontier Foundation, un grupo que defiende las libertades civiles defendiendo los derechos en el mundo digital, y que ofrece premios diferentes según el número de dígitos que tenga el número primo que descubras).

Siempre me gustaron mucho las matemáticas, desde que era bien pequeñito, y de leer libros sobre misterios matemáticos siempre me llamaron la atención los números primos. Me fascinaban! Y ahora me dicen que se puede ganar dinero por descubrir un número primo muy grande?
Pues vamos a intentarlo!! Pero… vamos a ponernos a factorizar a mano? O como buenos informáticos vamos a intentar crear un programa que factorice números y nos diga si son primos o no? Pues no fue necesario ni lo uno ni lo otro. “Googleando” un poco descubrí que hay ciertos proyectos de computación distribuída a través de internet, que consisten en repartir el peso computacional de cálculos muy grandes entre muuuuchos ordenadores a lo largo y ancho del planeta.

Cómo funciona esto de la computación distribuída?
Muy sencillo. En vez de tener un ordenador futurista super potente (o un superordenador jeje), puedes tener varios ordenadores y repartir el trabajo entre ellos. Para eso tiene que haber un ordenador que haga de servidor y que les diga a los demás equipos lo que tienen que hacer (es como en un ejército, o una empresa, o un equipo de fútbol: tiene que haber un jefe que diga cómo organizarse, y qué trabajo tiene que hacer cada uno, y son los demás los que trabajan).

Cómo puede ayudarme la computación distribuída?
Uno de los proyectos de computación distribuida que existen en la actualidad es el llamado “Proyecto GIMPS” (Great Internet Mersenne Prime Search, lo que traducido al castellano vendría siendo “Gran búsqueda de números primos de Mersenne a través de internet”). Los números de Mersenne son aquellos números de la forma (2^p)-1, que, siendo “p” un número primo, hay una gran probabilidad de que el número resultante sea primo (bueno, no es una gran probabilidad, pero si es una probabilidad mayor a que sea primo un número escogido arbitrariamente). En este proyecto tienen un servidor (le llaman PrimeNet) que gestiona todo el trabajo de los ordenadores que participan en el mismo. Para participar sólo hay que ejecutar (no necesita instalación) un pequeño programita en un ordenador (programita creado por George Woltman, y que parece ser el programa que calcula números primos más eficiente que existe), que es el que se encarga de realizar los cálculos, pero… qué cálculos? Los que le encarga el servidor PrimeNet.

Ahora llegan las preguntas y las respuestas:

Si encuentro un número primo que es merecedor de premio… ¿No se llevarán el mérito los creadores del programa?
No. Lleva en funcionamiento 12 años y la mayor parte de récords del mundo de números primos desde entonces han sido hayados por participantes de este proyecto, apareciendo como nombre del descubridor el del dueño del ordenador que lo descubrió como primo. Esto es así gracias a un OPTATIVO proceso de registro (simplemente dar un nombre de usuario y un correo electrónico para que te puedan contactar). Siempre puedes utilizar el programa de forma anónima, pero si descubres un número primo no podrás reclamar su descubrimiento.

Si estás compitiendo por un premio… ¿No es perjudicial para mí el colaborar con otra gente?
Otra vez… no! Como ya he dicho antes, el programa es de los más eficientes que existen para cálculo de números primos (probablemente sea el más eficiente de todos los dedicados a esto), y además… el colaborar con otra gente hace que no repitas el cálculo de números que ya han sido testeados por otra gente. Estos cálculos duran bastante tiempo, por lo que si tu solo intentases calcular números primos muy grandes, y esos números ya hubieran sido testeados, habría sido una pérdida de tiempo inmensa.

Si ejecuto el programita en mi ordenador… ¿No hará que funcione muy lento?
¡Ajá! Esto es algo buenísimo que tiene este programa. Sólo funciona cuando no hay otros programas utilizando el ordenador. Imagínate, te dejas el ordenador encendido y no está haciendo absolutamente nada: Pues el programa este aprovecha el 100% del procesador. Si estás ejecutando un juego superpuntero y necesitas todos los recursos del ordenador, consume procesador al 100% y no puedes permitirte que te quiten ni un poquito de la potencia de tu ordenador: no te preocupes, automáticamente el programita dejará de factorizar. Si estás viendo una película y estás usando el 20% de la capacidad de tu procesador… normalmente el 80% restante lo estás desperdiciando… pero si tienes este programita, automáticamente se ajusta para aprovechar los ciclos de reloj que no estás utilizando. En resumen: NO INFLUYE EN EL RENDIMIENTO DE TU EQUIPO. (incluso el salvapantallas tiene preferencia sobre este programa).

En la página oficial del proyecto puedes registrarte, descargar el programa para instalar en tu ordenador, o puedes visitar tus estadísticas. También existen los “equipos”, la gente puede agruparse en equipos y ver, además de las estadísticas individuales, las estadísticas conjuntas del equipo.
Para unirte a un equipo tan solo necesitas estar registrado, y entrar aquí. Yo he creado un equipo llamado JACNET, así que si decides apuntarte al proyecto, puedes unirte al equipo, y colgaré en este blog las estadísticas de lo que vayamos logrando.
Por supuesto, siempre que haya estadísticas, hay un ránking, y la gente, tanto individualmente como por equipos, compite por subir posiciones en el ránking, haciendo más y más cálculos.
En este instante hay en activo 149 equipos, 9335 usuarios, y 59610 equipos a lo largo de todo el mundo, lo que proporciona una potencia de 44.642 TFLOP/s (cosa que es una auténtica barbaridad de potencia de cálculo).

Pues ya sabéis, si deseáis colaborar con la ciencia, y poder llevar un premio de muchos miles de dólares (el premio más bajo son cien mil dólares)… apuntaros desde su web oficial, y uniros al equipo JACNET jejeje.

Bueno pues… un saludito y… hasta la próxima!!!

3 Comments :, , , , , , more...

Estás buscando algo?

Utiliza el formulario a continuación para buscar en el blog:

Suerte en la búsqueda!

Archivos

Todas las entradas, cronológicamente...