Eu faço alguns cálculos científicos em um PC (na verdade, vários PCs) e quero saber quantos trabalhos devo enviar uma vez. lscpu mostra:
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
A ambigüidade é 'Thread'. Pesquisei na net e descobri algo a respeito. Mas ainda me sentia confuso (diz-se que depende de quantos trabalhos devo enviar). Eu não me importo com os detalhes das máquinas. Por exemplo, agora tenho um arquivo executável. Se eu executá-lo diretamente, ele gasta cerca de 10 min. Suponha que agora eu tenha 800 deles para serem executados. Devo executar 4 deles por vez ou 8 para reduzir o custo total do tempo?
Se este PC tiver uma CPU Intel, então o (s) Thread(s) por núcleo certamente indica hyper-threading.
https://en.wikipedia.org/wiki/Hyper-threading
.
Depende. Algumas tarefas são executadas mais rapidamente no hyper-threading e outras não. Você terá que testar isso sozinho.
Eu usaria o GNU Parallel para lidar com esse problema.
https://www.gnu.org/software/parallel/
Se você tiver uma lista de arquivos
.
que precisam ser processados, isso funcionará:Se seus testes anteriores mostrarem que ele roda mais rápido com hyper-threading, mude o "4" para um "8".
EDIT: esqueci de mencionar que às vezes os programas rodam mais rápido quando você desativa o HT no BIOS.