Menu #1
Principale Come funziona GIMPS Download software Domande ricorrenti Velocità di diverse CPU Premi da vincere! Stato della ricerca Top producers PrimeNet statistiche
Marin Mersenne
filler
GIMPS
Ricerca numeri primi
4 Record Mondiali

CPU Benchmarks

Dot
2^P-1
filler
Menu #2
La storia Matematica dietro il GIMPS Codice sorgente Iscriviti alla mailing list Ricerca manuale Ringraziamenti Links Invia una e-mail Altri progetti distribuiti
Gennaio 2013 : - Nuovo Primo di Mersenne!


48mo Numero Primo di Mersenne finalmente scoperto!!!!
Scarica il software

 

In questa pagina sono descritte le caratteristiche del programma che in precedenza non sono state documentate. Tali caratteristiche possono essere cambiate o eliminate in ogni momento e nessun supporto è fornito per il loro utilizzo.

  1. Potete forzare il programma ad utilizzare dei nomi differenti per sei dei files che vengono installati sul computer assieme al programma. Questa caratteristica è stata aggiunta per rispondere alle richieste di quegli utenti che hanno installate delle utilities di sicurezza che impediscono a qualunque programma di modificare dei files con estensione *.ini. Possono darsi naturalmente altri casi per cui tale caratteristica si rivela utile. Alla stessa maniera potete specificare anche una cartella di lavoro per Prime95 diversa da quella in cui risiede l'eseguibile (è lo stesso che aggiungere l'argomento -W alla linea di comando). Nel file prime.ini inserite le linee di testo:
    prime.ini=nome_che_avete_scelto;
    local.ini=nome_che_avete_scelto;
    worktodo.ini=nome_che_avete_scelto;
    prime.log=nome_che_avete_scelto;
    prime.spl=nome_che_avete_scelto;
    results.txt=nome_che_avete_scelto;
    WorkingDir=nome_che_avete_scelto;
  2. Potete modificare il comportamento del programma a seconda della fase della giornata.
  3. Potete limitare le operazioni di fattorizzazione su di un esponente. Questa caratteristica non dovrebbe essere utilizzata nel caso di un uso automatico del programma attraverso il server Primenet. Per impedire al programma di fattorizzare un esponente oltre il limite di 2^n, inserite questa linea nel file prime.ini: FactorOverride=n.
  4. Potete forzare l'utilizzo del formato di visualizzazione dell'ora utilizzando il formato AM/PM (a 12 ore) ovvero quello a 24 ore. Sarà altrimenti il programma a decidere in base al formato utilizzato dal sistema operativo. Aggiungete questa linea al file prime.ini: AMPM=n, dove n è 1 per il formato AM/PM, mentre n è 2 per il formato a 24 ore.
  5. Potete decidere quante cifre decimali far visualizzare dal programma nella finestra principale. Nel file prime.ini aggiungete la linea: PercentPrecision=n, dove n è compreso tra 0 e 6.
  6. Potete decidere se il programma utilizzerà l'orologio di sistema ad alta precisione, quello standard ovvero l'R.D.T.S.C. (read timestamp counter instruction) per assegnare un orario agli eventi. Per impostazione di default Prime95 utilizza l'orologio di sistema ad alta precisione, se è disponibile. Nel file prime.ini aggiungete la linea: RdtscTiming=n. Per default n =1 e potete impostare il valore 0 per utilizzare l'orologio di sistema standard; 1 per utilizzare l'R.D.T.S.C. ma senza che venga visualizzato il conteggio totale dei clocks; 2 per utilizzare l'R.D.T.S.C. con la visualizzazione dei clocks totali. I precedenti valori avranno effetto solamente qualora non sia disponibile un orologio di sistema ad alta precisione. Potete forzare il programma a bypassare l'orologio ad alta precisione aggiungendo 10 ai precedenti valori.
  7. Potete modificare il modo in cui il programma visualizza i tempi. Nel file prime.ini aggiungete la linea: TimingOutput=n, dove n=1 per visualizzare i tempi in secondi con tre decimali di precisione, n=2 per visualizzare i tempi in millisecondi con 1 decimale di precisione, n=3 per visualizzare i tempi in millisecondi con 2 decimali di precisione, n=4 per visualizzare i tempi in millisecondi con 3 decimali di precisione.
  8. Potete far sì che il programma smetta di visualizzare date e tempi sullo schermo. Nel file prime.ini aggiungete la linea: TimeStamp=0.
  9. Potete far sì che i tempi visualizzati siano cumulativi (da quando il programma riparte o da quando comincia un test su di un nuovo esponente) piuttosto che essere azzerati ad ogni visualizzazione. Nel file prime.ini aggiungete la linea: CumulativeTiming=1.
  10. Per default il programma non inizierà alcun calcolo entro i primi  90 secondi dopo l'avvio del sistema. Questa caratteristica fa sì che il programma non interferisca minimamente con la velocità di caricamento del sistema operativo. Potete decidere quanto a lungo il programma debba attendere prima di avviarsi dopo l'avvio del sistema aggiungendo nel file prime.ini  la linea: BootDelay=n, dove n sono i secondi di attesa.
  11. Il programma implementa quattro diversi percorsi di codice per l'esecuzione dei test che vengono scelti  sulla base delle caratteristiche del processore. Sono altresì implementati anche dei percorsi di codice leggermente diversi per la fase di fattorizzazione. E' possibile forzare il programma ad adottare uno specifico percorso di codice, inserendo nel file prime.ini la combinazione più adatta dei seguenti parametri a seconda delle caratteristiche del vostro processore: CpuSupportsRDTSC=0 o 1; CpuSupportsCMOV=0 o 1; CpuSupportsPrefetch=0 o 1; CpuSupportsSSE=0 o 1; CpuSupportsSSE2=0 o 1. Tuttavia non dovrebbe essere necessario che voi editiate il file prime.ini in tal senso poiché il programma implementa le istruzioni di CPUID per verificare quali siano le caratteristiche della vostra CPU rilevandone tipo e frequenza di funzionamento.La rilevazione del tipo di CPU viene eseguita per informare il server di quale sia il tipo di lavoro più adatto al vostro sistema. Quest'informazione, unitamente  alla frequenza, viene utilizzata nel calcolo della stima delle date attese per il termine del lavoro in coda e quindi per far sapere al server quanto lavoro assegnarvi. Se, per qualche ragione, il programma non dovesse rilevare correttamente tali informazioni, potete sovrascriverle nel file local.ini: CpuOverride=1; CpuType=n; CpuSpeed=s, dove n è 3=Cyrix, 4=486, 5=Pentium, 6=Pro, 7=K6, 8=Celeron, 9=P-II, 10=P-III, 11=K7, 12=P4 ed s è la frequenza del processore espressa in MHz.
  12. Per default il programma inizia subito la fase di fattorizzazione secondo il metodo di Pollard (P-1 factoring) quando riceve esponenti che la richiedano anche se stava eseguendo un test di primalità su di un esponente assegnato in precedenza. La ratio di tale comportamento sta nel fatto che se un fattore viene trovato subito in questa fase, il programma può ricontattare il server e riservarsi un altro esponente. Questo evita che si possa manifestare lo scenario in cui il test di Lucas-Lehmer relativo al primo esponente in coda nel file worktodo.ini venga completato, un fattore venga rapidamente trovato per l'esponente successivo ed il programma rimanga inattivo qualora una connessione non sia disponibile. Inoltre, così facendo, anche le stime per il termine dei vari test accodati (visualizzabili tramite l'opzione "Status" del menù "Test") risultano più precise in quanto si saprà per certo su quali esponenti sarà necessario eseguire un intero test di primalità. Questo comportamento si è purtroppo rivelato fonte di confusione soprattutto per i nuovi utenti. Per ripristinare il vecchio comportamento che prevedeva l'esecuzione dei test sugli esponenti accodati nel file worktodo.ini in stretta sequenza, aggiungete questa linea nel file prime.ini: SequentialWorkToDo=0.
  13. Il programma non permette di accodare più di venti esponenti nel file worktodo.ini. Per eliminare tale limitazione aggiungete la linea seguente nel file prime.ini: MaxExponents=n.
  14. Per default, l'algoritmo E.C.M. si arresterà qualora venga trovato un fattore per tutti gli esponenti superiori a 5825. Potete far sì che tale algoritmo si arresti sempre ovvero continui nella ricerca di fattori anche in caso in cui ne trovi uno inserendo 0 o 1 al posto della n nella seguente linea del file prime.ini: ContinueECM=n.
  15. Potete forzare il programma a saltare la fase conclusiva del primo stadio di fattorizzazione preliminare (GCD), aggiungendo la seguente linea nel file prime.ini: Stage1GCD=0.
  16. Potete impedire a chiunque l'accesso al box di dialogo relativo alle informazioni sull'utente accessibile tramite l'opzione "User Information" del menù "Test" Inserite nel file prime.ini la linea: LockUserInfo=1.
  17. Potete forzare il programma a contattare il server ogni qualvolta esso venga avviato, anche se davvero non esistono validi motivi per farlo. Inserite nel file prime.ini: PingAtStartup=1.
  18. Potete far sì che il programma generi dei files dei file di salvataggio (che non verranno cancellati automaticamente!) ogni n iterazioni. Tali files avranno l'estensione .XXX, dove XXX sarà uguale ad un'approssimazione dell'iterazione corrente diviso per n. Inserite nel file prime.ini: InterimFiles=n. Questa caratteristica può essere utile per monitorare l'andamento di un test senza avere la possibilità di visualizzare la finestra del programma, ad esempio per dei computer connessi in LAN. La controindicazione è quella dello spazio su disco richiesto.
  19. Potete forzare il programma a generare dei residui ogni n iterazioni. Inserite nel file prime.ini: InterimResidues=n.
  20. Potete far sì che Prime95 salti la fase di trial factoring prima dell'esecuzione di un test di primalità di Lucas-Lehmer test. Aggiungete al file prime.ini questa linea: SkipTrialFactoring=1. Potete altresì forzare l'esecuzione della fattorizzazione P-1 aggiungendo al file worktodo.ini le seguenti linee: Pfactor=esponente,numero_dei_bit_già_fattorizzati,se_è_già_stato_testato. Ad esempio: Pfactor=10000157,64,0 (10000157=esponente; 64=bit sino a cui l'esponente è già stato fattorizzato; 0=non è mai stato testato).
  21. Potete ridurre il numero delle volte che il file worktodo.ini viene letto aggiungendo nel file prime.ini: WellBehavedWork=1. Questa opzione è attivabile solo se nel vostro file worktodo.ini siano accodati esponenti da fattorizzare (Factor=...). E' consigliabile attivare quest'opzione solamente nel caso in cui aveste davvero molti esponenti in coda ed il vostro computer sia particolarmente veloce In questo caso dovrete arrestare Prime95 prima di modificare il file worktodo.ini.
  22. Nel menù "Advanced/Time" potete inserire nel campo riservato all'esponente un valore compreso tra 9994 e 9999 così da mandare in esecuzione uno script QA. Questo tipo di scripts hanno la seguente forma: 64511,0,400,99999999,3389BC878321980A, dove il primo valore è l'esponente, il secondo è la dimensione della FFT con zero che significa "utilizza la dimensione della FFT standard". Il terzo valore corrisponde al numero di iterazioni da eseguire. Il quarto valore corrisponde invece allo shift nel conteggio(se tale shift è maggiore dell'esponente, il programma genererà uno shift random).L'ultimo valore è il residuo a 64-bit atteso. I valori tra 9994 e 9999 forzano l'esecuzione di un codice leggermente diverso. I valori 9999 e 9998 mandano in esecuzione un codice per il calcolo di mere radici quadrate; inserire 9998 fa sì che, in aggiunta, vengano raccolti anche alcuni dati sulla deviazione standard. Anche il valore 9997 forza il calcolo di radici però utilizza pure le routines generiche somma/sottrai/moltiplica. Il valore 9996 manda in esecuzione le operazioni tipiche dell'algoritmo E.C.M. Il residuo finale non coinciderà, però i dati relativi all'errore di convoluzione saranno utili in ogni caso.
  23. Potete cercare fattori di  un dato range di esponenti specificando un limite inferiore (incluso) di bits, b1, ed uno superiore, b2 (incluso). Probabilmente tale caratteristica sarà rimossa nelle versioni future del programma. Aggiungete questa linea al vostro file worktodo.ini: AdvancedFactor=esponente_di_partenza,esponente_di_arrivo,b1,b2.
  24. L'opzione appena citata, AdvancedFactor, utilizza il nome p0000000 per i file di continuazione. Questo può causare dei problemi se provate a far girare due copie di Prime95 dalla medesima cartella su di un sistema biprocessore ed eseguendo lavori di fattorizzazione utilizzando il menù "Advanced/Factoring". Aggiungete dunque questa linea al file prime.ini per forzare l'utilizzo di nomi differenti per i file di continuazione: AdvFacFileName=nomefile. In "AdvancedFactor", un esponente di partenza pari a 8888 forza la lettura di un file chiamato "factors". Il programma cerca quindi di trovare nuovamente ciascun fattore utilizzando il codice di fattorizzazione. Questo, evidentemente, non è un modo efficiente di verificare dei fattori in quanto così si salta del tutto il processo di scrematura e di verifica di molti potenziali fattori.
  25. Nel file local.ini, potete inserire valori negativi sia per la memoria utilizzabile dal programma durante il giorno che quella utilizzabile di notte. Valori negativi significano che il programma potrà utilizzare tutta la memoria di sistema tranne l'ammontare specificato da tali valori. Ad esempio: se avete un sistema con 128 Mb di RAM, un valore di -32 significa che Prime95 potrà usare 128-32=96 Mb di RAM.
  26. Potete decidere quale dimensione di FFT sarà utilizzata durante il tets della tortura. Nel file prime.ini potete impostare: MinTortureFFT=n; MaxTortureFFT=m, dove n ed m sono espressi in Kb. I valori di default per n e per m sono rispettivamente 8 e 1024 che portano all'esecuzione di test che utilizzeranno a caso FFT di dimensione compresa tra questi valori. Se imposte valori bassi per n e per m (ad esempio 8 e 16) potrete ottenere che tutte le FFT siano contenute nella cache di 2° livello di modo che lo stress per la FPU sia ancora maggiore.
  27. Potete controllare per quanti minuti ciascuna dimensione delle FFT venga testata durante un test della tortura. Sarà sufficiente che inseriate nel file prime.ini: TortureTime=n. dove n sono i minuti. Il valore di default è di un quarto d'ora.
  28. Di solito il programma esegue un controllo d'errore round-off ogni 128 iterazioni. Quando testa un esponente vicino alla soglia della dimensione di una FFT, il programma esegue tale controllo ogni iterazione. Potete controllare anche quest'aspetto di un test. Inserite nel file prime.ini la linea: NearFFTLimitPct=valore. Il valore di default è 0,5 il che significa che se l'esponente che state testando è entro lo 0,5% del massimo esponente che possa essere testato utilizzando la dimensione corrente di FFT, allora il programma eseguirà il controllo extra. se impostate un valore pari a 0,0 escluderete questa forma di controllo d'errore round-off extra.
  29. Quando selezionate l'opzione "Tray Icon" oppure "No Icon", fare click sulla "X" sull'angolo in alto a sinistra della barra del titolo della finestra del programma provocherà la sua riduzione ad icona anziché la sua chiusura. Per far sì invece che Prime95 venga chiuso assieme alla chiusura della sua finestra sarà sufficiente inserire la linea ExitOnX=1 nel file prime.ini.
  30. Potete cambiare il nome del servizio visualizzato dall'applet del pannello di controllo dei sistemi operativi Windows® NT/2000/XP nonché il "service display name". I nomi di default per entrambe sono "Prime95 Service". Impostate nel file prime.ini: ServiceName=Vostro_nome; DisplayName=vostro_service_display_name. Potreste voler far questo qualora facciate girare due copie di Prime95 in cartelle differenti su di un sistema biprocessore piuttosto che farle girare nella stessa cartella con l'argomento della linea di comando -A1.
  31. Il programma non utilizza più dei punti fissi di salto tra le differenti dimensioni delle FFT. E' stato introdotto un salto "morbido" che ha due possibilità di regolazione  tramite il file prime.ini: SoftCrossovers=n  e SoftCrossoverAdjust=n. La prima opzione controlla quali esponenti prendere in considerazione per un eventuale salto. L'impostazione di default è 0,2 il che significa che un esponente che sia lo 0,2% sopra o sotto un punto di salto verrà testato utilizzando la migliore (nel senso di più veloce) dimensione di FFT. Un valore pari a 0,0 escluderà questa opzione. La seconda opzione controlla invece il livello di aggressività o di prudenza che il programma adotterà nella scelta della dimensione della FFT. In questo caso il valore di default è 0,000. Il programma utilizzerà la dimensione più piccola (e quindi più veloce) di FFT se la media del controllo di errore round-off è inferiore ad un valore compreso tra 0,241 e 0,243. se ad esempio impostate un valore per il parametro SoftCrossoverAdjust a 0,003 allora il programma utilizzerà la più piccola FFT se l'errore round-off medio è compreso tra 0,244 e 0,246. Questo genererà più iterazioni che produrranno il messaggio di avvertimento di "round-off error>0.40" ed una perdita di tempo dovuta al fatto che il programma ritornerà all'ultimo file salvato con successo. Aumenterà parallelamente la possibilità che si verifichi un errore di round-off>0,6 che è considerato fatale per un test, nel senso che occorrerebbe incominciare da capo. Per di più, utilizzare FFT più piccole significa velocizzare l'esecuzione del test cosicché è sconsigliabile impostare per quest'opzione un valore superiore a 0,006.Se impostate un valore per l'opzione SoftCrossoverAdjust di diciamo -0.002, allora il programma sarà più conservativo ed utilizzerà più spesso delle FFT appartenenti al range superiore.
  32. Alexander Kruppa  ha scritto del codice che consente di passare i risultati dello stadio 1 dell'E.C.M. allo stadio 2 GMP-E.C.M. del programma di Paul Zimmermann che si è rivelato più efficiente. Potete attivare questa caratteristica inserendo nel file prime.ini GmpEcmHook=1. Quindi selezionate il limite #2 dell'E.C.M. tra 1 ed il limite #1. Il file Results.txt conterrà dei dati che potranno essere passati al GMP-E.C.M. per lo stadio 2.
  33. In rarissimi casi, sono state segnalate interferenze del programma con le prestazioni di applicazioni quali le utilità di deframmentazione ed alcuni giochi. Per ottenere dunque l'arresto del programma quando siano in esecuzione altri specifici programmi  occorrerà aggiungere la seguente linea al file prime.ini: PauseWhileRunning=prog1,prog2,prog3, ecc. Si noti che Prime95 si fermerà se anche solamente una parte del nome dei programmi in esecuzione coincida con quelli che avete inserito nella lista. Ad esempio se avete specificato il nome "foobar", Prime95 si arresterà  sia che stia girando l'eseguibile"c:\foobar.exe" ma anche se stia girando l'eseguibile "C:\FOOBAR\nome.exe",  e persino se sia in esecuzione un programma che si chiami "C:\myfoobarprog.exe".
  34. Di default, Prime95 controllerà la lista dei programmi in esecuzione ogni 64 iterazioni, ma non più frequentemente che ogni dieci secondi. Potete personalizzare questo lasso di tempo inserendo nel file prime.ini la linea PauseCheckInterval=n, dove n sarà il nuovo intervallo tra una verifica e l'altra espresso in secondi.
  35. Normalmente il programma restituirà al server un esponente se l'inizio del test su tale esponente è previsto 30 giorni dopo il numero massimo di giorni di lavoro che deve essere sempre in coda che avete specificato nel menù "Test/Primenet". Potete aggiustare questo intervallo inserendo nel file prime.ini la linea UnreserveDays=n, dove n è il numero di giorni. Dovreste aumentare questo valore solo se volete accodare parecchi esponenti nel vostro file worktodo.ini e non volete rispedire al server alcun esponente.
  36. Di default, Prime95 utilizza le routines RAS per verificare se il vostro modem è connesso o meno alla rete Internet. La Microsoft ora preferisce le chiamate InternetGetConnectedState contenute nella libreria WININET.DLL. Per utilizzare questo metodo di rilevamento della connessione attiva invece delle routines RAS, aggiungete questa linea al file prime.ini: AlternateModemDetection=1.