hwloc-bind - онлайн у хмарі

Це команда hwloc-bind, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


hwloc-bind - запустити команду, яка прив'язана до певних процесорів та/або пам'яті, або
ознайомтеся з прив'язкою існуючої програми

СИНТАКСИС


hwloc-bind [опції] [ [...] ] [--] ...

Зверніть увагу, що hulloc(7) надає детальне пояснення системи hwloc та дійсності
формати; його слід прочитати, перш ніж читати цю man-сторінку.

ВАРІАНТИ


--cpubind Використовуйте наступні аргументи для прив’язки ЦП (за замовчуванням).

--mebind Використовуйте наступні аргументи для зв’язування пам’яті. Якщо --мемполітика також не дається,
політика за замовчуванням – прив’язувати.

--мемполітика
Змініть політику прив’язки пам’яті. Доступні політики за замовчуванням,
firsttouch, bind, interleave replicate and nexttouch. Цей варіант тільки
має значення, коли фактична прив’язка також надається with --mebind. Якщо --mebind is
дається без --мемполітика, політикою за замовчуванням є прив’язування.

--отримати Повідомте про поточні прив’язки.

Коли надана команда, прив’язка відображається перед виконанням команди.
Якщо жодної команди не надано, програма завершує роботу після відображення поточного
прив'язка.

У поєднанні з --mebind, повідомляє про прив’язку пам’яті замість прив’язки ЦП.

Не можна вказати місцезнаходження, оскільки прив’язування не виконується.

-e --get-last-cpu-location
Повідомте про останні процесори, на яких виконувався процес. Зверніть увагу, що результат може
вже буде застарілим, коли повідомляється, оскільки операційна система може перемістити файл
обробляти іншим процесорам у будь-який час відповідно до прив’язки.

Коли надана команда, відображаються останні процесори перед виконанням
команда. Якщо жодної команди не надано, програма завершує роботу після відображення останньої
процесори

Цей варіант не можна поєднувати з --mebind.

Не можна вказати місцезнаходження, оскільки прив’язування не виконується.

--один Прив’язуйте до одного ЦП, щоб запобігти міграції.

--суворий Вимагають суворої прив'язки.

--під
Діяти на pid

-p --фізичний
взяти ОС/фізичні індекси замість логічних індексів

-l --логічний
приймати логічні індекси замість фізичних/індексів ОС (за замовчуванням)

--набір завдань Відображати рядки набору ЦП у форматі, розпізнаному командним рядком набору завдань
програма замість спеціального для hwloc формату рядка набору ЦП. Цей варіант не має
вплив на формат рядків вхідного набору ЦП, обидва формати завжди приймаються.

--обмежити
Обмежте топологію даним процесором.

-- вся система
Не враховуйте адміністративні обмеження.

-f --сила
Запустіть виконуваний файл, навіть якщо прив’язування не вдалося.

-q --спокійно
Приховати нефатальні повідомлення про помилки. Він включає місця, які вказують на неіснуючі
об’єктів, а також нездатність зв’язування. Зазвичай це корисно на додаток до
--сила.

-v -багатослівний
Багатослівний вихід.

-- версія Повідомити про версію та вийти.

ОПИС


hwloc-bind виконує виконуваний файл (з необов'язковими аргументами командного рядка), який прив'язаний до
вказане місце розташування (або список місць). Після успішного виконання просто hwloc-bind
встановлює прив’язки, а потім виконує над собою виконуваний файл.

Якщо прив’язування не вдається, або якщо набір зв’язування порожній, і --сила не було дано, hwloc-bind
повертається з помилкою замість запуску виконуваного файлу.

ПРИМІТКА: Настійно радимо прочитати hulloc(7) сторінка огляду перед читанням
цю man сторінку. Більшість понять, описаних в hulloc(7) безпосередньо застосовувати до hwloc-
утиліта bind.

ПРИКЛАДИ


Роботу hwloc-bind найкраще описати на кількох прикладах. Детальніше про те, як
розташування, зазначені в командному рядку hwloc-bind, описані в hulloc(7).

Щоб запустити команду echo на першому логічному процесорі другого пакета:

hwloc-bind package:1.pu:0 -- echo привіт

що точно еквівалентно

hwloc-bind package:1.pu:0 echo привіт

Щоб прив’язати команду «echo» до першого ядра другого пакету та другого ядра
перший пакет:

hwloc-bind package:1.core:0 package:0.core:1 echo привіт

Зауважте, що прив’язувати команду «echo» до кількох процесорів, ймовірно, не має сенсу
(оскільки "echo", ймовірно, реалізовано як однопотоковий додаток); ці приклади
просто служить, щоб показати, що може робити hwloc-bind.

Щоб запустити перші три пакети на другому та третьому вузлах:

hwloc-bind node:1-2.package:0:3 echo привіт

що також еквівалентно:

hwloc-bind node:1-2.package:0-2 echo привіт

Зауважте, що якщо ви спробуєте прив’язатися до неіснуючих об’єктів, hwloc-bind не попередить
якщо не -v було зазначено.

Щоб запустити на процесорі з фізичним індексом 2 в пакеті з фізичним індексом 1:

hwloc-bind --physical package:1.core:2 echo привіт

Щоб працювати на непарних ядрах у парних пакетах:

пакет hwloc-bind:even.core:odd echo привіт

Щоб запустити на першому пакеті, за винятком другого та п’ятого ядра:

hwloc-bind package:0 ~package:0.core:1 ~package:0.core:4 echo привіт

Щоб запустити будь-де, крім першого пакета:

hwloc-bind all ~package:0 echo hello

Щоб запустити на ядрі поблизу мережевого інтерфейсу з назвою eth0:

hwloc-bind os=eth0 echo hello

Щоб запустити на ядрі поблизу пристрою PCI, ідентифікатор шини якого дорівнює 0000:01:02.0:

hwloc-bind pci=0000:01:02.0 echo привіт

Щоб прив’язати пам’ять до другого вузла пам’яті та запустити на першому вузлі (якщо підтримується ОС):

hwloc-bind --cpubind node:1 --membind node:0 echo hello

Параметр --get може повідомляти про поточні прив’язки. У цьому прикладі показано вкладення hwloc-bind
виклики, щоб встановити прив'язку, а потім повідомити про це:

hwloc-bind node:1.package:2 hwloc-bind --get

На одній із машин розробника hwloc цей приклад повідомляє "0x00004444,0x44000000".
Маска, зазначена на вашому пристрої, може відрізнятися.

Розташування також можуть бути вказані як шістнадцяткова бітова маска (як правило, генерується hwloc-calc).
Наприклад:

hwloc-bind 0x00004444,0x44000000 echo привіт
hwloc-bind `hwloc-calc node:1.package:2` echo привіт

Прив’язка пам’яті також може бути повідомлена:

hwloc-bind --membind node:1 --mempolicy interleave -- hwloc-bind --get --membind

Це повертає рядок, що описує зв’язування пам’яті, наприклад «0x000000f0 (перемежування)».
Зауважте, що якщо система не містить вузлів NUMA, буде вказано рядок, про який повідомляється
що процес прив’язаний до всієї системної пам’яті (наприклад, «0xf...f»).

РАДА


Якщо доступний lstopo з підтримкою графіки, використовуйте, наприклад

hwloc-bind core:2 -- lstopo --pid 0

щоб перевірити, який насправді результат вашої команди зв’язування. lstopo буде графічно
показати, куди він прив'язаний за допомогою hwloc-bind.

ПОВЕРНЕННЯ VALUE


Після успішного виконання hwloc-bind виконує команду над собою. Повертається значення
отже, незалежно від значення, яке повертає команда.

hwloc-bind поверне відмінний від нуля, якщо виникає будь-яка помилка, наприклад (але не обмежуючись):
помилка розбору командного рядка, невдача в отриманні прив’язок процесу або відсутність a
команда для виконання.

Використовуйте hwloc-bind онлайн за допомогою служб onworks.net



Найновіші онлайн-програми для Linux і Windows