|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
[C] algoritmo per programma bench
Ciao a tutti i programmatori del forum
![]() Allora premetto che sono un hardwarista e quindi di programmazione conosco solo html e il C, quindi non mi dite di scrivere in altri linguaggi. Il punto è questo, sto provando a fare un programma che mi permetta di testare la potenza di calcolo della cpu, ma qualsiasi operazioni che io faccia non sono riuscito a mandare i core al 100%, qual'è l'algoritmo per poterlo fare?? esempio wprime e soci... Non chiedo di poter smistare il carico sui multi-core, perchè va probabilmente aldilà delle mie capacità, però vorrei poter mandare al 100% la cpu, conoscete il modo?
__________________
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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
Codice:
int i=0; while(i==i){ i=i+1; if(i==1000) i=0; } Codice:
int num=3; while(true){ boolean fail = false; for(int div=3; div<=sqrt(num) && !fail; div+=2){ if(num%div == 0) fail = true; } if(!fail) cout<<num+"è un numero primo."; num += 2; }
__________________
Concluso con:... Ultima modifica di Floris : 23-10-2011 alle 15:40. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
![]()
__________________
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 |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
Purtroppo non l'ho provato perchè ho la CPU impegnata in una conversione.
In ogni caso può dipendere anche dalla politica di scheduling del SO. Prova ad impostare la priorità a real-time.
__________________
Concluso con:... |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
impostando real-time, l'utilizzo dei core aumenta, ma non arriva al 100%, ma vorrei più che altro un escamotage a livello di codice per poter sfruttare appieno la cpu. possibile che non si può??
__________________
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 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1400
|
se fai calcoli pesanti su grandi matrici su numeri reali, con ordinamenti e possibilmente e mediante programmazione multi thread dovresti occupare una buona percentuale della cpu.
come diceva Floris molto dipende dal SO, queste app piccole con semplici cicli su interi di per se non rappresentano calcoli complessi. se ci pensi anche concettualmente una cpu complessa come quelle moderne con queste cose non sono fruttate al 100%. Con questi approcci analizzi più che altro il tempo di esecuzione, ecco perchè il so ti accoppa la % di utilizzo. ora che ci penso potresti fare un programma per il calcolo del PI grego ![]() Ultima modifica di SerMagnus : 23-10-2011 alle 18:50. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Infatti, per occupare tutta la cpu, ci vuole per forza dietro una programmazione multi-thread. Speravo ci fosse una sorta di metodo per "allocare" o meglio occupare tutta la cpu in quel determinato processo.
__________________
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 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12856
|
Se sei sotto Linux dai un'occhiata alle librerie pthread
![]() |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
![]()
__________________
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 |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
se devi solo mandare la cpu a manetta in teoria basta un qualche loop che continui fare calcoli a vuoto. Una cosa idiota tipo Codice:
int main() { while(1) { int y = 10*10; } }
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Che macchina e' e su che sistema operativo ?
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12856
|
Potrebbe in alternativa usare una fork-bomb
![]() Codice:
while(1) { fork(); } |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]() Codice:
:(){ :|:& };:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12856
|
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
E' solo scritto in modo esoterico
se scrivo Codice:
bomb() { bomb | bomb & }; bomb ![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Windows e linux , entrambi, le caratteristiche tecniche le trovi in firma. Comunque quello che vorrei fare è un semplicissimo programma che mandi la cpu al 100%. Ma si fa con le fork quindi? Esempio io ho 6 core, come faccio a spostare il carico su tutti e 6?
__________________
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 |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
![]() Apre un numero infinito di processi che al loro volta aprono un numero infinito di processi, il 100% è assicurato ![]() Per essere sicuro che il tuo programma usa il 100% della CPU probabilmente devi usare delle caratteristiche del sistema, tipo settare l'affinità del processore per assegnare un thread ad ogni core manualmente (altrimenti il SO lo sceglie man mano), e aumentando manualmente la priorità del processo all'interno del programma stesso. Ma comunque non ho capito che te ne fai di un programma che va al 100% della CPU ![]() |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
__________________
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 |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
![]()
__________________
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 Ultima modifica di tecno789 : 24-10-2011 alle 17:42. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:42.