欢迎来到天天文库
浏览记录
ID:11644418
大小:435.00 KB
页数:12页
时间:2018-07-13
《里仁多核程序设计实验报告大学毕设论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、多核程序设计实验报告Multi-coreProgrammingExperimentReport学生所在学院:里仁学院学生所在班级:学生姓名:学生学号:指导教师:教务处2014年4月实验一Windows多线程编程模块一:基础练习一.实验目的与要求二.实验环境及软件三.实验内容四.实验代码·#include ·#include ·#include ·#include ·void test(int n) ·{ · fo
2、r (int i = 0; i< 10000; i++) { · } ·} ·int main() { · double dResult; · long lBefore = clock(); ·#pragma omp parallel for · for (int i = 0; i < 10000; i++) · test(i); · dResult = (double)(clock() - lBefore); · printf("
3、Total Time: %f ms.", dResult); · system("pause"); · return 0; ·} 五.结果分析运行时间是串行的一半。明显降低了时间的消耗。-10-实验二各种同步机制的性能比较一.实验目的与要求二.实验环境及软件三.实验内容以矩阵乘进行并行串行比较四.实验代码和结果实验代码://juzhencheng.cpp:定义控制台应用程序的入口点。#include"stdafx.h"#include#include#in
4、clude#defineNN2000intA[NN][NN],B[NN][NN];longlongC[NN][NN];voidsolve(intn,intnum_thread){inti,j,t,k,paralleltime,serialtime;clock_tstartTime,endTime;longlongsum;omp_set_num_threads(num_thread);//--------------对矩阵A和矩阵B进行初始化-------------for(i=0;i5、+){t=i+1;for(j=0;j6、){C[i][j]+=A[i][k]*B[k][j];}}}}for(i=0;i7、k=0;k8、targc,_TCHAR*argv[]){intn,num_thread;printf("请输入矩阵的节数(整数N<=2000),再输入并行的线程数。");while(scanf("%d%d",&n,&num_thread)!=EOF){printf("你输入的矩阵节数为:%d并行线程数为:%d",n,num_thread);solve(n,num_thread);}return0;}实
5、+){t=i+1;for(j=0;j6、){C[i][j]+=A[i][k]*B[k][j];}}}}for(i=0;i7、k=0;k8、targc,_TCHAR*argv[]){intn,num_thread;printf("请输入矩阵的节数(整数N<=2000),再输入并行的线程数。");while(scanf("%d%d",&n,&num_thread)!=EOF){printf("你输入的矩阵节数为:%d并行线程数为:%d",n,num_thread);solve(n,num_thread);}return0;}实
6、){C[i][j]+=A[i][k]*B[k][j];}}}}for(i=0;i7、k=0;k8、targc,_TCHAR*argv[]){intn,num_thread;printf("请输入矩阵的节数(整数N<=2000),再输入并行的线程数。");while(scanf("%d%d",&n,&num_thread)!=EOF){printf("你输入的矩阵节数为:%d并行线程数为:%d",n,num_thread);solve(n,num_thread);}return0;}实
7、k=0;k8、targc,_TCHAR*argv[]){intn,num_thread;printf("请输入矩阵的节数(整数N<=2000),再输入并行的线程数。");while(scanf("%d%d",&n,&num_thread)!=EOF){printf("你输入的矩阵节数为:%d并行线程数为:%d",n,num_thread);solve(n,num_thread);}return0;}实
8、targc,_TCHAR*argv[]){intn,num_thread;printf("请输入矩阵的节数(整数N<=2000),再输入并行的线程数。");while(scanf("%d%d",&n,&num_thread)!=EOF){printf("你输入的矩阵节数为:%d并行线程数为:%d",n,num_thread);solve(n,num_thread);}return0;}实
此文档下载收益归作者所有