Lavoro in laboratorio e ho scritto un programma di calcolo multithread in C++ 11 usando std::thread
. Ora ho l'opportunità di eseguire il mio programma su server multi-cpu.Come sfruttare la multi-cpu in C++?
Server:
- in esecuzione il server di Ubuntu
- Ha di 40 CPU Intel
so nulla di programmazione multi-CPU. Prima idea, mi viene in mente di eseguire 40 applicazioni e quindi incollare i risultati insieme. È possibile, ma voglio sapere di più sulle mie opportunità.
- Se compilo il mio codice sul server tramite il suo compilatore gcc, l'applicazione risultante sfrutta la multi-cpu?
- Se la risposta n. 1 dipende, come posso verificarlo?
Grazie!
Se il programma ha già più thread, il sistema operativo programmerà automaticamente tali thread su diverse CPU. Sarai limitato dal numero di thread. Se crei 10 thread, il tuo programma sarà limitato a un massimo di 10 CPU. –
Se ogni "risultato" è completamente indipendente da tutti gli altri, in realtà scriverei un'applicazione a thread singolo, quindi eseguirla tramite 'parallelo' (vedere' sudo apt-get install parallel; man parallel') – v010dya
Chiedere fuori sede le risorse sono fuori tema su SO. Ho rimosso le tue sottoquestioni su librerie e altre risorse, poiché il resto della domanda è recuperabile. – Puppy