Это команда hwloc-bind, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
hwloc-bind - запускает команду, привязанную к конкретным процессорам и / или памяти, или
проконсультируйтесь с привязкой существующей программы
СИНТАКСИС
hwloc-связать [кредита] [ [...] ] [-] ...
Обратите внимание, что Халлок(7) предоставляет подробное объяснение системы hwloc и действительных
форматы; его следует прочитать перед чтением этой страницы руководства.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--cpubind Используйте следующие аргументы для привязки ЦП (по умолчанию).
- помнить Используйте следующие аргументы для привязки памяти. Если --политика тоже не дано,
политика по умолчанию - привязка.
--политика
Измените политику привязки памяти. Доступные политики по умолчанию,
firsttouch, bind, interleave replicate и nexttouch. Этот вариант только
имеет смысл, когда фактическая привязка также дается с - помнить. Если - помнить is
дан без --политика, политика по умолчанию - привязка.
--получать Сообщите о текущих привязках.
Когда дается команда, привязка отображается перед выполнением команды.
Если команда не задана, программа завершает работу после отображения текущего
связывание.
В сочетании с - помнить, сообщите о привязке к памяти вместо привязки к ЦП.
Местоположение не может быть указано, поскольку привязка не выполняется.
-e --get-last-cpu-location
Сообщите о последних процессорах, на которых выполнялся процесс. Обратите внимание, что результат может
уже устарело на момент сообщения, так как операционная система может переместить
обрабатывать другим процессорам в любое время в соответствии с привязкой.
При подаче команды перед выполнением команды отображаются последние процессоры.
команда. Если команда не задана, программа завершает работу после отображения последнего
процессоры.
Этот вариант нельзя комбинировать с - помнить.
Местоположение не может быть указано, поскольку привязка не выполняется.
--Один Привяжите к одному ЦП, чтобы предотвратить миграцию.
--строгий Требовать строгой привязки.
--пид
Работать по pid
-p --физические
взять OS / физические индексы вместо логических индексов
-l --логичный
использовать логические индексы вместо физических индексов / индексов ОС (по умолчанию)
--taskset Отображение строк набора ЦП в формате, распознаваемом командной строкой набора задач
программа вместо строкового формата, специфичного для hwloc. Этот вариант не имеет
влияет на формат входных строк набора ЦП, оба формата всегда принимаются.
--ограничивать
Ограничьте топологию заданным процессором.
--целая система
Не считайте административные ограничения.
-f --сила
Запустить исполняемый файл, даже если привязка не удалась.
-q --тихий
Скрыть сообщения о нефатальных ошибках. Он включает местоположения, указывающие на несуществующие
объекты, а также невозможность привязки. Обычно это полезно в дополнение к
--сила.
-v --подробный
Подробный вывод.
--версия Сообщить о версии и выйти.
ОПИСАНИЕ
hwloc-bind запускает исполняемый файл (с необязательными аргументами командной строки), который привязан к
указанное место (или список мест). После успешного выполнения hwloc-bind просто
устанавливает привязки, а затем запускает исполняемый файл поверх себя.
Если привязка не удалась или набор привязок пуст, и --сила не было дано, hwloc-bind
возвращается с ошибкой вместо запуска исполняемого файла.
ПРИМЕЧАНИЕ: Настоятельно рекомендуется прочитать Халлок(7) обзорная страница перед чтением
эта страница руководства. Большинство концепций, описанных в Халлок(7) непосредственно относятся к hwloc-
привязать утилиту.
ПРИМЕРЫ
Функцию hwloc-bind лучше всего описать на нескольких примерах. Подробнее о том, как
местоположения указаны в командной строке hwloc-bind, описаны в Халлок(7).
Чтобы запустить команду echo на первом логическом процессоре второго пакета:
Пакет hwloc-bind: 1.pu: 0 - echo hello
что в точности эквивалентно
Пакет hwloc-bind: 1.pu: 0 echo hello
Чтобы привязать команду "echo" к первому ядру второго пакета и второму ядру пакета
первый пакет:
hwloc-bind пакет: 1.core: 0 пакет: 0.core: 1 эхо привет
Обратите внимание, что привязка команды "echo" к нескольким процессорам, вероятно, бессмысленна.
(потому что «эхо», скорее всего, реализовано как однопоточное приложение); эти примеры
просто служит, чтобы показать, на что способна hwloc-bind.
Чтобы запустить первые три пакета на втором и третьем узлах:
узел hwloc-bind: 1-2.package: 0: 3 echo hello
что также эквивалентно:
узел hwloc-bind: 1-2. пакет: 0-2 echo hello
Обратите внимание, что если вы попытаетесь выполнить привязку к несуществующим объектам, hwloc-bind не предупредит
если не -v было указано.
Для работы на процессоре с физическим индексом 2 в пакете с физическим индексом 1:
hwloc-bind --physical package: 1.core: 2 echo hello
Для работы на нечетных ядрах в четных пакетах:
пакет hwloc-bind: even.core: odd echo привет
Чтобы запустить первый пакет, кроме его второго и пятого ядер:
hwloc-bind пакет: 0 ~ пакет: 0.core: 1 ~ пакет: 0.core: 4 эхо привет
Чтобы запустить где угодно, кроме первого пакета:
hwloc-bind all ~ package: 0 эхо привет
Чтобы запустить ядро рядом с сетевым интерфейсом с именем eth0:
hwloc-bind os = eth0 эхо привет
Для работы на ядре рядом с устройством PCI с идентификатором шины 0000: 01: 02.0:
hwloc-bind pci = 0000: 01: 02.0 эхо привет
Чтобы привязать память ко второму узлу памяти и запустить на первом узле (если поддерживается ОС):
hwloc-bind --cpubind node: 1 --membind node: 0 echo hello
Параметр --get может сообщить о текущих привязках. В этом примере показано вложение hwloc-bind
вызовы, чтобы установить привязку, а затем сообщить об этом:
узел hwloc-bind: 1. пакет: 2 hwloc-bind --get
На одной из машин разработчика hwloc этот пример сообщает «0x00004444,0x44000000».
Маска, указанная на вашей машине, может отличаться.
Расположение также можно указать как шестнадцатеричную битовую маску (обычно генерируемую hwloc-calc).
Например:
hwloc-bind 0x00004444,0x44000000 эхо привет
hwloc-bind `hwloc-calc узел: 1. пакет: 2` echo hello
Также может сообщаться о привязке к памяти:
hwloc-bind --membind узел: 1 --mempolicy interleave - hwloc-bind --get --membind
Это возвращает строку, описывающую привязку памяти, например «0x000000f0 (чередование)».
Обратите внимание, что если система не содержит узлов NUMA, в сообщаемой строке будет указано
что процесс привязан ко всей системной памяти (например, «0xf ... f»).
СОВЕТ
Если доступен lstopo с поддержкой графики, используйте, например,
ядро hwloc-bind: 2 - lstopo --pid 0
чтобы проверить, каков на самом деле результат вашей команды привязки. lstopo графически
показать, к чему он привязан с помощью hwloc-bind.
ВЕРНУТЬ VALUE
После успешного выполнения hwloc-bind выполняет команду поверх себя. Возвращаемое значение -
следовательно, каким бы ни было возвращаемое значение команды.
hwloc-bind вернет ненулевое значение, если произойдет какая-либо ошибка, например (но не ограничиваясь этим):
сбой в синтаксическом анализе командной строки, сбой в получении привязок процессов или отсутствие
команда для выполнения.
Используйте hwloc-bind онлайн с помощью сервисов onworks.net