Wybór rdzenia, który ma być używany podczas uruchamiania programu

0

Pracuję na serwerze Fedora działającym na Intel Xeon z 15 rdzeniami. Niektórzy użytkownicy przeprowadzają symulacje, które zajmują cztery rdzenie, ale inni wydają się nieużywani. Czy istnieje sposób, aby uruchomić program na wolnych rdzeniach zamiast czekać na zwolnienie używanych rdzeni?

Zloy Smiertniy
źródło
1
Powinno być automatyczne ... czy dowiedziałeś się, że tak nie jest?
MariusMatutiae
1
Jak powiedział Marius, powinien to zrobić automatycznie (absurdem byłoby umieszczanie w kolejce procesów na używanych rdzeniach, gdy są dostępne wolne). Jeśli tak nie jest, musisz znaleźć problem i go naprawić. W międzyczasie możesz ręcznie ustawić powinowactwo do procesów.
Synetech
Dowiedziałem się, że nie jest. Uruchomiłem proces na jednym rdzeniu, a następnie ktoś rozpoczął proces, który wymaga 4 rdzeni, a mój proces był nadal na jednym z tych czterech rdzeni, a drugi proces obejmował wszystkie zasoby, a moje zostało na wieczność spowolnione. Mam zamiar poszukać ręcznego ustawienia powinowactwa i sprawdzić, czy to zadziała, dziękuję.
Zloy Smiertniy

Odpowiedzi:

2

Dowiedziałem się, że to wina Matlaba. Nie uszanowało mojego procesu. Uruchomiłem go ponownie po uruchomieniu innych symulacji i teraz działa na osobnym rdzeniu. Dzięki Synetech i tak dowiedziałem się, że zestaw zadań polecenia Linux pozwala mi robić to, czego potrzebuję, na wypadek, gdyby musiałem to zrobić ręcznie.

$ taskset
Usage: taskset [options] [mask | cpu-list] [pid|cmd [args...]]

Options:
 -p, --pid               operate on existing given pid
 -c, --cpu-list          display and specify cpus in list format
 -h, --help              display this help
 -V, --version           output version information

The default behavior is to run a new command:
    taskset 03 sshd -b 1024
You can retrieve the mask of an existing task:
    taskset -p 700
Or set it:
    taskset -p 03 700
List format uses a comma-separated list instead of a mask:
    taskset -pc 0,3,7-11 700
Ranges in list format can take a stride argument:
    e.g. 0-31:2 is equivalent to mask 0x55555555

For more information see taskset(1).
Zloy Smiertniy
źródło