ATLAS Линейная алгебра и openmpi на многоядерных с питоном - PullRequest
1 голос
/ 29 сентября 2010

Я использую mpi4py и openmpi на машине с несколькими процессорами / ядрами для выполнения линейной алгебры. Мой numpy построен с использованием ATLAS . Предположим, у меня есть 4-ядерный компьютер, и я хотел бы запустить сценарий Python из 4 узлов, который выполняет линейную алгебру на каждом узле, используя numpy.

Как я могу гарантировать, что ATLAS не использует более одного ядра, когда выполняет линейную алгебру в каждом узле? Когда я собираю ATLAS, кажется, не было никакой возможности настроить его для работы только на одном ядре за раз. Я думаю, что с Intel MKL вы можете установить OMP_NUM_THREADS = 1, и это поведение гарантировано. Есть ли способ построить ATLAS только для этой цели? Кажется, не существует эквивалента переменной среды.

Я предполагаю, что выполнение нескольких операций BLAS одновременно на каждом ядре многоядерного процессора не является хорошей стратегией. Кто-нибудь может прокомментировать это или дать практические правила, где это хорошая или плохая идея?

1 Ответ

1 голос
/ 29 сентября 2010

К сожалению, максимальное количество потоков, используемых ATLAS, невозможно контролировать с помощью переменной среды, такой как OMP_NUM_THREADS. Вам придется связать NumPy с последовательной библиотекой ATLAS. См

http://math -atlas.sourceforge.net / faq.html # tsafe

...