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

openMP parallel sections - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Списки http://www.cyberforum.ru/cpp-beginners/thread728804.html
Разработать ниже приведенную иерархию классов с объявлением объектов конечного производного класса с помощью конструкорив по умолчанию и инициализации: базовый класс: Дата (год, месяц, день); базовый класс: Топливо (тип топлива (АИ-92, АИ-95, АИ-98, дизельное), цена за литр); производный класс: оператор (Фамилия, Имя, дата (рождение)); производный класс: Операция продажи (Оператор, Топливо,...
C++ Опишите структуру с именем Person, содержащую следующие поля Как написать программу? Задание 1: Опишите структуру с именем PERSON, содержащую следующие поля: • фамилия и инициалы • дата рождения (массив из трех чисел) • адрес. Задание 2: Напишите программу, выполняющую следующие действия: • ввод клавиатуры данных в массив, состоящий из 10 структур типа PERSON • вывод на экран информации о людях, чья фамилия введена с клавиатуры: http://www.cyberforum.ru/cpp-beginners/thread728803.html
C++ Ошибка вывода на экран
#include <iostream> #include <cstdlib> using namespace std; struct nnm{ long int val; nnm *next; }; int main() {
C++ Матрицы
Программа должна запрашивать размер матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел. Верхняя граница для значения элементов матрицы также вводится с клавиатуры. Дана целочисленная квадратная матрица. 1)Найти сумму элементов в строках, содержащих хотя бы один неотрицательный элемент. 2)Определить номер последнего столбца, не содержащего ни одного нулевого элемента....
C++ имитировать работу препроцессора #define http://www.cyberforum.ru/cpp-beginners/thread728773.html
подскажите пожалуйста с чего начать. задача выглядит так: дан файл с текстом программы на С++, имитировать работу препроцессора #define, заменить все символы на соответствующие им в директиве, и удалить из текста программы саму директиву. не могу понять как считать текст из файла, и что использовать для поиска. Добавлено через 1 час 31 минуту как я думаю нужно сначала найти "#define" в...
C++ Задан текст. Определить, входит ли в него заданное слово и сколько раз. Задан текст. Определить, входит ли в него заданное слово и сколько раз. подробнее

Показать сообщение отдельно
ALL_ZZ
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 47
12.12.2012, 19:00     openMP parallel sections
Здравствуйте. Недавно решил попробовать что такое 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 минут
Вопрос отпал. Тема закрыта
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru