Определение независимых ЦП (указанных с помощью идентификаторов сходства) для построения ATLAS

Я пытаюсь определить независимые ЦП (указанные с помощью идентификатора сходства) для сборки ATLAS на Linux-машине с 4 ЦП Intel с гиперпоточностью (ubuntu 12.04).

Причина, по которой я это делаю, заключается в том, что в руководстве по ATLAS сказано использовать только физические ядра на машинах с гиперпоточностью, о том, как этого добиться, говорится: "... вы можете указать ATLAS использовать только настоящие ядра, если немного узнаете о своей машине. К сожалению, в настоящее время ATLAS не может автоматически определять эти функции, но если вы поэкспериментируете, вы может определить, какие идентификаторы сходства являются отдельными ядрами..."

Далее дается подсказка, как на самом деле проводить такие эксперименты: "...Под Linux , я могу обнаружить это с помощью cat /proc/cpuinfo..."

На моей машине файл /proc/cpuinfo содержит для восьми виртуальных процессоров следующую информацию:

    • processor : 0
    • vendor_id : Подлинный Intel
    • семейство процессоров: 6
    • модель : 42
    • название модели: ЦП Intel(R) Core(TM) i7-2600 с тактовой частотой 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). Если я не использую этот флаг, pcheck работает нормально, как указано здесь: http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483.

Кто-нибудь знает, как я могу немного узнать о моей машине, поэкспериментировав?


person boojum    schedule 23.11.2012    source источник
comment
На этот вопрос был дан ответ в этом другом вопросе 707287" title="узнайте, какие ядра ht совместно используют физическое ядро ​​из proc cpuinfo">superuser.com/questions/331308/   -  person    schedule 26.01.2014


Ответы (1)


Проверьте likwid (http://code.google.com/p/likwid/), я почти уверен, что он позволит вам закрепить потоки, запускаемые ATLAS, только на физические ядра вашей системы. Не знаю наизусть как, но может.

person Kenneth Hoste    schedule 24.11.2012
comment
Спасибо, это может быть решением, но я просмотрел документацию, и мне кажется, что это (песчаный) мост слишком далеко для меня... - person boojum; 25.11.2012
comment
Почему вы чувствуете, что это слишком далеко? Это правильный инструмент для работы, имхо. - person Kenneth Hoste; 26.11.2012