- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统结构实验二_12121469
计算机系统结构
实验报告
专业:计算机科学与技术
指导老师: 雷咏梅
姓名: 钱成浩
学号:
计算机工程与科学学院
实验二 多核环境下OpenMP并行编程
实验2-1. OpenMP程序的编译和运行
实验目的
1) 在Linux平台上编译和运行OpenMP程序;
2) 在Windows平台上编译和运行OpenMP程序。
3) 掌握OpenMP并行编程基础。
实验环境
1) 硬件环境:i5双核四线程pc机
2) 软件环境:centos6+gcc,以及win8.1+Visual Studio2013
运行内容
代码如下:
#include omp.h
#include stdio.h
int main()
{
int nthreads,tid;
omp_set_num_threads(8);
#pragma omp parallel private(nthreads,tid)
{
tid=omp_get_thread_num();
printf(Hello World from OMP thread %d\n,tid);
if(tid==0)
{
nthreads=omp_get_num_threads();
printf(Number of threads is %d\n,nthreads);
}
}
}
运行结果
linux
Windows
实验2-2 矩阵乘法的OpenMP实现及性能分析
实验目的
1) 用OpenMP实现最基本的数值算法“矩阵乘法”
2) 掌握for编译制导语句
3) 对并行程序进行简单的性能调优
实验要求
运行并测试OpenMP编写两个n阶的方阵a和b的相乘程序,结果存放在方阵c中,其中乘法用for编译制导语句实现并行化操作,并调节for编译制导中schedule的参数,使得执行时间最短。要求在window环境(不用虚拟机),在linux环境(用和不用虚拟机情况下)测试程序的性能,并写出详细的分析报告。
3. 实验内容
1. 用OpenMP编写两个n阶的方阵a和b的相乘程序,结果存放在方阵c中,其中乘法用for编译制导语句实现并行化操作,并调节for编译制导中schedule的参数,使得执行时间最短,写出代码。
方阵a和b的初始值如下:
输入:
方阵的阶n、并行域的线程数
输出:
c中所有元素之和、程序的执行时间
提示:
a,b,c的元素定义为int型,c中所有元素之和定义为long long型。
Windows计时:
用time.h中的clock_t clock( void )函数得到当前程序执行的时间
在windows下使用Microsofe Visual Studio编程,源代码如下:
#includestdio.h
#includeomp.h
#includetime.h
void comput(float* A, float* B, float* C)//两个矩阵相乘传统方法
{
int x, y;
for (y = 0; y4; y++)
{
for (x = 0; x4; x++)
{
C[4 * y + x] = A[4 * y + 0] * B[4 * 0 + x] + A[4 * y + 1] * B[4 * 1 + x] +
A[4 * y + 2] * B[4 * 2 + x] + A[4 * y + 3] * B[4 * 3 + x];
}
}
}
int main()
{
double duration;
clock_t s, f;
int x = 0;
int y = 0;
int n = 0;
int k = 0;
float A[] = { 1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
13, 14, 15, 16 };
float B[] = { 0.1f, 0.2f, 0.3f, 0.4f,
0.5f, 0.6f, 0.7f, 0.8f,
0.9f, 0.10f, 0.11f, 0.12f,
0.13f, 0.14f, 0.15f, 0.16f };
float C[16];
s = clock();
//#pragma omp parallel if(false)
for (n = 0; n1000000; n++)
{
comput(A, B, C);
}
f = clock();
duration = (double)(f - s) / CLOCKS_PER_SEC;
printf(s---1,000,000 :%f\n, duration);
fo
您可能关注的文档
- 管道夫自来水管清洗项目手册(升级版).doc
- 管道工程阴极保护系统技术服务手册.doc
- 管道气密性试验方案.doc
- 管道阴极保护基本知识.docx
- 篮球自我训练.docx
- 篮排球场及河边道路初步设计说明.doc
- 类建筑的空间尺度资料2008.doc
- 类风湿治疗.doc
- 箱涵内侧沉降缝堵漏施工方案.doc
- 粉体工程-教学大纲.doc
- (通用)关于2024年度党员干部民主生活会召开情况的报告.docx
- 2025年党委党组理论学习中心组学习计划+政府办公室2025年党组理论学习中心组专题学习计划.docx
- 纪委监委理论学习中心组2025年专题学习计划+2025年市委办公室理论学习中心组专题学习计划.docx
- 3篇 2025年《政府工作报告》心得体会.doc
- 党组书记在党委理论学习中心组学习研讨会上的发言材料+人大办公室机关关于2025年党组理论学习中心组专题学习计划.docx
- 2025年党支部组织生活会谈心谈话记录+党支部书记和组织委员组织生活会前谈心谈话记录.docx
- 2025年二季度党课讲稿(以中央精神为指引推动2025年工作开好局起好步;强化廉洁教育,筑牢拒腐防变思想防线;开局即决战,起步即冲刺).docx
- 2025年二季度廉政专题、纪检专题党课讲稿(大力纠治“微腐败”和不正之风推动基层风气;深化全面从严治党,净化党内政治生态).docx
- 学习2025年《关于加强新时代中小学体育教师队伍建设若干举措的通知》心得体会研讨发言.docx
- 2025年专题组织生活会个人检视剖析情况报告(检视学习贯彻党的创新理论情况:检视党性修养提高情况:检视联系服务群众情况:检视发挥先锋模范作用情况).doc
文档评论(0)