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

Распараллеливание с помощью OpenMP - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обращение к вложенными структурами http://www.cyberforum.ru/cpp-beginners/thread565954.html
Описал структуру struct personal{ char firstname,lastname,middlename,nationality; struct date{ int day,month,year; }; }; Пишу следующее: personal pbuf; А потом в цикле:
C++ Скорректировать циклы под задачу Задача. Любимое занятие котенка Мурхика - прыгать по лесенке вверх, перепрыгивая через ступеньки. Лестница имеет определенное количество ступенек N. Котенок может одним прыжком преодолеть не более К ступенек. Для разнообразия Мурзик пытается каждый раз найти новый путь к вершине лестницы. Студентам второго курса факультета экономической информатики стало интересно, сколько различных способов есть... http://www.cyberforum.ru/cpp-beginners/thread565951.html
LNK 2001 C++
Error 6 error LNK2001: unresolved external symbol "private: static char * myText::szText" (?szText@myText@@0PADA) test.obj OOPCursEx Error 7 error LNK2001: unresolved external symbol "public: virtual bool __thiscall myRect::Draw(struct HDC__ *)" (?Draw@myRect@@UAE_NPAUHDC__@@@Z) test.obj OOPCursEx Ув. господа. Что означают эти ошибки и как их можно исправить?
C++ Пример из книги Лафоре
Здравствуйте! Не могли бы подсказать, по какой причине в листинге ниже переменные должны быть обязательно быть изначально изначально с определенным значением( например int chCount=0;int wdCount=0;char ch='a'; )? Почему если их оставить пустыми, то программа не будет выполняться, и компилятор ответит, что переменные не инициализированны вообще? Заранее спасибо. char ch='a'; #include...
C++ поиск и сравнения числа в строке http://www.cyberforum.ru/cpp-beginners/thread565933.html
даны строки:30...50,40...60,50...120.Надо выделить эти числа из строк и использовать для сравнения с условием в алгоритме.Как их выделить???помогите пожалуйста.
C++ Алгоритм Брона-Кербоша или помогите с Java перевести на С++ В общем Алгоритм Брона-Кербоша представляет из себя поиск наибольшего независимого множества вершин в графе... Мне надо написать эту программку на С++. Но у меня имеется алгоритм на Java, если кто умеет можете помочь перевести его на C++, но желательно без всяких классов и тд... Ну или может быть у кого-нибудь просто есть этот алгоритм. Алгоритм на Java: import java.util.*; // Search for... подробнее

Показать сообщение отдельно
qwrus
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 24
11.05.2012, 04:09  [ТС]     Распараллеливание с помощью OpenMP
И опять я возвращаюсь к вопросу помочь мне реализовать мою изначальную задачу. Может быть, я не описал ее достаточно конкретно, поэтому напишу еще раз.

Имеется цикл следующего вида:

for (i = 0; i<100; i++)
{
fout<<i+1<<endl; //печать номера итерации в файл

first_population(A,n,k); // инициализация начальной популяции (для генетического алгоритма); функция не зависит от того, на какой итерации она выполняется

best_num=best_population_individ(A,B,m,n,k,func);// вычисление индекса лучшего индивида (для ГА); функция не зависит от того, на какой итерации она выполняется

сохранение лучшего индивида в массив; функция не зависит от того, на какой итерации цикла она выполняется

функции работы с поколениями; ВАЖНО: в этой части объявляются две переменные, сохраняющие надежность и скорость алгоритма; изменяются они так;

speed = speed + {какое-то число, получающееся в результате работы функций ГА}
rel = rel + {какое-то число, получающееся в результате работы функций ГА}

fout<<speed<<rel<<endl;
}

Т.е. пока не выполнились предыдущие итерации, следующие выполнятся не могут из-за:

1. В файл должна выводится аккуратная информация о запусках программы (т.е. типа ИТЕРАЦИЯ 1: поколения такие-то, время такое-то, надежность такая-то, скорость такая-то).

2. Переменные speed и rel высчитываются по результатам работы прошлых итераций.

Собственно, вопросы:

1. Целесообразно ли это вообще распараллеливать (по идее надо, поскольку функции, занимающие основное время, это функции работы с ГА, а там не зависит в какой итерации она делаются).

2. К примеру, с помощью #pragma omp for schedule (static, 25) я могу разбить цикл на 25 итераций в каждом куске на 4 ядра. Надо, чтобы программа сначала выполнила так: сначала все нити напечатали номер своей последовательно; потом 4 первых итерации могут параллельно выполнять функции с ГА; затем опять сначала первая ветвь для своей итерации считает переменные speed, rel; и затем каждая из 3 других параллельных нитей считает эти значения по результатам работы предшествующей нити; и все повторяется.

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