Дерективы section и sections в openMP c++
Решаю следующую задачу:
Изучите OpenMP-директивы создания параллельных секций sections и section. Напишите программу, содержащую 3 параллельные секции, внутри каждой из которых должно выводиться сообщение: [<Номер нити>]: came in section <Номер секции> Вне секций внутри параллельной области должно выводиться следующее сообщение: [<Номер нити>]: parallel region Запустите приложение на 2-х, 3-х, 4-х нитях. Проследите, как нити распределяются по параллельным секциям. Входные данные: k – количество нитей в параллельной области. Выходные данные: k-строк вида «[<Номер нити>]: came in section <Номер секции>», k-строк вида «[<Номер нити>]: parallel region». Пример входных и выходных данных
Входные данные:
- 3
Выходные данные:
- [0]: came in section 1
- [1]: came in section 2
- [2]: came in section 3
- [0]: parallel region
- [1]: parallel region
- [2]: parallel region
Я не совсем понимаю как правильно реализовать следующую часть задачи
Вне секций внутри параллельной области должно выводиться следующее сообщение: [<Номер нити>]: parallel region
Пробовала вставлять вывод строки после 3х секций, но получаю ошибку. Подскажите, пожалуйста, где небходимо организовать вывод. Мой код:
#include <iostream>
#include <omp.h>
using namespace std;
int main(int argc, char *argv[]) {
int k;
cin >> k;
omp_set_num_threads(k);
#pragma omp parallel sections
{
#pragma omp section
{
cout << "[" << omp_get_thread_num() << "]: came in section 1" << endl;
}
#pragma omp section
{
cout << "[" << omp_get_thread_num() << "]: came in section 2" << endl;
}
#pragma omp section
{
cout << "[" << omp_get_thread_num() << "]: came in section 3" << endl;
}
//cout << "[" << omp_get_thread_num() << "]: parallel region";
}
}