Я пытаюсь определить независимые ЦП (указанные с помощью идентификатора сходства) для сборки 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.
Кто-нибудь знает, как я могу немного узнать о моей машине, поэкспериментировав?