




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多核程序设计实验报告Multi-core Programmi ng Experime nt Report学生所在学院:里仁学院学生所在班级:学生姓名: 学生学号: 指导教师:教务处2014年4月实验一 Windows多线程编程模块一:基础练习一. 实验目的与要求二. 实验环境及软件三. 实验内容r c pv C Io Ju Ju 4U u Hu u u四. 实验代码 0id test(i nt n)for (int i = 0; i 10000; i+) int main() double dResult; long lBefore = clock();omp parallel forfor
2、(int i = 0; i 10000; i+) test(i);dResult = (double)(clock() - lBefore); printf(nTotal Time: %f ms.n, dResult); system(pause);return 0;i五. 结果分析fotAl Tine: 78060000 斡吝.青按任意犍继续-运行时间是串行的一半。明显降低了时间的消耗。实验二 各种同步机制的性能比较一. 实验目的与要求二. 实验环境及软件三. 实验内容 以矩阵乘进行并行串行比较四. 实验代码和结果 实验代码:/ juzhencheng.cpp : 定义控制台应用程序的入口点
3、。 #include stdafx.h#include #include #include #define NN 2000 int ANNNN, BNNNN; long long CNNNN;void solve(int n, int num_thread)int i, j, t, k, paralleltime, serialtime; clock_t startTime, endTime; long long sum;omp_set_num_threads(num_thread);/ 对矩阵 A 和矩阵 B 进行初始化 for (i = 0; in; i+)t = i + 1;for (j
4、 = 0; jn; j+)Aij = t+;Bij = 1;/ 矩阵乘法并行算法 startTime = clock();sum = 0;#pragma omp parallel shared(A,B,C) private(i,j,k)#pragma omp for schedule(dynamic)for (i = 0; in; i+)for (j = 0; jn; j+)Cij = 0;for (k = 0; kn; k+)Cij += Aik * Bkj;for (i = 0; in; i+)for (j = 0; jn; j+) sum += Cij;endTime = clock()
5、; paralleltime = endTime - startTime;sum,printf( 矩 阵 C 所 有 元素和 为 sum=%lld 并 行计算 时 间 time=%dmsn, paralleltime);startTime = clock();sum = 0;for (i = 0; in; i+)for (j = 0; jn; j+)Cij = 0;for (k = 0; kn; k+)Cij += Aik * Bkj;for (i = 0; in; i+)for (j = 0; jn; j+)sum += Cij;endTime = clock();serialtime =
6、endTime - startTime;sum,printf( 矩 阵 C 所 有 元素和 为 sum=%lld 串 行计算 时 间 time=%dmsn, serialtime);printf( 相对加速比为: %d/%dn, serialtime, paralleltime);- 3 -int _tmain(int argc, _TCHAR* argv)int n, nu m_thread;printf(请输入矩阵的节数(整数 N=2000 ),再输入并行的线程数。nn”);while (sca nf(%d%d, &n, &nu m_thread) != EOF)printf(你输入的矩阵
7、节数为:%d并行线程数为:%dn, n, num_thread);solve (n, nu m_thread);return 0;实验结果:i青输人矩阵的节数(整数NSM豳)*再输入并行的线程数。1cile蜡矩相0 FT1 -T- T 丸幵串4!B nn打M实验三蒙特卡洛法并行求解Pi值一. 实验目的与要求二. 实验环境及软件三. 实验内容四. 实验代码和结果代码:/ Pi.cpp :定义控制台应用程序的入口点。求圆周率PI#in clude stdafx.h#in clude #in clude #in clude #in clude using n amespace std;static
8、long num_steps=1000000000; 定义所分的块数#define NUM THREADS 2 /定义所开启的线程数int _tmain(int argc, _TCHAR* argv)int i;omp_set_num_threads(NUM_THREADS);/ 开启线程double x,sum=0.0,pi;clock_t start_time,end_time;double step=1.0/(double)num_steps;/并行 start_time=clock();#pragma omp parallel sections reduction(+:sum) pri
9、vate(x,i)#pragma omp sectionfor (i=omp_get_thread_num();inum_steps;i=i+NUM_THREADS) x=(i+0.5)*step; sum=sum+4.0/(1.0+x*x);#pragma omp sectionfor (i=omp_get_thread_num();inum_steps;i=i+NUM_THREADS) x=(i+0.5)*step; sum=sum+4.0/(1.0+x*x);pi=step*sum;end_time=clock();coutPi=piendl;cout 并行 time=end_time-
10、start_timeendl;/串行 sum=0.0;start_time=clock();for (i=0;inum_steps;i+)x=(i+0.5)*step; sum=sum+4.0/(1.0+x*x);pi=step*sum;en d_time=clock();coutPi=pie ndl;cout串行 time=end_time-start_timeendl;system(pause);return 0;F=3 - 1.理直右夕扌=匸彳亍七 irrif? =4S BS rx=3 _S91W摂任意圭建名雀结-结果:实验四多核并行排序实验一. 实验目的与要求1、熟悉快速排序的串行算法
11、2、熟悉快速排序的并行算法3、实现快速排序的并行算法二. 实验环境及软件硬件环境:。OS:,软件工具:VC三. 实验内容1、快速排序的基本思想2、快速排序算法的性能3、快速排序算法并行化四. 实验代码和结果实验代码:/ bin gxi ngpaixu.cpp :定义控制台应用程序的入口点。#i nclude stdafx.h#include #include#include #include #include omp.husing namespace std;/int count=0;void swap(int &a, int &b)/int tmp;tmp = a;a = b;b = tmp
12、;void quicksort(int *A, int l, int u)int i, m, k;if (l = u) return;m = l;for (i = l + 1; i = u; i+)if (Ai Al)/*不管是选第一个元素作为pivot还是最后一个作为 pivot,假如我们想得到的是从小到大的序列,那么最坏的输入情况就是从大到小的;如果我们想得到从大到小的序列, 那个最坏的输入情况就是从小到大的序列 */swap(A+m, Ai);swap(Al, Am);quicksort(A, l, m - 1);quicksort(A, m + 1, u);void main(int
13、argc, char *argv)omp_set_num_threads(2);/ 设置线程数为 2,因为是双核的 CPUint k = 0, i = 0;int m = 0, n = 0;double cost = 0;int len = 10000;- 7 -int short_len = len / 2;int B10000, C10000, D5000, E5000;/ 将 B 分为两个小的数组,并行的对他们调用快速排序算法#pragma omp parallel default(none) shared(B,C,len) private(i)/- 这个 for 循环是并行的 int
14、j = 50000;#pragma omp forfor (i = 0; ilen; i+)Bi = j-;Ci = j-;/ 初始化 B,C 数组clock_t begin = clock();/ 计时开始点#pragma omp parallel default(none) shared(B,D,E,short_len) private(i)/- 这个 for 循环是 并行的#pragma omp forfor (i = 0; ishort_len; i+)/- 这个 for 循环是并行的 Di = Bi; 将B的前5000个数放入 D Ei = Bi + 5000;/ 将 B的后 500
15、0 个数放入 E #pragma omp parallel default(none) shared(E,D,short_len) /private(i) 快速排序的并行region#pragma omp parallel sections#pragma omp section quicksort(D, 0, short_len - 1);/ 对 D 排序#pragma omp sectionquicksort(E, 0, short_len - 1);/ 对 E 排序将D和E进行归并排序放入B里面for (; klen; k+)/if (mshort_len & nshort_len)if
16、(Dn = Em)Bk = Dn;n+;elseBk = Em;m+;if (m = short_len | n = short_len)if (m = short_len)Bk = Em;elseBk = Dn - 1;k += 1; break;if (/*m=short_len &*/ nshort_len)int tem = short_len - n;for (int p = 0; ptem; p+)Bk = Dn;n+;k+;else if (/*n=short_len &*/ mshort_len)- 9 -int tem = short_le n - m;for (int q = 0; qtem; q+)Bk = Em;m+;k+;/ 归并算法结束clock_t end = clock(); 计时结束点cost = (double)(e nd - begi n);cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 度畜牧养殖基地承包合同书
- 四川成都典型离婚合同范例
- 兼职导师劳动合同
- 6 将相和(教学设计)2024-2025学年统编版语文五年级上册
- Module 2 Unit 6 E-friends Period 1(教学设计)-2024-2025学年沪教牛津版(深圳用) 英语六年级上册
- 全新融资租赁合同法律文本
- 派遣厨师劳动合同
- Module 10 Unit 2 Go straight on!(教学设计)-2024-2025学年外研版(三起)英语六年级上册
- 度礼品销售合同书
- 道路维修工程标准合同范本
- 人教版一年级道德与法治下册全册教案
- 类风湿关节炎前状态诊疗专家共识(2024)解读
- 2024-2030年中国化妆镜行业市场发展趋势与前景展望战略分析报告
- Project项目管理(从菜鸟到实战高手)
- 食品加工机械与设备操作技能测试考核试卷
- SNT 1961.11-2013 出口食品过敏原成分检测 第11部分:实时荧光PCR方法检测麸质成分
- 第六章 围手术期护理课件
- 中考字音字形练习题(含答案)-字音字形专项训练
- 音响设备出租行业竞争分析及发展前景预测报告
- DB63-T 2313-2024 三江源国家公园生态监测指标
- 2024年湖南高速铁路职业技术学院单招职业适应性测试题库及答案1套
评论
0/150
提交评论