Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-10-2011, 20:08   #21
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
Scusa ma non capisco che significa mandare la CPU al 100%. In generale un programma di benchmark deve fissare uno scopo. Tipo: calcolo dei numeri fino ad una certa cifra, etc...

Trovati una serie di problemi ed implementa l'algoritmo per risolverlo e vedi quanto ci mettono.
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2011, 20:09   #22
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da dierre Guarda i messaggi
Scusa ma non capisco che significa mandare la CPU al 100%. In generale un programma di benchmark deve fissare uno scopo. Tipo: calcolo dei numeri fino ad una certa cifra, etc...

Trovati una serie di problemi ed implementa l'algoritmo per risolverlo e vedi quanto ci mettono.
hai mai provato ad usare wprime???
ecco volevo fare una cosa simile, per quanto riguarda problemi vari, ho già implementato tutto.
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2011, 22:16   #23
Mirkolo
Senior Member
 
L'Avatar di Mirkolo
 
Iscritto dal: Sep 2007
Messaggi: 329
E' sufficiente un:

white(1);

per mandare in palla un core del processore. Se vuoi caricarli tutti:

Codice:
#include <stdio.h>
#include <windows.h>

#define NCORE 4

int vai(void *) {
  while(1);
}

int main(int argc, char *argv[]) {
  for(int n = 0; n < NCORE; ++n)
    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)vai, (LPVOID)0, 0, NULL);
  getch();
}
__________________
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
Mirkolo è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2011, 22:50   #24
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
Quote:
Originariamente inviato da tecno789 Guarda i messaggi
hai mai provato ad usare wprime???
ecco volevo fare una cosa simile, per quanto riguarda problemi vari, ho già implementato tutto.
Non l'ho mai usato, ma come vedi dalla descrizione, il suo obiettivo è il seguente:

wPrime is a leading multithreaded benchmark for x86 processors that tests your processor performance by calculating square roots with a recursive call of Newton's method for estimating functions

Che non è "mandare la CPU al 100%". In questo thread chi più chi meno ti ha consigliato un ciclo infinito, no? Ammesso che ce la mandi con un while(1), che hai risolto? Che hai dimostrato sul processore che stai usando?
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2011, 23:19   #25
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da dierre Guarda i messaggi
Non l'ho mai usato, ma come vedi dalla descrizione, il suo obiettivo è il seguente:

wPrime is a leading multithreaded benchmark for x86 processors that tests your processor performance by calculating square roots with a recursive call of Newton's method for estimating functions

Che non è "mandare la CPU al 100%". In questo thread chi più chi meno ti ha consigliato un ciclo infinito, no? Ammesso che ce la mandi con un while(1), che hai risolto? Che hai dimostrato sul processore che stai usando?
forse non l'hai capito e sinceramente non ho la voglia di spiegartela, ma ti ho già detto che sto provando a fare un programma simile a wprime. Il che vuol dire che se riesco a mandare i core al 100% riesco a misurare le prestazioni massime del processore. capito?? scarica wprime e provalo al massimo, un pò di cultura non fa mai male, anche perchè non so più come spiegartelo
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2011, 23:32   #26
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da Mirkolo Guarda i messaggi
E' sufficiente un:

white(1);

per mandare in palla un core del processore. Se vuoi caricarli tutti:

Codice:
#include <stdio.h>
#include <windows.h>

#define NCORE 4

int vai(void *) {
  while(1);
}

int main(int argc, char *argv[]) {
  for(int n = 0; n < NCORE; ++n)
    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)vai, (LPVOID)0, 0, NULL);
  getch();
}
while(1) funziona eccome, ma non si adatta al mio contesto. Cioè io sto misurando un'operazione per poter misurare le capacità della cpu, ma se c'è un while che mi manda il loop infinito quell'operazione non finisce mai, quindi non posso utilizzarla.
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 00:03   #27
GByTe87
Senior Member
 
L'Avatar di GByTe87
 
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
A questo punto devi pensare ad un problema che comporti un uso massiccio di CPU.
Erano stati proposti calcoli su matrici o ordinamenti; altrimenti il solito calcolo del pi o dei numeri primi.
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO
GByTe87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 00:09   #28
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da tecno789 Guarda i messaggi
while(1) funziona eccome, ma non si adatta al mio contesto. Cioè io sto misurando un'operazione per poter misurare le capacità della cpu, ma se c'è un while che mi manda il loop infinito quell'operazione non finisce mai, quindi non posso utilizzarla.
Ora ti sei spiegato meglio.
In teoria qualsiasi algoritmo che usi solo la cpu va bene.
Se la cpu non va al 100% vuol dire che effettui qualche altra operazione che non fa uso della cpu. Questo potrebbe essere lettura/scrittura su disco, usare una notevole quantita' di memoria che causa swap, comunicazione di rete, altro ancora. Oppure semplicemente fai dei test che durano troppo poco...
pero' a questo punto senza capire cosa fa il tuo codice che non ti funziona, dare ulteriori suggerimenti e' difficile.
__________________
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 00:26   #29
Mirkolo
Senior Member
 
L'Avatar di Mirkolo
 
Iscritto dal: Sep 2007
Messaggi: 329
Certo, io ho banalizzato il tutto per farti vedere come caricare al 100% il processore partendo da una funzione. Dato che, senza multithreading, se hai più di un processore logico il carico del 100% non lo avrai mai.

Aggiungici qualcosa del tipo:

Codice:
int calcola(void *) {
/* ciclo con calcoli a tua discrezione */
}

int main(int argc, char *argv[]) {
  HANDLE *h = new HANDLE[200];
  unsigned tempo;
  tempo = GetTickCount();
  for(int n = 0; n < 200; ++n)
    h[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)calcola, (LPVOID)0, 0, NULL);
  WaitForMultipleObjects(200, h, TRUE, INFINITE);
  printf("\nSono passati %ums", GetTickCount() - tempo);
}
Così hai 200 thread che eseguono dei calcoli, la WaitForSingleObjects torna quando tutti e 200 avranno terminato l'elaborazione. Programmi come SuperPI calcolano le prime tot cifre di PI greco, ma qualsiasi altro calcolo andrà bene.
Dipende se vuoi un test che carichi solo il processore o un mix tra cpu e ram.

SuperPI utilizza uno sviluppo in serie per calcolare pi greco, ma puoi partire da qualcosa di più banale calcolando il rapporto tra l'area di un quadrato di raggio X (Q = X²) e quella del cerchi di raggio X/2 (C = PI * X² / 4). Da cui ricavi PI come 4 * C / Q.

L'area del cerchio è data dalla somma dei punti che distano meno di R dal cerntro, considerando il centro nel mezzo:

Codice:
int calcola(void *) {
  double y, x, Q, C = 0.0f, epsilon = .00001f;
  for(y = -1.0f; y < 1.0f; y += epsilon) {
    for(x = -1.0f; x < 1.0f; x += epsilon) {
      if ((x * x) + (y * y) < 1.0f) C += epsilon * epsilon;
    }
  }
  Q = 4.0f;
/*  printf("\nPI=%.6f", C / Q * 4.0f); */
}
Quanto più piccolo sarà epsilon, tanto più lento e preciso sarà il calcolo. Se vuoi ottimizzare il numero di thread, anzichè crearne 200, puoi chiedere al sistema operativo quanti processori logici ci sono.

Sotto Windows:

Codice:
SYSTEM_INFO si;
GetSystemInfo(&si);
printf("\nCi sono %u processori", si.dwNumberOfProcessors);
Ma qualsiasi altra cosa andrà altrettanto bene, fai lavorare la fantasia e divertiti.
__________________
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

Ultima modifica di Mirkolo : 25-10-2011 alle 00:29.
Mirkolo è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 01:30   #30
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
Mirkolo ho una domanda:

Codice:
if ((x * x) + (y * y) < 1.0f)
In generale, per moltiplicazione e divisione coi fp, si fa sempre così oppure si misura se il prodotto è < di un certo delta?
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 09:25   #31
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da Mirkolo Guarda i messaggi
Certo, io ho banalizzato il tutto per farti vedere come caricare al 100% il processore partendo da una funzione. Dato che, senza multithreading, se hai più di un processore logico il carico del 100% non lo avrai mai.

Aggiungici qualcosa del tipo:

Codice:
int calcola(void *) {
/* ciclo con calcoli a tua discrezione */
}

int main(int argc, char *argv[]) {
  HANDLE *h = new HANDLE[200];
  unsigned tempo;
  tempo = GetTickCount();
  for(int n = 0; n < 200; ++n)
    h[n] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)calcola, (LPVOID)0, 0, NULL);
  WaitForMultipleObjects(200, h, TRUE, INFINITE);
  printf("\nSono passati %ums", GetTickCount() - tempo);
}
Così hai 200 thread che eseguono dei calcoli, la WaitForSingleObjects torna quando tutti e 200 avranno terminato l'elaborazione. Programmi come SuperPI calcolano le prime tot cifre di PI greco, ma qualsiasi altro calcolo andrà bene.
Dipende se vuoi un test che carichi solo il processore o un mix tra cpu e ram.

SuperPI utilizza uno sviluppo in serie per calcolare pi greco, ma puoi partire da qualcosa di più banale calcolando il rapporto tra l'area di un quadrato di raggio X (Q = X²) e quella del cerchi di raggio X/2 (C = PI * X² / 4). Da cui ricavi PI come 4 * C / Q.

L'area del cerchio è data dalla somma dei punti che distano meno di R dal cerntro, considerando il centro nel mezzo:

Codice:
int calcola(void *) {
  double y, x, Q, C = 0.0f, epsilon = .00001f;
  for(y = -1.0f; y < 1.0f; y += epsilon) {
    for(x = -1.0f; x < 1.0f; x += epsilon) {
      if ((x * x) + (y * y) < 1.0f) C += epsilon * epsilon;
    }
  }
  Q = 4.0f;
/*  printf("\nPI=%.6f", C / Q * 4.0f); */
}
Quanto più piccolo sarà epsilon, tanto più lento e preciso sarà il calcolo. Se vuoi ottimizzare il numero di thread, anzichè crearne 200, puoi chiedere al sistema operativo quanti processori logici ci sono.

Sotto Windows:

Codice:
SYSTEM_INFO si;
GetSystemInfo(&si);
printf("\nCi sono %u processori", si.dwNumberOfProcessors);
Ma qualsiasi altra cosa andrà altrettanto bene, fai lavorare la fantasia e divertiti.
grandissimo..... il problema è che non ho capito bene come faccio a creare thread, nel tuo caso di codice 200, ma non mi torna, mi da errori in fase di compilazione.
guarda questo è un esempio STUPIDO:

Codice:
 #include <stdio.h>
 #include <time.h>
 #include <math.h>

int main(int argc,char **argv)
{
	long int i,a;
	const unsigned long int num=6000000000000000000000000000;
	clock_t start_clock=clock();
	printf("Calcolo secondi che impiega la vostra cpu a completare le operazioni \n");
	for(i=0;i<num;i++)
			a=(num*num*num*num*num*num*num*num*num*num);
			double sqrt(a);
			
	printf("Processor time used : %g sec.\n",(clock() - start_clock)/(double) CLOCKS_PER_SEC);
	system("PAUSE");
	return 0;
}
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 09:42   #32
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da tecno789 Guarda i messaggi
[code]
...
const unsigned long int num=6000000000000000000000000000;
...
Forse è qua il problema.
Se non ricordo male, il range per gli unsigned long int va da 0 a ULONG_MAX.
ULONG_MAX è definita in limits.h, mi pare.
Forse sfori il range.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 12:34   #33
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Forse è qua il problema.
Se non ricordo male, il range per gli unsigned long int va da 0 a ULONG_MAX.
ULONG_MAX è definita in limits.h, mi pare.
Forse sfori il range.
Sisi lo si grazie, non era qui in cerca di una soluzione per quella cavolata di programma, più che altro vorrei capire come creare thread per caricare la cpu!
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 13:35   #34
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Mi sa che finchè sei in un sistema operativo "moderno" non riesci a caricare al 100% la cpu (o un core) con solo un tuo programma.
Principalmente per il fatto che l'OS si riserva sempre un tempo di Cpu per il modulo del kernel che si occupa dell'assegnazione della cpu ai processi. Mettendo il processo con priorità real time ottieni la massima priorità, ma non il massimo uso di cpu altrimenti il sistema potrebbe "perdere il controllo" sulla cpu.
Inoltre è anche vero che non tutte le istruzioni occupano solo il processore, un accesso a memoria (anche una semplice assegnazione) comporta l'accesso alla cache della cpu o alla memoria.

Poi dipende da cosa vuoi testare anche della cpu: l'alu, la cache di primo livello, di secondo... Per fare un lavoro preciso dovresti usare un linguaggio macchina come l'assembly così da dire per filo e per segno alla cpu che calcoli deve fare. L'assembly lo puoi facilmente embeddare in un programma scritto in C quindi a parte capire il significato di qualche comando non c'e' molto altro da fare, anche se diventa meno portabile rispetto a un programma scritto in C.

In ogni caso anche se la cpu lavora al 99% penso che sia sufficiente, di fatto i benchmark che ci sono in giro lavorano con questo presupposto. Da ciò deriva anche il fatto che lo stesso benchmark può fornire punteggi lievemente diversi ogni volta che lo fai in base a quali altri processi sono in esecuzione.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 15:55   #35
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 21833
Quote:
Originariamente inviato da tecno789 Guarda i messaggi
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?
potenza di cosa? calcolo intero, calcolo fp, SSE ecc ecc per testare la potenza della cpu non basta mandare il carico al 100% devi anche usare le opportune istruzioni sulle quali vuoi organizzare il bench
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 16:59   #36
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
per quanto mi riguarda stai sbagliando approccio, capisco che è una cosa amatoriale, ma non cavi un ragno dal buco senza un minimo di approfondimento tecnico e teorico.

già dopo aver visto questo è meglio che ti dica: leva mano.
ti hanno già detto che hai sbagliato, se insisti senza un minimo di teoria stai sbagliando strada.
Codice:
const unsigned long int num=6000000000000000000000000000;
Codice:
			a=(num*num*num*num*num*num*num*num*num*num);
a partire dal fatto che anche secondo me non hai le idee chiare.
non prendertela a male, ma voglio solo farti caprie dove sbagli.
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 18:36   #37
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da demos88 Guarda i messaggi
Mi sa che finchè sei in un sistema operativo "moderno" non riesci a caricare al 100% la cpu (o un core) con solo un tuo programma.
Principalmente per il fatto che l'OS si riserva sempre un tempo di Cpu per il modulo del kernel che si occupa dell'assegnazione della cpu ai processi. Mettendo il processo con priorità real time ottieni la massima priorità, ma non il massimo uso di cpu altrimenti il sistema potrebbe "perdere il controllo" sulla cpu.
Inoltre è anche vero che non tutte le istruzioni occupano solo il processore, un accesso a memoria (anche una semplice assegnazione) comporta l'accesso alla cache della cpu o alla memoria.

Poi dipende da cosa vuoi testare anche della cpu: l'alu, la cache di primo livello, di secondo... Per fare un lavoro preciso dovresti usare un linguaggio macchina come l'assembly così da dire per filo e per segno alla cpu che calcoli deve fare. L'assembly lo puoi facilmente embeddare in un programma scritto in C quindi a parte capire il significato di qualche comando non c'e' molto altro da fare, anche se diventa meno portabile rispetto a un programma scritto in C.

In ogni caso anche se la cpu lavora al 99% penso che sia sufficiente, di fatto i benchmark che ci sono in giro lavorano con questo presupposto. Da ciò deriva anche il fatto che lo stesso benchmark può fornire punteggi lievemente diversi ogni volta che lo fai in base a quali altri processi sono in esecuzione.
quindi in C dici che non si riesce a scrivere un programma del genere??

Quote:
Originariamente inviato da !fazz Guarda i messaggi
potenza di cosa? calcolo intero, calcolo fp, SSE ecc ecc per testare la potenza della cpu non basta mandare il carico al 100% devi anche usare le opportune istruzioni sulle quali vuoi organizzare il bench
potenza generale della cpu, perchè wprime si basa sulle istruzioni?? non esegue la radice quadrata di un range di numeri???

Quote:
Originariamente inviato da SerMagnus Guarda i messaggi
per quanto mi riguarda stai sbagliando approccio, capisco che è una cosa amatoriale, ma non cavi un ragno dal buco senza un minimo di approfondimento tecnico e teorico.

già dopo aver visto questo è meglio che ti dica: leva mano.
ti hanno già detto che hai sbagliato, se insisti senza un minimo di teoria stai sbagliando strada.
Codice:
const unsigned long int num=6000000000000000000000000000;
Codice:
			a=(num*num*num*num*num*num*num*num*num*num);
a partire dal fatto che anche secondo me non hai le idee chiare.
non prendertela a male, ma voglio solo farti caprie dove sbagli.
uh si di sicuro quel programmino l'ho fatto alla cavolo, hai perfettamente ragione, ma non è il programma finale, cioè prima volevo capire solamente come utilizzare tutta la cpu e poi avrei fatto un programma decente, comunque non essendo un programmatore, le critiche sono ben accette
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 18:40   #38
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
E' praticamente impossibile utilizzare tutta la CPU per ogni ciclo di clock, se è questo che vorresti ottenere: per un motivo o per un altro ci saranno delle sezioni e/o unità (di esecuzione) non utilizzate.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 18:56   #39
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E' praticamente impossibile utilizzare tutta la CPU per ogni ciclo di clock, se è questo che vorresti ottenere: per un motivo o per un altro ci saranno delle sezioni e/o unità (di esecuzione) non utilizzate.
e i programmi di bench come fanno ad ottenere ciò??
__________________
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
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2011, 20:08   #40
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
A ottenere cosa? Come ho già detto, è praticamente impossibile farlo.

Se hai conoscenze di architetture degli elaboratori, prenditi lo schema interno di una CPU, conta tutte le sezioni che ci sono, le unità di esecuzione, e cerca di immaginare un mix di istruzioni che potrebbe impegnarle tutte.

Girala quanto vuoi, vedrai che, a conti fatti, qualcuna rimarrà sempre a girarsi i pollici.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Il nuovo M5 fa la differenza anche nel g...
Le AirPods ora sono in grado di rilevare...
Oggi su Amazon succede di tutto: sconti ...
'Copilot Gaming mi spiava!': le accuse d...
Mova P50 Pro Ultra, robot aspirapolvere ...
Speciale action cam: doppio sconto solo ...
Eureka J15 Ultra conquista Amazon: aspir...
Game Pass è sempre più ric...
20 milioni di utenti contro Apple: grand...
La sonda spaziale europea ESA JUICE &egr...
La capsula Orion Integrity è stat...
Intel Nova Lake: i driver Linux svelano ...
Nothing punta sulla fascia bassa: ecco c...
Redmi Watch 6 è ufficiale: si pre...
Arriva Snapdragon 6s Gen 4: l'obiettivo ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v