没有合适的资源?快使用搜索试试~ 我知道了~
多核线程管理
需积分: 9 1 下载量 200 浏览量
2014-06-20
08:31:02
上传
评论
收藏 57KB DOC 举报
温馨提示
试读
13页
项目实验报告,讲述了多核试验的具体细节,喜欢需要的就拿去吧
资源推荐
资源详情
资源评论
项目一
:
Windows
*Threads
多线程编程
模块一:基础模块
4 编译执行, 输出结果:
HelloThread 1
HelloThread 3
HelloThread 0
HelloThread 2
简答与思考:
1 写出修改后的HelloThreads的代码。
#include "stdafx.h"
#include <windows.h>
const int numThreads = 4;
DWORD WINAPI helloFunc(LPVOID pArg)
{
int myNum=*((int*)pArg);
printf("Hello Thread %d ",myNum);
return 0;
}
int main()
{
HANDLE hThread[numThreads];
int tNum[10];
for (int i = 0; i < numThreads; i++)
{ tNum[i]=i;
hThread[i] =
CreateThread(NULL, 0, helloFunc, &tNum[i], 0, NULL );
}WaitForMultipleObjects(numThreads, hThread, TRUE, INFINITE);
return 0;
}
1
2 项目总结
在主程序中循环调用 CreateThread()函数生成四个子线程分别去执行
helloFunc()函数,并将线程的句柄保存在 hTread 数组中,CreateThread()的第
四个参数给每个线程传递参数 tNum 获取该线程号,由 helloFunc()的参数接收
并指向内容。由于主线程为每个子线程传递了不同的参数,所以通过子线程的
执行结果可以判断出四个线程的执行顺序。这个实验要我们初步认识到了程序
的并行化设计思想,为以后的并行化程序设计打下了基础。
2
2 模块二:临界区模块
3 串行程序编译执行, Pi的值为: Pi = 3.141592654
The time to calculate PI was 0.327000 seconds
6 并行程序编译执行,Pi的值为: PI = 3.1419305356
The time to calculate PI was 0.063000 seconds
简答与思考:
1 如何进行并行化的?请写出并行化的思路与具体的代码。
本例中用两个线程协同工作,分别计算局部的sum1然后累加到全局变量
sum中,由于多线程多sum变量的修改会引起数据竞争,因此在这里采用了临界
区方法,将对sum的更新操作定义为临界区操作。依据刚获得的本线程序号,
以步进长度 numthreads(线程总数)间隔地累加求和,好比线程 0 求和第
0、2、4、6、8……块,线程1求和第1、3、5、7、9……块。这是为保证两个线
程负载平衡。
for(int i=myNum;i<num_steps;i+=numthreads)
{
x=(i+0.5)*step;
multhread+=4.0/(1.0+x*x);
}
这部分在多线程并行部分之外,是由单线程执行的,作用是将前述各个线
程独立间隔求和的结果汇总,得到完整的和,也就是数值积分结果。
#include "stdafx.h"
#include <windows.h>
#include <time.h>
const int numthreads=2;
static long num_steps=10000000;
double step=0.0;
double pi=0.0,sum=0.0;
CRITICAL_SECTION cs;
DWORD WINAPI Func(LPVOID arg)
{
3
剩余12页未读,继续阅读
资源评论
sinat_16701885
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ModStartCMS v8.4.0 框架稳定性持续迭代,修复部分已知问题
- bleder 教室学校学生教育室办公室考试
- 人脸检测-使用OpenCV实现的动漫+漫画人脸检测算法-附项目源码-优质项目实战.zip
- 道路贴图,材质材料免费
- 人脸检测-基于OpenCV+Node.js+WebSockets实现的实时人脸检测应用-附项目源码-优质项目实战.zip
- 一些常见的MySQL死锁案例-mysql-deadlocks-master(源代码+案例+图解说明)
- UE4动画烘焙器-ue4.27
- 新建文件夹.zip
- 1103a2a791bbd96ea98021062e327495b1c422e32fb27e0c2d6404b1bd74b692.gif
- 同城相亲交友php小程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功