tbb的应用问题,大家帮帮忙呀(冷清的多核版居然没人回答我)

woaixinrong woaixinrong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include "tbb/task.h"
#include "tbb/task_scheduler_init.h"
#include <stdio.h>
#include <stdlib.h>

//! Some busywork
void TwiddleThumbs( const char * message, int n ) {
for( int i=0; i<n; ++i ) {
printf(" %s: i=%d\n",message,i);
static volatile int x;
for( int j=0; j<20000000; ++j )
++x;
}
}

//! SideShow task
class SideShow: public tbb::task {
tbb::task* execute() {
TwiddleThumbs("Sideshow task",4);
return NULL;
}
};

//! Start up a SideShow task.
//! Return pointer to dummy task that acts as parent of the SideShow.
tbb::empty_task* StartSideShow() {
tbb::empty_task* parent = new( tbb::task::allocate_root() ) tbb::empty_task;
// 2 = 1 for SideShow and C
parent->set_ref_count(2);
SideShow* s = new( parent->allocate_child() ) SideShow;
parent->spawn(*s);
return parent;
}

//! Wait for SideShow task. Argument is dummy parent of the SideShow.
void WaitForSideShow( tbb::empty_task* parent ) {
parent->wait_for_all();
// parent not actually run, so we need to destroy it explicitly.
// (If you forget this line, the debug version of tbb reports a task leak.)
parent->destroy(*parent);
}

//! Optional command-line argument is number of threads to use. Default is 2.
int main( int argc, char* argv[] ) {
tbb::task_scheduler_init init( argc>1 ? strtol(argv[1],0,0) : 2 );
// Loop over n tests various cases where SideShow/Main finish twiddling first.
for( int n=3; n<=5; ++n ) {
printf("\ntest with n=%d\n",n);

// Start up a Sideshow task
tbb::empty_task* e = StartSideShow();

// Do some useful work
TwiddleThumbs("master",n);

// Wait for Sideshow task to complete
WaitForSideShow(e);
}
return 0;
}


这是intel threading budilding blocks中的一个例程。运行没有问题,但是我将其中相应的代码复制我到我的mfc工程中,发现tbb::empty_task* parent = new ( tbb::task::allocate_root() ) tbb::empty_task;和SideShow* s = new ( parent->allocate_child() )SideShow ;红色部分不能识别,实在想不出是什么原因,求教各位。在多核板块问了,居然没人回答我。各位帮忙呀。
...全文

相关推荐

产教融合实训基地与实践中心建设逻辑图-可编辑版

产教融合实训基地与实践中心建设逻辑图-可编辑版

龙猫与奥特曼

idea2025-free.zip

idea2025-free.zip

qq_45190508

sop基于灵敏度分析的有源配电网智能软开关优化配置升级1(Matlab代码实现)

内容概要:本文提出了一种基于灵敏度分析的有源配电网智能软开关(SOP)优化配置方法,旨在应对高比例分布式电源接入带来的电压波动与网络损耗加剧等问题。研究以IEEE33节点系统为算例,通过改进的灵敏度分析模型量化各节点对电压和功率流动的影响程度,进而构建SOP选址与定容的优化模型,实现降低网损、改善电压分布及提升系统运行灵活性的目标。全文详细阐述了灵敏度指标的数学推导、目标函数与约束条件的建模过程,并基于Matlab实现了完整的仿真求解流程,具备良好的工程实用性与学术参考价值。; 适合人群:电力系统及其自动化、电气工程等相关专业的硕士博士研究生、科研机构研究人员,以及从事智能配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①研究分布式电源大规模接入背景下配电网的主动调控与优化策略;②指导智能软开关在实际配电网中的科学选址与容量配置;③为相关科研课题提供可复现的仿真案例,支撑学术论文撰写与算法验证。; 阅读建议:建议读者结合提供的Matlab代码与IEEE33节点标准模型进行动手实践,重点理解灵敏度指标的物理意义及其在优化模型中的应用逻辑,关注求解过程中的约束设置与算法收敛性,并可进一步拓展至SOP与储能联合配置、多时间尺度优化等复杂场景进行二次开发与研究。

荔枝科研社

Ubuntu安装Latex

关于Ubuntu安装Latex的详细记录和排错指南

Leers Ting

高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?.docx

高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?

BIZKEEN
评论 3
收藏 已收藏
分享
返回顶部
woaixinrong
C++ 语言 65,214 成员 250,514 内容