GIMPS: il test nel test per il vostro PC

Un mese fa avevamo visto BOINC, il progetto di calcolo distribuito con cui potevamo trasformare i tempi morti del nostro pc in un tempo utile per la ricerca scientifica. Esiste un altro importante progetto che da 15 anni è attivo nella ricerca matematica e oggi vi insegno come attivarlo sul vostro computer, dato che magari potreste diventare milionari usandolo

In matematica esiste un particolare classe di numeri primi noti come numeri di Mersenne e hanno la caratteristica di potersi scrivere come 2^p-1. Di questi numeri, oggi se ne conoscono solo 47, e la maggior parte sono numeri enormi: 12,837,064 cifre decimali per il 47-esino numero di Mersenne!!

Per chi segue la matematica sa che il test di primalità di un numero primo richiede un tempo via via sempre più crescente man mano che si sale con le cifre dei numeri, diventando presto impraticabile sotto il profilo dei tempi di calcolo. Pur tuttavia, la conoscenza di numeri primi con un elevato numero di cifre è un campo della ricerca in coi in molti si battono e ci sono premi in denaro molto consistenti per chi riesce a scovarli.
Perchè allora c’è un così grande accanimento nella ricerca di numeri primi?

Se usate internet e i servizi crittografati (transazioni sicure, posta certificata, ecc.) dovreste già avere la risposta sotto il naso: gli algoritmi di crittografia si riconducono all‘uso di numeri primi molto grandi (e più sono grandi e meglio è) moltiplicati fra loro. Dato che è estremamente difficile ricavare i fattori di un prodotto per numeri grandi, la nostra transazione diviene sicura e a prova di hacker.

Sfruttando alcune proprietà dei numeri 2^p, sono stati sviluppati alcuni test di primalità che abbattono i tempi di cacolo e rendono possibile la ricerca dei numeri di Mersenne in tempi “ragionevoli”.

GIMPS (Great Internet Mersenne Prime Search) è un progetto online (http://www.mersenne.org) che mette a disposizione un software che usa questi algoritmi di calcolo ed è in grado di dire se un dato numero è un primo di Mersenne. La maggior parte dei numeri primi di Mersenne giganteschi sono stati infatti cacolati tutti da questo progetto.

Il software per Linux (si tratta di un programma totalmente a riga di comando) è scaricabile da: http://mersenneforum.org/gimps/mprime2511.tar.gz per 32 bit e http://mersenneforum.org/gimps/mprime2511-linux64.tar.gz per i 64 bit.

Se avete intenzione di usare il software per la ricerca attiva è consigliabile crearsi un ID (account) presso il sito, in modo da poter avere una statistica sul proprio lavoro, ma questo è assolutamente opzionale.

Scompattato l’archivio in una directory a vostro piacimento, il programma viene lanciato da riga di comando con l’opzione voluta (usare -h per un elenco):

[ice@localhost bin]$ ./mprime -h
Usage: mprime [-cdhmstv] [-aN] [-wDIR]
-c      Contact the PrimeNet server, then exit.
-d      Print detailed information to stdout.
-h      Print this.
-m      Menu to configure mprime.
-s      Display status.
-t      Run the torture test.
-v      Print the version number.
-aN     Use an alternate set of INI and output files (obsolete).
-wDIR   Run from a different working directory.

Con -m si può settare come il programma debba lavorare sul vostro sistema (se avete un account potete intervenire anche online dal sito), mentre con -t potete usare il programma come test hardware per il vostro pc (un test nel test quindi)!!!

I calcoli effettuati da GIMPS sono a dir poco stressanti per la CPU e la memoria, tanto è vero che se avete overcloccato il sistema, usare GIMPS per rilevare malfunzionamenti è altamente raccomandato! Lo potete quindi usare anche in un sistema non overcloccato per appurare se il sistema è stabile: se avete un problema hardware con le memorie che si manifesta una volta ogni tanto durante l’utilizzo del pc, è probabile che usando mprime si manifesti sistematicamente.

Tornando al flag -m, le opzioni disposnibili sono molte:

[ice@localhost bin]$ ./mprime -m
[Main thread Feb 20 10:33] Mersenne number primality test program version 25.11
Main Menu
 
1.  Test/Primenet
2.  Test/Worker threads
3.  Test/Status
4.  Test/Continue
5.  Test/Exit
6.  Advanced/Test
7.  Advanced/Time
8.  Advanced/P-1
9.  Advanced/ECM
10.  Advanced/Manual Communication
11.  Advanced/Unreserve Exponent
12.  Advanced/Quit Gimps
13.  Options/CPU
14.  Options/Preferences
15.  Options/Torture Test
16.  Options/Benchmark
17.  Help/About
18.  Help/About PrimeNet Server
Your choice:

Per capire alcune delle opzioni che potete manipolare da quel menu, bisogna conoscere come funziona l’assegnazione degli esponenti effettuati da GIMPS e la modalità di calcolo usata.

Quando GIMPS assegna un esponente si aspetta di ottenere un risultato: è primo o non è primo (se ottiene come risposta un errore di cacolo, il risultato viene scartato, perchè l’hardware su cui si è effettuato il calcolo è fallato).
Successivamente lo stesso esponente viene riassegnato ad un altro computer per avere conferma: se il risultato coincide, allora c’è una sicurezza nella correttezza di cacolo, altrimenti uno dei due calcoli sono avvenuti su un hardware con problemi  senza che venisse rilevato l’errore in fase di calcolo su quel pc: l’esponente va ritestato.

Potreste quindi decidere di voler usare GIMPS per testare un esponente nuovo, oppure per ri-testare un vecchio esponente. Le altre opzioni sono invece relative alla potenza di calcolo offerta dal vostro pc.
Per il test di un esponente su un pc attuale è richiesto un tempo di cacolo di 1 mese circa con 24h su 24h di pc acceso. Con un uso tipico un esponente richiederà 6 mesi o più per essere completato. Per questo è possibile dedicare il programma a calcoli accessori di minor portata (pre-fattorizzazione) su computer lenti o comunque poco usati.

Tenete presente che il programma supporta il multicore, potendo assegnare un esponente ad ogni core per il calcolo.

Riassumento, ecco le opzioni che potete scegliere:

  • GIMPS – What make sense (default)
  • TF-MLH – trial factoring LMH
  • TF – trial factoring
  • PM1-S – factor P-1 Small (future)
  • PM1-L – factor P-1 Large
  • ECM – factor ECM small
  • LL – LL first test
  • D – LL double check
  • LL-WR – LL test for world record
  • LL-10M – LL test 10+ million digits
  • LL-100M – LL test 100+ million digits
  • LL-NF – LL test with no factoring
  • ECM-F – factor ECM Fermat
  • PRP – reserve (future)

A questo punto se vi chiedete se vale la pena di usare GIMPS mentre il vostro PC è in funzione, la risposta può essere:

  • si perchè aiuto la ricerca matematica
  • si perchè posso arrichirmi trovando un nuovo numero primo
  • si perchè tengo monitorato lo stato di salute del mio hardware

Infine, la probabilità che avete di trovare un numero primo è di 1 su 430000, di gran lunga maggiore a quella di vincere la lotteria di capodanno!!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.