共享存储系统并行编程_第1页
共享存储系统并行编程_第2页
共享存储系统并行编程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题例题:1、试分析下列循环嵌套中各语句间的相关关系: DO l=1,NDO J=2,NS1A(l,J)=A(l,J-1)+B(l,J)S2C(I,J)=A(I,J)+D(I+1,J)S3D(I,J)=0.1En ddoEn ddo DO I= 1,NS1A(I)=B(I)S2C(I)=A(I)+B(I)S3D(l) =C(I+1)En ddo DO I=1,NDO J=2,NS1A(I,J) = B(I,J) + C(I,J)S2C(I, J)=D(I,J)/2S3E(I,J)=A(I,J-1) *2+E(I,J-1)En ddoEn ddo2、令N=105和N=108,试编写计算二的SPM

2、D并行程序,并在您现有的共享存储的平台上调试之;同时应执行在1, 2, 3,4,5, 6,7和8个处理器上3、试用X3H5模型,写出计算二的并行程序。4、 下面是使用Pthreads方法计算二的一种并行代码段:/*计算x Pthreads编程代码段* 井 Include < stdio. h># include <pthread. h> /*线程控制所需的头文件鵠/# include <synch. h>/*同步换作所需的头文件关/extern nnsigned * micro-rimer;/ * 系统计时变量 * /unsigned lot fin,sta

3、rt;semaphore -1 semaphore;barrier - spin - t bonier)同步 O 号说明*/double delta>pi;typcdef struct I /*定文参數结构*/int low;int high;I Arg;/*定义线程执行的函«*/void child(arg)Arg * argIint low = argflow $int high = arLhigh;lot i;double x part = 0.0;for(i = low;i< =high;i+ + ) x= (i + 0.5) * deltaj part + =

4、1.0/(1.0 + x * x);p8ema(&semaphore) ;/*利用信号ft进行互斥累加* /pi + = 4 0 类 delta * part;vsema( & semaphore);-barrier. spin( &barrier) ; / «线程在完成计算后需barrier同步* / pthread - exit();/* 线程终止 * /Imain(argctargv)int argc;char * argv(;int no. of- threads,segments i<thread - l thread;Arg* arg;if

5、(argc ! = 3)1prinrf(usage; pi < no-of-threadsnoof-sirips n*):exic(l);!no-of-threads = atoi(argv( 1 ) isegments = aLoi( argv2fdelta 工 1 0/segments;pi = 0.0 z鸵m日一 init( Awmaphore J) ;/ *初始化同步变量* /-barrier, spin,init(&barrier*no_of _ threads+ L);stan= * micro-timerj 八线程开始计时轟/For( i = 0; i <no

6、_ of- threads ii + +)1厶启动贱程*/arg = (Arg * )mallQc(si3e of (Arg) ) iarg-low i * aegmentB/no- of. thteads;arg-*-high = (i + 1) * segments/no-of- threads1;pthrcad_ ere?te(屋 thread«pthreod attr_ default f child,arg) !-bHrriet- spin( & barrier) :/*主进程尊帚所有子线程结束* /fin= * microttmer; / * 线程结束记时 * /

7、printff% u n , fin start);printfC npit t% 15.14f nrpl);I 试解释上述代码段的工作流程. 通过三种模型KJHS'Prhrea由和 giMP上计算n的代码段,比较它利的编程风搭 的异同施优缺点d5、下面是使用经理员工模型(即主从模型)求解N-皇后问题的并行代码段:求解WE后经理r员工编程代码段> /* Manager 程序段 * /if (Siam) )/*如果我是节点0 * /printf(* n STARTING - n ); wbile(get_ board( board) - 1EXDNE) crecv( R EADY,

8、 NULL.O);nod«nbr = infonode() $ mgoount + + ”詈计数多少节点准备好醤/ csendfTASK(board,sizeof(two »two D) ,nodenbr>0); msgoovnt;I八零待所有员工空R*/wMle( msgcountl nodes - 1) I crecv( READY, NULL)t msgcount+ + ;£厶发送FINISHED «息给所有节点,并退出* / board0l0 = FINISHED scscnd(TASKtboandfsiswof(two D) t - 1,0); goodbye(.);Ielse!/*员工程序ft * /r<r( J ; >Ed (READ YJ), 0 m # nkcrecv( TASK * board f si

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论