Jump to content

Recommended Posts



  • Replies 437
  • Created
  • Last Reply

Top Posters In This Topic

Numeri Primi Scoperti : 5761455 In 3262 Millisecondi però non butta il processore al 100%, ok che gira per pochi secondi però non carica tutti i cores :(

 

Scusa, quando ho postato avevo sonno, e sono stato molto telegrafico,

ma non era per il.... carico.... il test, solo per vedere sè funzionava

su CPU diverse;

quasi sei milioni di numeri primi in 3 secondi e rotti.......

due milioni di numeri primi al secondo,

....non è male ...credo ...:)

Link to comment
Share on other sites

Scusa, quando ho postato avevo sonno, e sono stato molto telegrafico,

ma non era per il.... carico.... il test, solo per vedere sè funzionava

su CPU diverse;

quasi sei milioni di numeri primi in 3 secondi e rotti.......

due milioni di numeri primi al secondo,

....non è male ...credo ...:)

l'algoritmo macina di brutto, ma credo che inevitabilmente all'aumentare delle cifre l'elaborazione rallenta.

immagino che trovare un numero primo da 100 cifre non sia la stessa cosa che trovare un numero primo da 10 cifre

sbaglio?:cheazz:

Link to comment
Share on other sites

Scusa, quando ho postato avevo sonno, e sono stato molto telegrafico,

ma non era per il.... carico.... il test, solo per vedere sè funzionava

su CPU diverse;

quasi sei milioni di numeri primi in 3 secondi e rotti.......

due milioni di numeri primi al secondo,

....non è male ...credo ...:)

 

 

a per macinare macina!! :asd::asd: O0:n2mu:

Link to comment
Share on other sites

Pentium D805@3.6Ghz

Asus P5ND2 Sli

2GB SuperTalent PC2-6400 407Mhz@4-4-4-12

Windows XP SP3

 

 

Numeri Primi Scoperti : 5761455 In 8500 Millisecondi

 

 

 

l'algoritmo macina di brutto, ma credo che inevitabilmente all'aumentare delle cifre l'elaborazione rallenta.

immagino che trovare un numero primo da 100 cifre non sia la stessa cosa che trovare un numero primo da 10 cifre

sbaglio?:cheazz:

 

 

decisamente Leo, il tempo necessario aumenta geometricamente.

 

Ad esempio, arrivare a calcolare questo primo (2^1257787-1) porterebbe via un bel pò di tempo in più :asd:

 

Non lo inserisco direttamente perchè, per renderne bene la lunghezza, il file di testo col solo numero pesa qualcosa come ~500KB.

 

 

Per chi ha curiosità inserisco il link per scaricarlo e farsene un'idea più precisa :)

 

 

 

 

p.s.

 

per esattezza è rappresentato da 378632 cifre ed è stato scoperto nel 1996, quindi in assoluto non è attualmente tra i più impegnativi da scoprire.

Edited by Totocellux
Link to comment
Share on other sites

Pentium D805@3.6Ghz

Asus P5ND2 Sli

2GB SuperTalent PC2-6400 407Mhz@4-4-4-12

Windows XP SP3

 

 

Numeri Primi Scoperti : 5761455 In 8500 Millisecondi

 

 

in teroia con la mia routine facendo salti in radice quadrata con long step di 1582028137369 dovrei arrivarci in poco tempo,

solo che il pc non la gestisce :)

 

 

decisamente Leo, il tempo necessario aumenta geometricamente.

 

Ad esempio, arrivare a calcolare questo primo (2^1257787-1) porterebbe via un bel pò di tempo in più :asd:

 

Non lo inserisco direttamente perchè, per renderne bene la lunghezza, il file di testo col solo numero pesa qualcosa come ~500KB.

 

 

Per chi ha curiosità inserisco il link per scaricarlo e farsene un'idea più precisa :)

 

 

 

 

p.s.

 

per esattezza è rappresentato da 378632 cifre ed è stato scoperto nel 1996, quindi in assoluto non è attualmente tra i più impegnativi da scoprire.

 

 

il giocattolo se lo metti a 4.1 ghz quanto ti fà ? :)

Edited by Xstreme
Link to comment
Share on other sites

Pentium D805@3.6Ghz

Asus P5ND2 Sli

2GB SuperTalent PC2-6400 407Mhz@4-4-4-12

Windows XP SP3

 

 

Numeri Primi Scoperti : 5761455 In 8500 Millisecondi

 

 

ah

 

a titolo personale, cioe, curiosità mia, a parte l'interfaccia

grafica tirata su con blitzmax, il resto si vede con cosa

è scritto ? :cheazz:

Link to comment
Share on other sites

il giocattolo se lo metti a 4.1 ghz quanto ti fà ? :)

 

 

sono ad aria, quindi al limite di stabilità a 3.6Ghz (.... è il mio pc d'ufficio)

 

 

 

 

ah

 

a titolo personale, cioe, curiosità mia, a parte l'interfaccia

grafica tirata su con blitzmax, il resto si vede con cosa

è scritto ? :cheazz:

 

 

Con un debugger non è così lampante stabilirlo, ci sarebbero da fare ulteriori approfondimenti.

 

Ma col solo debugger perdendoci un pò di tempo e seguendo delle tracce:

 

i37451_PrimeCoresRecord01.jpg

 

 

da questo sprintf (e altro) direi che è scritto in dialetto C++

Link to comment
Share on other sites

sono ad aria, quindi al limite di stabilità a 3.6Ghz (.... è il mio pc d'ufficio)

 

 

 

 

 

 

 

Con un debugger non è così lampante stabilirlo, ci sarebbero da fare ulteriori approfondimenti.

 

Ma col solo debugger perdendoci un pò di tempo e seguendo delle tracce:

 

i37451_PrimeCoresRecord01.jpg

 

 

da questo sprintf (e altro) direi che è scritto in dialetto C++

 

 

 

sei mitico :) :clapclap:

Link to comment
Share on other sites

..... eh eh, tu packettizzi tutto :asd:

 

 

comunque per maggior precisione, considerato che nel jump è invocata la libreria msvcrt.dll (e di certo tu tieni il tuo pc aggiornato) direi che con ogni probabilità è Microsoft Visual C++ :)

 

no, non ci crederai ma è lo scrausissimo MinGW :)

 

ehm ottimizzando ottimizzando .......

 

Numeri Primi Scoperti : 45599980 In 23571 Millisecondi

 

 

 

99999989 199999991

199999993 199999995 199999997 199999999

 

Numeri Primi Scoperti : 78001134 In 39580 Millisecondi

Edited by Xstreme
Link to comment
Share on other sites

  • 3 weeks later...
funziona anche troppo bene tanto che l'ultimo step per il maggior numero di numeri primi, imho, è anche troppo veloce... 35sec circa sul mio superpippa II!!

alla fine sei arrivato ad un algoritmo anche troppo efficiente :asd::asd::asd:

 

per ogni core parto da 0 e arrivo a trovare max 21336354 numeri primi

 

quindi il tuo computer non calcola 512072496 numeri primi reali ,

ma (0 -> 21336354) * (numero di core)

 

21336354 * 24 = 51207249

 

in queste ore ho messo a punto (e funziona) lo stesso algoritmo

ma con il THREAD_PRIORITY_HIGHEST settato su ON per migliorarne

l'efficenza, senza toccare la priorità dell'intero processo, ho implementato

anche un multithreading sui singoli processi restanti

per migliorare la latenza,

e ho scoperto che i benchmark multicore che danno sempre lo stesso tempo

su sistemi multicore o.... sono ottimizzati da piccoli omini verdi o.... secondo

me non sono reali.....:fiufiu:

 

come Toto ti potra confermare , il 75 % del codice è in C ,

la routine che estrapola i numeri primi è in Assembler (INLINE nel codice C),

quindi Thread gestiti in C e calcoli in Assembler.

Edited by Xstreme
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...