多核程序设计

一. 实验目的:
1.掌握Microsoft Visual Studio 2012配置OpenMP的方法;
2.掌握Microsoft Visual Studio 编写编译简单OpenMP程序的方法。
二. 实验内容:
1.配置visual studio 2012使支持openMP;配置环境变量,确定线程的数目为4(有3种配置工作线程的方法,分别掌握)。P26—30
2.使用parallel指令多线程并行程序实现如下文字的输出:51
Hello, openMP!当前工作线程号为?,当前工作总线程数为2
Hello, openMP!当前工作线程号为?,当前工作总线程数为2
I’m XXX.当前工作线程号为0,当前工作总线程数为1
We will become friends. 当前工作线程号为?,当前工作总线程数为3
We will become friends. 当前工作线程号为?,当前工作总线程数为3
We will become friends. 当前工作线程号为?,当前工作总线程数为3
3.使用parallel for指令求z[i] = x[i]+y[i],输出z[i]。P72
4. 比较运行时间差别;对比输出结果。 P4,P5
5. 使用sections和section,及parallel for两种方式多线程输出100以内的所有素数。p79

2.源代码
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(2) //4个工作线程
{
printf(“Hello, openMP!当前工作线程号为 = %d”,omp_get_thread_num());
printf(“当前工作总线程数为 = %d\n”, omp_get_num_threads());
}
return 0;}

结果截图:

2-2源代码:
#include"stdafx.h"
#include <stdio.h>
#include <omp.h>
int main() {

printf("I'm RenHui当前工作线程号为 = %d",omp_get_thread_num()); 
printf("当前工作总线程数为= %d\n", omp_get_num_threads()); 

printf(“并行区开始\n”);
return 0;}

截图:

2-3
源代码:
#include"stdafx.h"
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(3)
{printf(“We will become friends. 当前工作线程号为 = %d\t,”,omp_get_thread_num());
printf(“当前工作总线程数为= %d\n”, omp_get_num_threads());

}
return 0;}
结果解图

3.0
源代码:
#include"stdafx.h"
#include <stdio.h>
#include <omp.h>
int main() {
int z[3];
int x[3]={1,2,3};
int y[3]={8,5.2};
#pragma omp parallel for
for(int i=0;i<3;i++){
z[i]=x[i]+y[i];
printf("%d",z[i]);
}
return 0;
}
结果截图:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值