GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu nastavit afinitu procesoru k procesu v systému Linux?

Použil jsem k tomu taskset. Pokud máte nainstalovanou sadu úloh, něco jako:

taskset -cp 0,2 45678

by nastavil proces s ID 45678 tak, aby měl afinitu k procesoru 1 a 3.


Uvnitř procesu by volání bylo sched_setaffinity() nebo pro pthreads pthread_setaffinity_np()

V související poznámce, pokud se obáváte o afinitu CPU vašeho programu, může být užitečné věnovat pozornost tomu, jak provádí alokaci paměti. Větší systémy s pamětí připojenou k více než jednomu řadiči (tj. více zásuvkám CPU, z nichž každý má svůj vlastní) budou mít proměnnou latenci a šířku pásma mezi různými páry CPU-paměť. Budete se také chtít podívat na afinitu NUMA pomocí numactl příkaz nebo systémová volání, se kterými pracuje. Jeden program, na kterém jsem pracoval, se díky tomu zlepšil o 10 %.


Musíte nainstalovat schedutils (Linuxové plánovací nástroje). Používám to na své ploše Ubuntu.

SF odkaz


Linux
  1. UNIX / Linux :Jak změnit vhodnost (prioritu) procesu

  2. Jak nastavit afinitu CPU pro proces z C nebo C++ v Linuxu?

  3. Jak nastavím pracovní adresář nadřazeného procesu?

  1. Jak mohu nastavit 'backend' v matplotlib v Pythonu?

  2. Jak mohu převést mezery na karty ve Vimu nebo Linuxu?

  3. Jak nastavit preferované síťové rozhraní v linuxu

  1. Linux – Jak omezit proces na jedno jádro CPU v Linuxu?

  2. Jak nastavit název vlákna v Linuxu pthreads?

  3. Jak mohu získat stav klávesnice v Linuxu?