likwid-pin - Интернет в облаке

Это команда likwid-pin, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


likwid-pin - закрепить последовательное или многопоточное приложение на выделенных процессорах

СИНТАКСИС


Ликвид-булавка [-vhqipS] [-c ] [-s ] [-d ]

ОПИСАНИЕ


Ликвид-булавка это приложение командной строки для закрепления последовательных или многопоточных приложений
выделенным процессорам. Может использоваться как замена набор задач(1). Напротив
в наборе задач нет маски соответствия, но указаны отдельные процессоры. Для многопоточного
приложения на основе библиотеки pthread pthread_create вызов библиотеки перегружен
через LD_PRELOAD, и каждый созданный поток прикрепляется к выделенному процессору, как указано
in core_list

По умолчанию каждый сгенерированный поток прикрепляется к ядру в порядке вызовов к
pthread_create. Можно пропустить отдельные потоки, используя параметр командной строки -s.

Для реализаций OpenMP явно поддерживаются компиляторы gcc и icc. Другие также могут
Работа. Ликвид-булавка устанавливает для вас переменную среды OMP_NUM_THREADS, если еще не
настоящее время. Он установит столько потоков, сколько присутствует в выражении булавки. Быть в курсе, что
с pthreads родительский поток всегда закреплен. Если вы создаете, например, 4 потока с
pthread_create и не используйте родительский процесс в качестве рабочего, вам все равно нужно предоставить
num_threads + 1 идентификатор процессора.

Ликвид-булавка поддерживает разные нумерации для закрепления. По умолчанию физическая нумерация
используются жилы. Это тоже нумерация Likwid-топология(1) отчеты. Но также
может использоваться логическая нумерация внутри узла или сокетов. При использовании с N (например, -c
N: 0-6) ядра логически пронумерованы по всему узлу. Физические ядра на первом месте. Если
система, например, имеет 8 ядер с 16 потоками SMT с -c N: 0-7, вы получаете все физические ядра.
Если вы укажете -c N: 0-15, вы получите все физические ядра и все потоки SMT. С S вы можете
укажите логическую нумерацию внутри сокетов, снова на первом месте физические ядра. Вы можете смешать
разные домены, разделенные знаком @. Например, -c S0: 0-3 @ S2: 2-3 вы закрепляете поток 0-3 в логическом
ядра 0-3 на сокете 0 и потоки 4-5 на логических ядрах 2-3 на сокете 2.

Для приложений, в которых нельзя использовать политику первого прикосновения к системам numa. Ликвид-булавка
может использоваться для включения чередования размещения в памяти. Это может значительно ускорить
производительность многопоточных кодов с привязкой к памяти. Все узлы numa, к которым пользователь прикрепил потоки
используются для чередования.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


-v выводит информацию о версии на стандартный вывод и завершает работу.

-h выводит справочное сообщение на стандартный вывод и закрывается.

-c OR OR <scatter политика>
укажите числовой список процессоров. Список может содержать несколько элементов,
через запятую и диапазоны. Например 0,3,9-11. Вы также можете использовать логические
нумерации, либо в узле (N), либо в сокете (S ) или домен нумы (M ).
likwid-pin также поддерживает логическое закрепление внутри процессора с префиксом L. если ты
опустить эту опцию likwid-pin будет прикреплять потоки к процессорам на узле
сначала с физическими ядрами. См. Ниже подробные сведения об использовании выражения потока или
политика разброса

-s
Укажите маску пропуска как шестнадцатеричное число. Для каждого установленного бита соответствующий поток
пропущено.

-S Все домены памяти ccNUMA, принадлежащие указанному списку потоков, будут очищены.
перед бегом. Может решить проблемы с кешем файлового буфера в Linux.

-p печатает доступные домены потоков для логического закрепления. При использовании в комбинации
с -c идентификаторы физических процессоров выводятся на стандартный вывод.

-i установить политику памяти numa для чередования, охватывающего все узлы numa, участвующие в закреплении

-q тихое выполнение без вывода

-d
установить разделитель, используемый для вывода списка физических процессоров (-p & -c)

ПРИМЕР


1. Для стандартного приложения pthread:

Ликвид-булавка -c 0,2,4-6 ./мое приложение

Родительский процесс закреплен за процессором 0. Поток 0 - процессор 2, поток 1 -
процессор 4, поток 2 к процессору 5 и поток 3 к процессору 6. Если больше потоков
созданы, чем указано в списке процессоров, эти потоки прикрепляются к процессору 0 как
отступать.

2. Для gcc OpenMP в списке процессоров должно быть указано столько идентификаторов, сколько потоков:

OMP_NUM_THREADS = 4; Ликвид-булавка -c 0,2,1,3 ./мое приложение

3. Полный контроль над закреплением можно получить, указав маску пропуска. Например
следующая команда пропускает закрепление потока 1:

OMP_NUM_THREADS = 4; Ликвид-булавка -s 0x1 -c 0,2,1,3 ./мое приложение

4. Ключ -c поддерживает определение потоков в определенном домене сродства, например
Узел NUMA или группа кэша. Доступные аффинные домены можно получить с помощью -p
переключатель и никаких дополнительных параметров в командной строке. Общие домены сродства - N
(весь узел), SX (сокет X), CX (группа кэша X) и MX (группа памяти X). Несколько
Домены сродства можно указать через @. Для того, чтобы наколоть по 2 резьбы на каждую розетку
2-розеточной системы:

OMP_NUM_THREADS = 4; Ликвид-булавка -c S0:0-1@S1:0-1 ./мое приложение

5. Определение другого аргумента ключа -c позволяет закреплять потоки в соответствии с
на такое выражение, как E: N: 4: 1: 2. Синтаксис E: :
темы> (: : ). В примере выводится 8 ниток с 2 нитками SMT на
ядро на машине SMT 4:

OMP_NUM_THREADS = 4; Ликвид-булавка -c E: N: 8: 2: 4 ./мое приложение

6. Последняя альтернатива переключателю -c - автоматическое разбрасывание потоков на
аффинные домены. Например, чтобы распределить потоки по всем доменам памяти в
система:

OMP_NUM_THREADS = 4; Ликвид-булавка -c M: разброс ./мое приложение

Используйте likwid-pin онлайн с помощью сервисов onworks.net



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