Я написал программу гибридной OpenMP/MPI, и я называю это как следующийКак установить несколько числа потоков в гибридных OpenMP/MPI программа
mpirun -np ncores --bind-to none -x OMP_NUM_THREADS=nthreads ./program
где ncores является числом, не являющихся общих процессы памяти (MPI), а nthreads - количество потоков разделяемой памяти (OpenMP).
Это означает, что в каждом из ncores программа будет выполнена на nthreads.
Я не хочу иметь nthreads в каждом ядре, но я заинтересован в изменении этого числа для каждого ядра. например если ncores = 2, я хотел бы установить 2 потока на сердечники 1 и 6 на сердечник 2.
Есть ли способ сделать это?
Я использую ОТКРЫТОМ MPI 1.10.3
Какова конфигурация вашей вычислительной системы: количество узлов, количество ядер процессора на каждом узле. Вы можете изменить оба аргумента в строке mpirun: ncores и nthreads. Если какой-либо из ваших процессов MPI (с id 0) хочет иметь 2 потока и другой процесс MPI (id 1), хочет 6 потоков, не используйте глобальную переменную окружения, переключитесь на функцию '' omp_set_num_threads' (https: // gcc .gnu.org/onlinedocs/libgomp/omp_005fset_005fnum_005fthreads.html # omp_005fset_005fnum_005fthreads) – osgx