Форум программистов, компьютерный форум, киберфорум
Параллельное программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 25

Число пи intel TBB

03.12.2015, 10:51. Показов 1804. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени
не могу понять как исправить ошибки

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iomanip>
#include <iostream>
#include <limits>
#include <time.h>
#include "tbb/tick_count.h"
#include "tbb/task_scheduler_init.h"
#include <tbb/parallel_reduce.h>
#include "tbb/blocked_range.h"
#include "tbb/parallel_for.h"
using namespace tbb;
using namespace std; 
 
 
class DotProductCalc
{
    double h , s;
    int n;
public:
    void operator()(const blocked_range<int>& r) const
    {
        int begin = r.begin();
        int end = r.end();
    //  h = 1.0/n;
    //  s = 0.0;
        for (int i = begin; i != end; i++)
                s += sqrt(1.0-((i * h)*(i * h))) + sqrt(1.0-(((i+1) * h)*((i+1) * h))); // Ошибка 2
        s *= 2.0 * h;   // сдесь тоже Ошибка 2
    }
    DotProductCalc(double *pstep, double *pspi, int pkol): ph(pstep), ps(pspi), pn(pkol)//Ошибка  4
    {}
};
 
 
void ParallelResultCalculation(double* pstep, double* pspi,  int pkol)
{
    parallel_for(blocked_range<int>(0, n, s),DotProductCalc(pstep, pspi, pkol));//Ошибка  7
}
 
 
 
double f(double x){
return sqrt(1.0-x*x);
}
 
double Pi(int n, double s){
    int i;
    double x, h = 0.0;  
    h = 1.0/n;
    for (i = 0; i < n; i++) 
            s += f(i * h) + f((i+1) * h);
    s *= 2.0 * h;   
    return s;
}
int main (){
 
    int i, n = 10000000;
    double pi, s = 0.0;
    double Duration;
 
    tick_count Start, Finish;
 
    pi = atan(1.0) * 4.0;//точное значение пи
    printf("tochnoe znachenie Pi %f\n", atan(1.0) * 4.0);   
 
    Start = tick_count::now();  
    s=Pi(n, s); //вызов функции для подсчета пи    
    Finish = tick_count::now(); 
    Duration = (Finish - Start).seconds();
    printf("posledovatelnoe znachenie Pi %f\n",  s);    
    printf("Vremya posledovatelnogo vichisleniya: %f\n", Duration);
 
    
 
    h = 1.0/n;
    s = 0.0;
 
    Start = tick_count::now();
    ParallelResultCalculation(pMatrix, pVector, pResult, Size, 1);
    //Finish = GetTime();
    Finish = tick_count::now();
    //Duration = Finish - Start;
    Duration = (Finish - Start).seconds();
    // Printing the result vector
    //printf("\n Result Vector: \n");
    //PrintVector(pResult, Size);
    // Printing the time spent by matrix-vector multiplication
    printf("\n Time of execution: %f\n", Duration);
 
 
        
    return (0);
}
Ошибка 2 error C2166: левостороннее значение указывает на объект-константу c:\tbb40_20110809oss\examples\test_all\f ibonacci\Fibonacci.cpp 26 fibonacci

Ошибка 4 error C2614: DotProductCalc: недопустимая инициализация члена: 'pn' не является базовым классом или членом c:\tbb40_20110809oss\examples\test_all\f ibonacci\Fibonacci.cpp 30 fibonacci

Ошибка 7 error C2065: n: необъявленный идентификатор c:\tbb40_20110809oss\examples\test_all\f ibonacci\Fibonacci.cpp 36 fibonacci
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2015, 10:51
Ответы с готовыми решениями:

Intel tbb, вычисление числа Пи
доброго времени, продолжаю изучать intel tbb программа считает число пи выдает много ошибок , связаны с вызовом PiTbb и Reduce, не...

Ищу литературу по Intel tbb
скачал библиотеки с сайта, не могу подключить и запустить какой нибудь пример, хотя и примеры то найти как то не могу, можете скинуть...

Скалярное произведение векторов и Intel TBB
Добрый день. Требуется распараллелить программу вычисления скалярного произведения векторов с использованием библиотеки Intel Threading...

3
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.12.2015, 11:05
ildariys, operator() константный, при этом в нем меняется s. Некорректно. В классе нет никаких ph, ps, pn.
n нет в параметрах функции ParallelResultCalculation
0
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 25
03.12.2015, 13:28  [ТС]
переделал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iomanip>
#include <iostream>
#include <limits>
#include <time.h>
#include "tbb/tick_count.h"
#include "tbb/task_scheduler_init.h"
#include <tbb/parallel_reduce.h>
#include "tbb/blocked_range.h"
#include "tbb/parallel_for.h"
using namespace tbb;
using namespace std; 
 
 
class DotProductCalc
{
    double h , s;
    int n ;
public:
    void operator()(const blocked_range<int>& r)// const
    {
        //int begin = r.begin();
        int end = r.end();  
        int num_n;
        h = 1.0/n;
        s = 0.0;
        for (int i = 0; i != end; i++)
                s += sqrt(1.0-((i * h)*(i * h))) + sqrt(1.0-(((i+1) * h)*((i+1) * h))); // Ошибка   2
        s *= 2.0 * h;   // сдесь тоже Ошибка    2
    } 
    void join(DotProductCalc &p)   { 
        s += p.s;  
    }   
    DotProductCalc(DotProductCalc &p, tbb::split){
        s=0.0;
        //num_n=p.num_n;
        n=p.n;
    }
     DotProductCalc(int n){
        s=0.0;
        //num_n = n;
        h = 1.0/n;
    }
};
 
 
 
 
 
 
double f(double x){
return sqrt(1.0-x*x);
}
 
double Pi(int n, double s){
    int i;
    double x, h = 0.0;  
    h = 1.0/n;
    for (i = 0; i < n; i++) 
            s += f(i * h) + f((i+1) * h);
    s *= 2.0 * h;   
    return s;
}
int main (){
 
    int i, n = 10000000;
    double pi, s = 0.0;
    double Duration;
 
    tick_count Start, Finish;
 
    pi = atan(1.0) * 4.0;//точное значение пи
    printf("tochnoe znachenie Pi %f\n", atan(1.0) * 4.0);   
 
    Start = tick_count::now();  
    s=Pi(n, s); //вызов функции для подсчета пи 
    Finish = tick_count::now(); 
    Duration = (Finish - Start).seconds();
    printf("posledovatelnoe znachenie Pi %f\n",  s);    
    printf("Vremya posledovatelnogo vichisleniya: %f\n", Duration);
 
    // Инициализация библиотеки Intel TBB   
    tbb::task_scheduler_init init;  
    Start = tick_count::now();
   // DotProductCalc s(n);
    parallel_reduce(blocked_range<long>(0, n, 1),DotProductCalc(s));  
    //Finish = GetTime();
    Finish = tick_count::now();
    //Duration = Finish - Start;
    Duration = (Finish - Start).seconds();
    // Printing the result vector
    //printf("\n Result Vector: \n");
    //PrintVector(pResult, Size);
    // Printing the time spent by matrix-vector multiplication
    printf("\n Time of execution: %f\n", Duration);
 
 
        
    return (0);
}
теперь такая ошибка
Ошибка 2 error C2664: void DotProductCalc::operator ()(const tbb::blocked_range<Value> &): невозможно преобразовать параметр 1 из 'tbb::blocked_range<Value>' в 'const tbb::blocked_range<Value> &' C:\tbb40_20110809oss\include\tbb\paralle l_reduce.h 152 fibonacci
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
03.12.2015, 14:54
ildariys, Создается blocked_range<long> ожидается blocked_range<int>.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2015, 14:54
Помогаю со студенческими работами здесь

Не могу заставить работать библиотеку Intel TBB
Все пути прописал по официальному гайду, но при компиляции стандартного sub_string_finder_extended.cpp выдает ошибку, что нет файла tbb.dll...

Intel TBB and VS 2015
Зарегистрировался здесь: https://registrationcenter.intel.com/en/forms/?productid=2558&amp;licensetype=2 и скачал. Потом сделал как...

БД *.TBB
день добрый, никто не подскажет что это за БД с таким расширением, и через что с ними работать, перерыл весь инет, нашел только что это...

Совместимость Delphi с процессорами типа Intel® Atom™ Z3735F, Intel® Celeron® N2840, Intel® Pentium® N3540
Всем привет, сейчас передо мной стоит вопрос выбора ноутбука, ноутбук нужен для учебы, в целом не прихотлива, да и не готова тратить на...

библиотека TBB )
В общем, вопрос :как установить библиотеку TBB? У меня Microsoft Visual C++ 2010. И библиотека никак не подключается.. Помогите пожалуйста,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
Настройка MTProxy
Loafer 11.06.2025
Дополнительная информация к инструкции по настройке MTProxy: Перед сборкой проекта необходимо добавить флаг -fcommon в конец переменной CFLAGS в Makefile. Через crontab -e добавить задачу: 0 3. . .
Изучаем Docker: что это, как использовать и как это работает
Mr. Docker 10.06.2025
Суть Docker проста - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнер, если говорить образно, это запечатанная коробка, в которой находится ваше приложение вместе. . .
Тип Record в C#
stackOverflow 10.06.2025
Многие годы я разрабатывал приложения на C#, используя классы для всего подряд - и мне это казалось естественным. Но со временем, особенно в крупных проектах, я стал замечать, что простые классы. . .
Разработка плагина для Minecraft
Javaican 09.06.2025
За годы существования Minecraft сформировалась сложная экосистема серверов. Оригинальный (ванильный) сервер не поддерживает плагины, поэтому сообщество разработало множество альтернатив. CraftBukkit. . .
Dapper - лучший среди микроORM под C#
UnmanagedCoder 09.06.2025
Знаете, в мире ORM-инструментов для . NET существует негласная иерархия. На вершине массивных фреймворков возвышается Entity Framework - неповоротливый, но всемогущий. А в категории легковесных. . .
Сравнение GCC 14 и Clang 18 компиляторов C для HPC
bytestream 08.06.2025
В высокопроизводительных вычислениях (HPC) выбор компилятора - это ход, способный радикально изменить производительность всей системы. Работая последние 15 лет с критическими HPC-системами, я видел. . .
Всё о конфигурации ASP.NET Core
stackOverflow 08.06.2025
Старый добрый web. config, похоже, отправился на пенсию вместе с классическим ASP. NET. За годы работы с различными проектами я убедился, что хорошо организованная конфигурация – это половина успеха. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »