Определение независимых процессоров (указанных с помощью идентификаторов сходства) для построения ATLAS
Я пытаюсь определить независимые процессоры (указанные с помощью идентификаторов сходства) для сборки ATLAS на компьютере с Linux и 4 процессорами Intel с гиперпоточностью (Ubuntu 12.04).
Причина, по которой я это делаю, заключается в том, что в руководстве ATLAS говорится, что на машинах с гиперпоточностью следует использовать только физические ядра, а в том, как этого добиться, говорится: "... вы можете указать ATLAS использовать только реальные ядра, если вы научитесь немного о вашей машине. К сожалению, в настоящее время ATLAS не может автоматически определять эти функции, но если вы поэкспериментируете, вы сможете узнать, какие идентификаторы соответствия являются отдельными ядрами,..."
Далее дается подсказка о том, как на самом деле провести этот эксперимент: "... В Linux я могу обнаружить это с помощью cat /proc/cpuinfo..."
На моей машине файл /proc/cpuinfo содержит для восьми виртуальных процессоров следующую информацию:
- процессор: 0
- vendor_id: GenuineIntel
- семья процессора: 6
- модель: 42
- Название модели: Intel(R) Core(TM) i7-2600 CPU @ 3,40 ГГц
- степпинг: 7
- микрокод: 0x1b
- процессор МГц: 3392,333
- размер кеша: 8192 КБ
- физический идентификатор: 0
- братьев и сестер: 8
- основной идентификатор: 0
...
Процессоры 0 и 4 имеют одинаковый идентификатор ядра (и так далее для процессоров 1 и 5, 2 и 6, 3 и 7). Однако, если я укажу --force-tids="4 0 1 2 3" для скрипта конфигурирования ATLAS, сборка завершится неудачно (сначала меня заметит неуспешный make pcheck). Если я не использую этот флаг, make pcheck работает нормально, как указано здесь: http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483.
Кто-нибудь знает, как я могу немного поэкспериментировать о своей машине, поэкспериментировав?
1 ответ
Проверьте likwid (http://code.google.com/p/likwid/), я уверен, что он позволит вам связать потоки, которые запускает ATLAS, только с физическими ядрами вашей системы. Не знаю, как Харт, но может.