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

Преобразование последовательного кода в параллельный - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок-схема по коду программы http://www.cyberforum.ru/cpp-beginners/thread1155190.html
блок схема к массиву #include <iostream.h> #include <conio.h> #include <stdlib.h> int main() { clrscr(); int b, a, i, j, s = 0, tum1, tum2, k; for (i = 0; i < 5; i++)
C++ Написание бота Здравствуйте! Знаю С++ на учебном уровне, хочу научится делать что-то более весомое, например программа которая будет выполнять какие либо действия на ПК! Подскажите литература которая подойдет, как... http://www.cyberforum.ru/cpp-beginners/thread1155186.html
C++ Создание класса-агрегата объектов
Есть класс TString являющийся агрегатом объектов класса TSymb Как написать конструктор TString при этом по его параметру-входной строке надо создать и экземпляры TSymb и обойтись без всяких vector...
C++ Напишите программу обхода двоичных деревьев во внутреннем порядке
Помогите найти ошибку в коде. Задание: Напишите программу обхода двоичных деревьев во внутреннем порядке. #include<iostream> #include <cstdlib> using namespace std; //Создание упорядоченного...
C++ Вектор структур, в которых также векторы. Ошибка переполнения вектора http://www.cyberforum.ru/cpp-beginners/thread1155175.html
Как реализовать такое дело: Есть структура MyStruct1 struct MyStruct1{ std::vector<MyStruct2> myStruct2; }; В которой вектор структур MyStruct2. struct MyStruct2{
C++ Напечатать все слова строки, которые начинаются цифрой Привет. Нужна помощь: Задана строка. Необходимо напечатать все слова строки, которые начинаются цифрой и подсчитать их количество. подробнее

Показать сообщение отдельно
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
23.04.2014, 15:30
нужно взять вот этот кусок и распараллелить
C++
1
2
    for (i = 1; i <= N; i++)
      sum = sum + f(((double)i-0.5)*w);
Вообще, советую объяснять вопрос простым языком, чтоб я не лез в википедию за словом SPMD. Учительнице своей на уроке информатике крутыми терминами понтоваться лучше, а на форуме хотелось бы, чтоб как можно больше людей тебя понимало (это вам кстати по алгебре или по информатике задали?)

как вариант предлагаю сделать что-то вроде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double sum;
boost::mutex sum_mtx;
void calculator(int start, int end){
    double localsum = 0.0;
    for (i = start; i < end; i++)
         localsum = localsum + f(((double)i-0.5)*w);
    boost::unique_lock<boost::mutex> lock(sum_mtx);
    sum+=localsum;
}
int main(){
    boost::thread_group tg;
    const int group_size=N/5;
    sum=0.0;
    for(int i=1; i<N; i+=group_size){
        if (i+group_size<N) tg.add_thread(calculator, i, i+group_size);
        else  tg.add_thread(i, N);
    }
    tg.join_all();
    collect (sum);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru