Quantos CPUs eu tenho e quantos trabalhos devo enviar?

0

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. mostra o lscpu:

CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1

A ambiguidade é 'Thread'. Eu procurei na net e aprendi algo sobre isso. Mas eu ainda me sentia confuso (diz-se que quantos trabalhos devo enviar é depender). Eu não me importo com os detalhes das máquinas. Por exemplo, agora eu tenho um arquivo executável. Se eu o executar diretamente, ele gasta cerca de 10 min. Suponha que agora eu tenha 800 deles precisam ser executados. Devo executar 4 deles por vez ou 8 para reduzir o custo total do tempo?

    
por hengyue li 15.01.2018 / 03:58

1 resposta

1

Se este PC tiver uma CPU Intel, o Thread (s) por núcleo certamente indicará hyper-threading.

link

For each processor core that is physically present, the operating system addresses two virtual (logical) cores and shares the workload between them when possible. The main function of hyper-threading is to increase the number of independent instructions in the pipeline; it takes advantage of superscalar architecture, in which multiple instructions operate on separate data in parallel.

.

Should I run 4 of them a time or 8 to reduce the total time cost?

Depende. Algumas tarefas são executadas mais rapidamente em hyper-threading e outras não. Você terá que testar isso sozinho.

Assume now I have 800 of them need to be run.

Eu usaria o GNU Parallel para lidar com esse problema.

link

GNU parallel is a shell tool for executing jobs in parallel using one or more computers.

Se você tiver uma lista de arquivos em . que precisam ser processados, isso funcionará:

find . | parallel -j4 yourprogram

Se os seus testes anteriores mostrarem que ele é executado mais rapidamente com hyper-threading, altere o "4" para um "8".

EDIT: esqueci de mencionar que às vezes os programas rodam mais rápido quando você desativa HT no BIOS.

    
por 15.01.2018 / 05:13

Tags