Prime Cores V1.0 Freeware
-
apix_1024 ha scritto:
per i 16milioni non saranno 20 ma poco ci cala. dopo che li ha visualizzati tutti sta a lavorare un pò ancora il core che ha fatto i conti. forse 5 o 7 secondi e quindi conto anche quelli. per i numeri primi bhò forse sono 3-4 sec. la stima a 20sec era spannometrica.. forse sono 10-12
no caro,
quello che fà il tuo processore dopo i miei calcoli
sono fatti suoi
,io prendo i millisecondi dal timer di windows
e li metto in una variabile dall'istante in cui
inizia il primo calcolo, alla fine del risultato
dell'ultimo calcolo, riprendo i millisecondi
dal timer di windows, e faccio la sottrazione.
-
Le085 ha scritto:
e6700 @ 3ghz2x1gb ddr2-800
c'è ancora notevole disparità visualizzando o no i numeri...cosa che è un po' strana ma ci potrebbe stare (quando li visualizza la scheda video o chi per lei inizia a fischiare....)
ps: non si potrebbe mettere uan check box che consenta di togliere la spunta a visualizza i numeri?
così una volta messa non si toglie più...
in teoria ed anche in pratica, il risultato delle operazioni
matematiche nude e crude è quello senza display, quando
utilizzi il display dei numeri, ci si mette di mezzo anche
il processore della scheda grafica (GPU), quindi, tutto
quello che succede a livello grafico incide sulla
potenza di calcolo effettiva della sola CPU, per concludere
quando si finisce qualsiasi tipo di test o di benchmark,
che fà uso di interfaccia grafica il risultato è SEMPRE
la combinazione di velocità di CPU & GPU, a meno che
quando si fanno i calcoli, non si utilizza l'uso di
qualsiasi tipo di grafica, con un apposita opzione di
scelta, l'inconveniente e che non sai a che punto è
il processo di test o benchmark, calcolando che
le ultime release di windows fanno pesante uso di
grafica testuale e non, (il testo sempre grafica è)
puoi ben intuire l'influenza dell GPU sul risultato finale
del test.
-
apix_1024 ha scritto:
questa versione è migliorara un pò
cmq 16milioni in:
420ms no visualizzazione
7260ms visualizzazione
forse mi sono spiegato male io, anzi, è cosi....

su i primi 16 milioni di numeri interi ci sono 1031130 numeri primi
quindi ha calcolato l'estrazione di 1031130
numeri primi da 16 milioni di numeri interi in 420 ms
ok ?

-
eh si, devo dire che con l'algoritmo di estrazione hai davvero fatto un ottimo lavoro :clapclap:
P5B Premium
[email protected] (11x326)
4GB Ram 407Mhz@5-5-5-15
Windows 7 Ultimate build 7100 64bit
senza visualizzazione: 0.421sec

con vis: 6.487sec

-
Totocellux ha scritto:
eh si, devo dire che con l'algoritmo di estrazione hai davvero fatto un ottimo lavoro :clapclap:P5B Premium
[email protected] (11x326)
4GB Ram 407Mhz@5-5-5-15
Windows 7 Ultimate build 7100 64bit
senza visualizzazione: 0.421sec
con vis: 6.487sec
mi sono inventato MEFISTO

MErsenne
Factorial
Iteraction
STring
Operations
MFI per gli amici ...
e sto lavorano sulle iterazioni MFI in blocchi di
16 milioni di interi a gradini di 32 - 64 - 128 - 256 etc etc,
cioè per esempio con un iterazione di 32 MFI
l'algo estrarrà (1031130 * 32) di numeri primi,
sui primi scoperti eseguirò un ulteriore
estrapolazione dei "Mersenne",
infine sui Mersenne ne calcolo il fattoriale,
il fattoriale servirà ad alimentare varie stringhe
di testo, (cioè trasformo numeri in testo),
con questi blocchi di stringhe che ci faccio ?
beh visto che ci sono gli applico un algo
di quicksort.....direi che potrebbe bastare,
una volta fatto questo gli applico la verifica
dei risultati con tabella statica preinserita
nel codice in rigoroso DATA .
per settimana prossima dovrei riuscire a
rilasciare la versione gamma.
-
bonis62 ha scritto:
forse mi sono spiegato male io, anzi, è cosi....
su i primi 16 milioni di numeri interi ci sono 1031130 numeri primi
quindi ha calcolato l'estrazione di 1031130
numeri primi da 16 milioni di numeri interi in 420 ms
ok ?

si avevo visto che il n° di numeri primi era 100k e suffla. ottimo lavoro
bonis62 ha scritto:
mi sono inventato MEFISTO
MErsenne
Factorial
Iteraction
STring
Operations
MFI per gli amici ...
e sto lavorano sulle iterazioni MFI in blocchi di
16 milioni di interi a gradini di 32 - 64 - 128 - 256 etc etc,
cioè per esempio con un iterazione di 32 MFI
l'algo estrarrà (1031130 * 32) di numeri primi,
sui primi scoperti eseguirò un ulteriore
estrapolazione dei "Mersenne",
infine sui Mersenne ne calcolo il fattoriale,
il fattoriale servirà ad alimentare varie stringhe
di testo, (cioè trasformo numeri in testo),
con questi blocchi di stringhe che ci faccio ?
beh visto che ci sono gli applico un algo
di quicksort.....direi che potrebbe bastare,
una volta fatto questo gli applico la verifica
dei risultati con tabella statica preinserita
nel codice in rigoroso DATA .
per settimana prossima dovrei riuscire a
rilasciare la versione gamma.
mi esalto sempre di più quando vedo operazioni matematiche hard
:asd:
aspetto di gusto!!!
-
Una preview....
MEFISTO non ancora attivo (QUINDI SOLO NUMERI PRIMI)
ma siamo già al 100 %
notare la memoria IN USO per la gestione
della miriade di primi.....


-
:ave:
devo torchiare il mio superpippa 2
:asd:
:ave:
-
-
..... quindi, hai davvero cominciato ad utilizzare BlitzMax!

-
Totocellux ha scritto:
..... quindi, hai davvero cominciato ad utilizzare BlitzMax!
http://www.xstreme.it/Per_Toto.zip
test per Toto :
in che linguaggio sono ?

-
modulo toto1
Inizializzazione:
00401000 /$ 68 2C000000 PUSH 2C ; /n = 2C (44.) 00401005 |. 68 00000000 PUSH 0 ; |c = 00 0040100A |. 68 A4424000 PUSH toto1.004042A4 ; |s = toto1.004042A4 0040100F |. E8 5C100000 CALL ; memset 00401014 |. 83C4 0C ADD ESP,0C 00401017 |. 68 00000000 PUSH 0 ; /pModule = NULL 0040101C |. E8 55100000 CALL ; GetModuleHandleA 00401021 |. A3 A8424000 MOV DWORD PTR DS:[4042A8],EAX 00401026 |. 68 00000000 PUSH 0 ; /MaximumSize = 0 0040102B |. 68 00100000 PUSH 1000 ; |InitialSize = 1000 (4096.) 00401030 |. 68 00000000 PUSH 0 ; |Flags = 0 00401035 |. E8 42100000 CALL ; HeapCreate 0040103A |. A3 A4424000 MOV DWORD PTR DS:[4042A4],EAX 0040103F |. E8 6C130000 CALL toto1.004023B0 00401044 |. E8 6B120000 CALL toto1.004022B4 00401049 |. 68 03000000 PUSH 3 0040104E |. 68 03000000 PUSH 3 00401053 |. E8 C4120000 CALL toto1.0040231C 00401058 |. 68 15000000 PUSH 15 0040105D |. 68 C8424000 PUSH toto1.004042C8 00401062 |. 68 00000000 PUSH 0 00401067 |. 8B15 C8424000 MOV EDX,DWORD PTR DS:[4042C8] 0040106D |. E8 8E0F0000 CALL toto1.00402000 00401072 |. B8 00200000 MOV EAX,2000 00401077 |. 68 04000000 PUSH 4 0040107C |. E8 9F0F0000 CALL toto1.00402020 00401081 |. 68 32404000 PUSH toto1.00404032 ; ASCII "Toto attendi prego..." 00401086 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 0040108C |. 68 09000000 PUSH 9 00401091 |. 68 09000000 PUSH 9 00401096 |. E8 81120000 CALL toto1.0040231C 0040109B |. 68 1C404000 PUSH toto1.0040401C
[.................]
Elaborazione:
004010A0 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 004010A6 |. 68 09000000 PUSH 9 004010AB |. 68 09000000 PUSH 9 004010B0 |. E8 67120000 CALL toto1.0040231C 004010B5 |. E8 C80F0000 CALL ; [GetTickCount 004010BA |. A3 B0424000 MOV DWORD PTR DS:[4042B0],EAX 004010BF |. C705 B4424000 0>MOV DWORD PTR DS:[4042B4],1 004010C9 |> B8 50C30000 /MOV EAX,0C350 004010CE |. 3B05 B4424000 |CMP EAX,DWORD PTR DS:[4042B4] 004010D4 |. 0F8C F3000000 |JL toto1.004011CD 004010DA |. C705 B8424000 0>|MOV DWORD PTR DS:[4042B8],0 004010E4 |. C705 BC424000 0>|MOV DWORD PTR DS:[4042BC],0 004010EE |> B8 FE1F0000 |/MOV EAX,1FFE 004010F3 |. 3B05 BC424000 ||CMP EAX,DWORD PTR DS:[4042BC] 004010F9 |. 7C 1F ||JL SHORT toto1.0040111A 004010FB |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 00401101 |. 8B2D C8424000 ||MOV EBP,DWORD PTR DS:[4042C8] 00401107 |. C1E3 02 ||SHL EBX,2 0040110A |. C7441D 00 01000>||MOV DWORD PTR SS:[EBP+EBX],1 00401112 |. FF05 BC424000 ||INC DWORD PTR DS:[4042BC] 00401118 |.^EB D4 |JMP SHORT toto1.004010EE 0040111A |> C705 BC424000 0>|MOV DWORD PTR DS:[4042BC],0 00401124 |> B8 FE1F0000 |/MOV EAX,1FFE 00401129 |. 3B05 BC424000 ||CMP EAX,DWORD PTR DS:[4042BC] 0040112F |. 0F8C 8D000000 ||JL toto1.004011C2 00401135 |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 0040113B |. 8B2D C8424000 ||MOV EBP,DWORD PTR DS:[4042C8] 00401141 |. C1E3 02 ||SHL EBX,2 00401144 |. 8B5C1D 00 ||MOV EBX,DWORD PTR SS:[EBP+EBX] 00401148 |. 83FB 01 ||CMP EBX,1 0040114B |. 75 6A ||JNZ SHORT toto1.004011B7 0040114D |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 00401153 |. 031D BC424000 ||ADD EBX,DWORD PTR DS:[4042BC] 00401159 |. 891D C0424000 ||MOV DWORD PTR DS:[4042C0],EBX 0040115F |. 8305 C0424000 0>||ADD DWORD PTR DS:[4042C0],3 00401166 |. 8B1D BC424000 ||MOV EBX,DWORD PTR DS:[4042BC] 0040116C |. 031D C0424000 ||ADD EBX,DWORD PTR DS:[4042C0] 00401172 |. 891D C4424000 ||MOV DWORD PTR DS:[4042C4],EBX 00401178 |> 8B1D C4424000 ||/MOV EBX,DWORD PTR DS:[4042C4] 0040117E |. 81FB FE1F0000 |||CMP EBX,1FFE 00401184 |. 7F 2B |||JG SHORT toto1.004011B1 00401186 |. 8B1D C4424000 |||MOV EBX,DWORD PTR DS:[4042C4] 0040118C |. 8B2D C8424000 |||MOV EBP,DWORD PTR DS:[4042C8] 00401192 |. C1E3 02 |||SHL EBX,2 00401195 |. C7441D 00 00000>|||MOV DWORD PTR SS:[EBP+EBX],0 0040119D |. 8B1D C4424000 |||MOV EBX,DWORD PTR DS:[4042C4] 004011A3 |. 031D C0424000 |||ADD EBX,DWORD PTR DS:[4042C0] 004011A9 |. 891D C4424000 |||MOV DWORD PTR DS:[4042C4],EBX 004011AF |.^EB C7 ||JMP SHORT toto1.00401178 004011B1 |> FF05 B8424000 ||INC DWORD PTR DS:[4042B8] 004011B7 |> FF05 BC424000 ||INC DWORD PTR DS:[4042BC] 004011BD |.^E9 62FFFFFF |JMP toto1.00401124 004011C2 |> FF05 B4424000 |INC DWORD PTR DS:[4042B4] 004011C8 |.^E9 FCFEFFFF JMP toto1.004010C9 004011CD |> E8 B00E0000 CALL ; [GetTickCount
[.................]
Visualizzazione:
0040120B |. BA 48404000 MOV EDX,toto1.00404048 ; ASCII " iterazioni in : " 00401210 |. E8 EB110000 CALL toto1.00402400 00401215 |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 0040121A |. 50 PUSH EAX 0040121B |. 50 PUSH EAX 0040121C |. A1 B0424000 MOV EAX,DWORD PTR DS:[4042B0] 00401221 |. 99 CDQ 00401222 |. 52 PUSH EDX 00401223 |. 50 PUSH EAX 00401224 |. E8 E70F0000 CALL toto1.00402210 00401229 |. 58 POP EAX 0040122A |. BA 0D404000 MOV EDX,toto1.0040400D ; ASCII " millisecondi." 0040122F |. E8 CC110000 CALL toto1.00402400 00401234 |. FF05 DC424000 INC DWORD PTR DS:[4042DC] 0040123A |. 8B15 64404000 MOV EDX,DWORD PTR DS:[404064] 00401240 |. 011424 ADD DWORD PTR SS:[ESP],EDX 00401243 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 00401249 |. 8F05 DC424000 POP DWORD PTR DS:[4042DC] 0040124F |. 68 03000000 PUSH 3 00401254 |. 68 03000000 PUSH 3 00401259 |. E8 BE100000 CALL toto1.0040231C 0040125E |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 00401263 |. 50 PUSH EAX 00401264 |. 50 PUSH EAX 00401265 |. BA 1E404000 MOV EDX,toto1.0040401E ; ASCII " Primi Calcolati : " 0040126A |. E8 91110000 CALL toto1.00402400 0040126F |. A1 DC424000 MOV EAX,DWORD PTR DS:[4042DC] 00401274 |. 50 PUSH EAX 00401275 |. 50 PUSH EAX 00401276 |. A1 B8424000 MOV EAX,DWORD PTR DS:[4042B8] 0040127B |. 99 CDQ 0040127C |. 52 PUSH EDX 0040127D |. 50 PUSH EAX 0040127E |. E8 8D0F0000 CALL toto1.00402210 00401283 |. 58 POP EAX 00401284 |. FF05 DC424000 INC DWORD PTR DS:[4042DC] 0040128A |. 8B15 64404000 MOV EDX,DWORD PTR DS:[404064] 00401290 |. 011424 ADD DWORD PTR SS:[ESP],EDX 00401293 |. FF15 68404000 CALL DWORD PTR DS:[404068] ; toto1.0040234B 00401299 |. 8F05 DC424000 POP DWORD PTR DS:[4042DC] 0040129F |. 68 70170000 PUSH 1770 ; /Timeout = 6000. ms 004012A4 |. E8 F40F0000 CALL ; Sleep 004012A9 |. 68 00000000 PUSH 0 004012AE |. E8 10000000 CALL toto1.004012C3 004012B3 |. FF35 A4424000 PUSH DWORD PTR DS:[4042A4] ; |/hHeap = NULL 004012B9 |. E8 CA0D0000 CALL ; |HeapDestroy 004012BE . E8 CB0D0000 CALL ; ExitProcess
....... eh monello
: purtroppo non ho il tempo adeguato alla situazione 
Toto2 non funge sulla macchina con cui sto lavorando.
Appena torno a casa vedrò di dare una rapida occhiata anche a quello

-
Totocellux ha scritto:
modulo toto1ti risparmio tempo

uno è scritto in Visual C++ ,
l'altro è scritto in PureBasic ,
quello scritto in BlitzMax lo hai gia visto ,
se vuoi ti mando anche la stessa routine in :
Ansi C , Delphi , C Sharp , Fortran , Flat Assembler e Visual Studio,
in Java no, perchè mi è antipatico.

ps
ho compilato la stessa routine nei linguaggi su esposti,
se vuoi ti faccio una classifica

1) Visual C++
2) .............
3) .............
4) BlitzMax
5) .............
6) .............
7) .............
Fortran -
bonis62 ha scritto:
[........]
se vuoi ti mando anche la stessa routine in :
Ansi C , Delphi , C Sharp , Fortran , Flat Assembler e Visual Studio,
in Java no, perchè mi è antipatico.

ps
ho compilato la stessa routine nei linguaggi su esposti,
se vuoi ti faccio una classifica

classifica per velocità di esecuzione?
Flat Assembler
Fortran (90 o 95?)
Ansi C
Visual Studio
C#
Delphi
-
Totocellux ha scritto:
classifica per velocità di esecuzione?Flat Assembler
Fortran (90 o 95?)
Ansi C
Visual Studio
C#
Delphi
Java : portabilità, discretamente veloce ma poco "commerciale"

C++ : portabilità prossima allo 0, veloce

PureBasic : Tantovale programmare in C++

Visual Basic : la patria dei BUG

Flat Assembler : Bello e impossibile

C : librerie scadenti :perfido:
C# : indissolubile dal Framework .NET

BlitzMax : Gui editor Inesistente ma compilatore quasi a livello Assembler :AAAAH:
Delphi : carino ma vedi il C

PowerBasic : più Basic Che Power

Visual .NET: indissolubile dal Framework .NET
:uglystupid2:Fortran : ottimo sui banchi di scuola, ma li rimane ? :cheazz:
Ansi C : Dinamico, Stabile, ma più macchinoso del C++

-
bonis62 ha scritto:
modulo toto1uno è scritto in Visual C++ ,
l'altro è scritto in PureBasic ,
beh, che toto1.exe fosse scritto in dialetto C non c'erano dubbi: molte chiamate e riferimenti a funzioni C nel modulo toto1 (ho lasciato il malloppo in ufficio).
Ma per scoprire che fosse Visual C++, sarebbe stato molto molto più lungo da averne certezza.
toto2.exe (che a qui a casa su Windows 7 64bit funziona, al contrario del pc in ufficio con XP SP3) non lìho ancora trattato.
Comunque ho notato che 'sto Power Basic (che sconoscevo) nei calcoli matematici è circa 2-3 volte più veloce del Visual C++

A parte tutto, devo farti davvero i miei complimenti per il grandissimo impegno e la volontà che stai profondendo in questo progetto :clapclap:
-
Totocellux ha scritto:
beh, che toto1.exe fosse scritto in dialetto C non c'erano dubbi: molte chiamate e riferimenti a funzioni C nel modulo toto1 (ho lasciato il malloppo in ufficio).
Ma per scoprire che fosse Visual C++, sarebbe stato molto molto più lungo da averne certezza.
toto2.exe (che a qui a casa su Windows 7 64bit funziona, al contrario del pc in ufficio con XP SP3) non lìho ancora trattato.
Comunque ho notato che 'sto Power Basic (che sconoscevo) nei calcoli matematici è circa 2-3 volte più veloce del Visual C++

A parte tutto, devo farti davvero i miei complimenti per il grandissimo impegno e la volontà che stai profondendo in questo progetto :clapclap:
mi hai chiesto del ........
7919 2/ constant maxp : primes ( -- n ) here maxp 1 FILL 1 ( count, including 2 ) maxp 0 DO I here + C@ IF I 2* 3 + ( dup .) DUP I + ( prime current ) begin DUP maxp U
o del .....
top = 50 logical*2 flags(top) integer*2 i,j,k,count,iter,prime n = long(362) do 92 iter = 1,10 count=0 i=0 do 10 i = 1,top 10 flags(i) = .true. do 91 i = 1,top if (.not. flags(i)) go to 91 prime = i + i + 3 count = count + 1 k = i + prime if (k .gt. top) go to 91 do 60 j = k, top, prime 60 flags(j) = .false. 91 continue 92 continue write (9,*) count," primes in ",(long(362)-n)/60.0," seconds " pause end
molto interessante per le matematiche è il compilatore Haskell
primes = sieve [ 2.. ] where sieve (p:x) = p : sieve [ n | n 0 ]
-
-
IT works!

Numeri Primi Scoperti : 5761455 In 3248 Millisecondi
Marco
-
bonis62 ha scritto:
Ciao,Per cortesia , me lo potete testare ? Grazie.
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

Ciao! Sembra che tu sia interessato a questa conversazione, ma non hai ancora un account.
Stanco di dover scorrere gli stessi post a ogni visita? Quando registri un account, tornerai sempre esattamente dove eri rimasto e potrai scegliere di essere avvisato delle nuove risposte (tramite email o notifica push). Potrai anche salvare segnalibri e votare i post per mostrare il tuo apprezzamento agli altri membri della comunità.
Con il tuo contributo, questo post potrebbe essere ancora migliore 💗
Registrati Accedi

