[C Benchmark] Piccolo benchmark per CPU - Versione stampabile +- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi) +-- Forum: Programmazione (https://www.making-videogames.net/giochi/Forum-Programmazione) +--- Forum: Programmazione in C C++ e C# (https://www.making-videogames.net/giochi/Forum-Programmazione-in-C-C-e-C) +--- Discussione: [C Benchmark] Piccolo benchmark per CPU (/thread-C-Benchmark-Piccolo-benchmark-per-CPU) |
[C Benchmark] Piccolo benchmark per CPU - ManHunter - 06-05-2011 Salve, ho realizzato questo facile benchmark per CPU in C. L'algoritmo è facile: ricerca i numeri primi in base al numero massimo fornito dall'utente in ingresso, li stampa a video e li conta. Alla fine, stampa il tempo di esecuzione della ricerca e il numero di primi trovati. Ecco il codice: Codice PHP: #include <stdio.h> Posterò anche il .exe già compilato a breve. Il codice non è multithreading, quindi, sia che voi abbiate un quad core o un sistema a singolo processore, il risultato non varierà in funzione del numero di core... Saluti. RE: [C Benchmark] Piccolo benchmark per CPU - David - 07-05-2011 uhm quindi chi come me ha un quad core avrà lo stesso risultato di uno che ha un singolo core? RE: [C Benchmark] Piccolo benchmark per CPU - steve - 07-05-2011 Quando si programma si "sceglie" se far fare più operazioni contemporaneamente (un operazione per ogni thread) oppure se eseguire un operazione alla volta. Nel secondo caso, anche nei processori multi-core, tutte le operazioni vengono eseguite su un solo core. Nel primo caso invece è possibile sfruttare anche gli altri core, ma è il programmatore che decide quale parte del codice viene eseguita da un core e quale da un altro (e questo complica notevolmente la stesura del programma). Ogni core ha minimo un thread, ma può averne anche più di uno, quindi si può sfruttare questo tipo di programmazione anche sui single core, tuttavia l'incremento di prestazioni non è così netto come sui processori multi-core (e non è sempre detto che ci sia). Bisogna fare attenzione però, un programma single-thread gira su ogni processore, un programma multi-thread non gira sui processori single-core + single-thread (oppure se il numero di thread totali è inferiore al numero di thread utilizzati dal programma). multithreading In questo caso se io ho un processore single-core con 3GHz di clock e tu un proessore multi-core con 2GHz di clock, il programma gira più velocemente da me. RE: [C Benchmark] Piccolo benchmark per CPU - ManHunter - 07-05-2011 Esattamente... Se mi date un po' di tempo inizio a documentarmi e ad imparare qualcosa anche sullo sviluppo di software che fanno uso di più thread... RE: [C Benchmark] Piccolo benchmark per CPU - Alche - 08-05-2011 bravissimo, a me mi interessano molto questi programmi di benchmark, ne vorrei fare uno anch'io xD RE: [C Benchmark] Piccolo benchmark per CPU - steve - 08-05-2011 Comunque noto che nel tuo codice includi sys\time.h , quindi presumo che utilizzi linux. In windows un programma simile potrebbe essere fatto così (ho riutilizzato in gran parte il tuo codice): Codice: #include <stdio.h> |