Я использую mpi4py и openmpi на машине с несколькими процессорами / ядрами для выполнения линейной алгебры. Мой numpy построен с использованием ATLAS . Предположим, у меня есть 4-ядерный компьютер, и я хотел бы запустить сценарий Python из 4 узлов, который выполняет линейную алгебру на каждом узле, используя numpy.
Как я могу гарантировать, что ATLAS не использует более одного ядра, когда выполняет линейную алгебру в каждом узле? Когда я собираю ATLAS, кажется, не было никакой возможности настроить его для работы только на одном ядре за раз. Я думаю, что с Intel MKL вы можете установить OMP_NUM_THREADS = 1, и это поведение гарантировано. Есть ли способ построить ATLAS только для этой цели? Кажется, не существует эквивалента переменной среды.
Я предполагаю, что выполнение нескольких операций BLAS одновременно на каждом ядре многоядерного процессора не является хорошей стратегией. Кто-нибудь может прокомментировать это или дать практические правила, где это хорошая или плохая идея?