Я использую OpenMP для параллельного прохождения большого цикла. Допустим, у массива, над которым я работаю, всего N записей. Я хотел бы, чтобы один поток сделал первые записи N / 2, а другой поток - последние N / 2.
Я должен избегать того, чтобы потоки работали над записями, которые находятся рядом друг с другом. Размер N всегда намного больше, чем количество потоков, поэтому мне не нужно беспокоиться о блокировках, если я смогу заставить OpenMP распределять работу так, как я описал выше.
Если размер N известен во время компиляции, я могу использовать #pragma omp parallel for schedule(static,N/2)
. К сожалению это не так. Итак, как определить размер чанка динамически?