Оживший юзерпик (tobotras) wrote,
Оживший юзерпик
tobotras

Линуксовое

У линукса есть несколько механизмов ограничить процесс в доступных процессорных ядрах. Как минимум, cgroup и taskset. Если процессу важно знать, сколько у него ядер (чтобы сконфигурировать thread pool или ещё зачем-нибудь), то наивный способ -- прочитать /proc/cpuinfo. Он неправильный. Менее наивный -- позвать sysconf(_SC_NPROCESSORS_ONLN). Он тоже неправильный. Правильный -- вот:
  long num_processor_configured = sysconf (_SC_NPROCESSORS_CONF); /* list the number of processors configured */
  long num_processor_available;
  cpu_set_t mask;

  if (sched_getaffinity(0, sizeof(cpu_set_t), &mask) == 0) {
	num_processor_available = CPU_COUNT(&mask);
  } else {
	num_processor_available = sysconf(_SC_NPROCESSORS_ONLN);
  }
Tags: СЯУ, линуксовое, программирование, рабочее
Subscribe

  • Отпускное

    Вечером стартую с группой граждан в Альпы. 3-4 дня слаломного канала в Будейовицах, 4-5 дней сплава по чему-нибудь несложному (я так думаю) в Альпах,…

  • Свистать всех наверх - 37

    Видимо, рано утром 21го еду на Полометь. Обратно или вечером в воскресенье, или вечером в понедельник, если будет работать Гремячая. Одному в машине…

  • Верёвку никому не надо?

    Лежат у меня уже несколько лет 25м коломенской 10мм динамики (б/у десяток раз на скалодроме, ни одного срыва) и 30м не знаю, какой (но тоже дешёвой)…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 22 comments

  • Отпускное

    Вечером стартую с группой граждан в Альпы. 3-4 дня слаломного канала в Будейовицах, 4-5 дней сплава по чему-нибудь несложному (я так думаю) в Альпах,…

  • Свистать всех наверх - 37

    Видимо, рано утром 21го еду на Полометь. Обратно или вечером в воскресенье, или вечером в понедельник, если будет работать Гремячая. Одному в машине…

  • Верёвку никому не надо?

    Лежат у меня уже несколько лет 25м коломенской 10мм динамики (б/у десяток раз на скалодроме, ни одного срыва) и 30м не знаю, какой (но тоже дешёвой)…