OpenMP: запуск двух функций параллельно, каждая на половине пула потоков

У меня есть потребляющая процессор функция do_long, которую нужно запустить на двух разных наборах данных.

do_long(data1);
do_long(data2);

do_long() {
#pragma omp for
    for(...) {
        // do proccessing
    }
}

У меня есть N потоков (зависит от машины). Как сообщить OpenMP, что я хочу, чтобы обе do_long выполнялись параллельно, причем N/2 потоков должны выполнять цикл в первом do_long и еще N/2 должны обрабатывать второй do_long?

5
задан Jakub M. 24 October 2011 в 13:13
поделиться