|
|
|
![]() |
|
Strumenti |
![]() |
#41 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
sinceramente ho sottovalutato la questione, non credevo fosse così complicato visto che ce ne sono a bizzeffe di programmi bench.
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
![]() |
![]() |
![]() |
#42 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Se già non ci riesci su un solo core, figuriamoci su 4.
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#43 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
ahahah
no ma ho visto che se metti in wprime 1 solo core, non riesce a caricartelo singolarmente ma viene utilizzato un pò da tutti, però quando li utilizza tutti, li spreme al massimo tutti. Comunque il codice BANALE che hai visto sopra, mi carica un core intero ![]()
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
![]() |
![]() |
![]() |
#44 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 329
|
Non diciamo cavolate, se vuole portare la CPU al 100% può farlo con il minimo sforzo, e i pezzi di codice riportarti da me sono un semplice esempio. Ovvio che un minimo punto percentuale verrà sfruttato dal sistema operativo, ma parliamo di nanosecondi. I programmi che fanno benchmark devono essere lanciati con un installazione pulita e senza troppi processi in esecuzione, proprio per avere misurazioni più attendibili.
Il problema semmai è sfruttare al 100% la cpu in un algoritmo generico. Non tutti gli algoritmi possono essere adattati facilmente e efficacemente al multithreading. Spesso sono necessarie sincronizzazioni che obbligano alcuni thread a mettersi in attesa dei risultati generati da altri thread, riducendo il carico di lavoro totale. @Tecno789: i pezzi di sorgente da me riportati sono per Win32 e richiedono un #include<windows.h> all'inizio. Se hai altri problemi di compilazione basta che chiedi. @dierre: è vero se devi fare verifica tipo a == b, in tal caso meglio controllare che il valore assoluto della differenza sia minore di un certo epsilon. Per per confronti tipo il mio a < b non serve a nulla.
__________________
Canon EOS 5D3 | 16-35 f/4 L IS | 24-105 f/4 L IS | 70-200 f/4 L IS | 14 f/2.8 | 24 f/1.4 L | 35 f/1.4 | 135 f/2.0 L | Canon 430EX |
![]() |
![]() |
![]() |
#45 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
comunque per quanto riguarda i tuoi sorgenti ho provato a compilarli ma mi da errori vari e non riesco a testarli. Comunque volevo solo capire come fai ad utilizzare la funzione createthread, perchè non ho ancora capito poi sull'algoritmo di funzionamento ci lavorerò su io..
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
![]() |
![]() |
![]() |
#46 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 329
|
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)calcola, (LPVOID)0, 0, NULL);
Crea un nuovo thread il cui codice è quello della funzione "calcola", che deve tornare un int e prendere un puntatore a void come parametro. Dopo quella chiamata, se non ci sono stati errori, in memoria ci saranno due thread: quello principale che ha fatto la chiamata, che è quindi libero di proseguire, e quello dato dalla funzione calcola, che morirà quando il codice tornerà con una return. Per fare in modo che il thread principale attenda il termine del thread che ha creato c'è la funzione WaitForSingleObjext, che prende in ingresso l'handle del thread (ritornato dalla CreateThread) e come secondo parametro il massimo tempo di attesa, o INFINITE se vuoi attendere senza limite. Ricapitando: si parte con un solo thread, appena chiami h = CreateThread(...) ne avrai in esecuzione due. Per far sì che il padre attenda il termine del figlio chiami WaitForSingleObject(h, INFINITE); da questo punto in poi in memoria ci sarà nuovamente solo un thread.
__________________
Canon EOS 5D3 | 16-35 f/4 L IS | 24-105 f/4 L IS | 70-200 f/4 L IS | 14 f/2.8 | 24 f/1.4 L | 35 f/1.4 | 135 f/2.0 L | Canon 430EX |
![]() |
![]() |
![]() |
#47 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
quanti thread mi consigli di aprire per eseguire un'operazione matematica?
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
![]() |
![]() |
![]() |
#48 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Visto che sembri non aver capito, ecco qui: ![]() Questo è un "blocco funzionale" (che integra due core) dell'ultima architettura di AMD. Fammi vedere con quale mistura di codice riusciresti a impegnare tutte sezioni e unità d'esecuzione di un solo core.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||
![]() |
![]() |
![]() |
#49 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 329
|
Io avevo capito che lui volesse scrivere un software per fare benchmark, se non è così allora ritiro tutto. In tal caso qualsiasi cosa giri sopra un sistema operativo non va bene, idem se utilizza linguaggi di alto livello. Oltre al fatto che va scritto un codice ad hoc diverso per ogni processore esistente. Ma non ne capisco l'utilizzo.
Se invece l'intento era di fare un software di benchmark, lo scopo di questi è di testare i tempi di calcolo del processore con algoritmi di uso frequente, come l'ordinamento, FFT o altre cose che ricapitano fuori in vari ambiti e quindi sono una buona base per avere un'idea di massima delle doti velocistiche del processore. Ovvio che un test del genere su un solo thread andrà a vantaggio di processori con pochi core e alte frequenze, piuttosto che con molti core e frequenze inferiori. Motivo per cui ho consigliato di lanciare tanti thread quanti sono i processori logici del sistema. Tutto qui.
__________________
Canon EOS 5D3 | 16-35 f/4 L IS | 24-105 f/4 L IS | 70-200 f/4 L IS | 14 f/2.8 | 24 f/1.4 L | 35 f/1.4 | 135 f/2.0 L | Canon 430EX |
![]() |
![]() |
![]() |
#50 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
poi vabbè rimane un programmino del "cavolo" non è che lo mando alla microsoft ![]() no perchè il mio intento non era quello di mettere in mezzo le istruzioni.
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:18.