Форум программистов, компьютерный форум CyberForum.ru

openMP parallel sections - C++

Восстановить пароль Регистрация
 
ALL_ZZ
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 47
12.12.2012, 19:00     openMP parallel sections #1
Здравствуйте. Недавно решил попробовать что такое openMP и вообще параллельное программирование. Ради эксперимента выбрал задачку на перебор подпоследовательностей длины M из массива длины N. Пишу такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma omp parallel
    {
        #pragma omp parallel sections 
        {
            #pragma omp section 
            {
                foo(0,N,M,model,arr,set,sum1,b1,b2,b3,b4,"1.txt");
                printf ("id = %d, \n", omp_get_thread_num());
            }
            #pragma omp section
            {
                foo(0,N,M,model,arr,set,sum1,b12,b22,b32,b42,"2.txt");
                printf ("id = %d, \n", omp_get_thread_num());
            }
        }
    }
Функция foo выполняет рекурсивный перебор. Каждая свою часть. Результаты выводятся в файл.
В связи с этим возникли вопросы.
Во-первых: строку "id=0," выводит не два, а 6 раз, причём сначала 4 сразу, потом 2 (перед остановкой программы).
Во-вторых: в ходе выполнения создался только 1 файл - "1.txt" из первой секции.
в-третьих: диспетчер показывает, что потока 4. Собственно вопросы: почему создаётся только один файл? Можно ли использовать рекурсию при распараллеливании? Почему в диспетчере 4 потока, хотя на каждую секцию должно быть по одному потоку? Почему "id=0,", а не "id=1" например?
P.S.:
Компилятор Visual Studio 2012 professional. Поддержку omp в свойствах проекта включил. omp.h подключил.

Добавлено через 5 часов 40 минут
Вопрос отпал. Тема закрыта
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 19:00     openMP parallel sections
Посмотрите здесь:

C++ Вопросы по OpenMP
C++ Цикл for и OpenMP
C++ Как запустить компилятор в parallel studio
C++ OpenMP
OpenMP C++
C++ Магия OpenMP
C++ Программирование на OpenMP
Расскажите про IDE Intel Parallel Studio XE 2015 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru