4765093171Fortran语言MPI程序设计

上传人:枫** 文档编号:431650852 上传时间:2023-01-28 格式:DOC 页数:206 大小:1.22MB
返回 下载 相关 举报
4765093171Fortran语言MPI程序设计_第1页
第1页 / 共206页
4765093171Fortran语言MPI程序设计_第2页
第2页 / 共206页
4765093171Fortran语言MPI程序设计_第3页
第3页 / 共206页
4765093171Fortran语言MPI程序设计_第4页
第4页 / 共206页
4765093171Fortran语言MPI程序设计_第5页
第5页 / 共206页
点击查看更多>>
资源描述

《4765093171Fortran语言MPI程序设计》由会员分享,可在线阅读,更多相关《4765093171Fortran语言MPI程序设计(206页珍藏版)》请在金锄头文库上搜索。

1、Fortran语言MPI 并行计算程式设计 编 着: 郑 守 成 期 间: 民国92年 2月 12日 电 话: (03) 5776085 x 305 E-mail : c00tch00nchc.gov.twFortran語言1MPI 并行計算程式設計1第一章 前言51.1 MPI 并行計算軟體61.2 國家高速網路與計算中心的并行計算環境71.3 在IBM 電腦系統上如何使用MPI81.3.1 IBM 電腦系統的MPI Fortran程式編譯指令81.3.2 IBM 電腦系統的 Job command file81.3.3 IBM 電腦系統的并行程式的執行指令111.4 在PC Cluster

2、上如何使用MPI131.4.1 PC Cluster上的MPI Fortran程式編譯指令131.4.2 PC Cluster 上的 Job command file141.4.3 PC Cluster 上的并行程式執行指令15第二章 無邊界資料交換的并行程式162.1 MPI 基本指令172.1.1 mpif.h include file172.1.2 MPI_INIT, MPI_FINALIZE172.1.3 MPI_COMM_SIZE, MPI_COMM_RANK182.1.4 MPI_SEND, MPI_RECV192.2 無邊界資料交換的循序程式 T2SEQ212.3 資料不切割的并

3、行程式 T2CP232.4 MPI_SCATTER,MPI_GATHER,MPI_REDUCE282.4.1 MPI_SCATTER,MPI_GATHER282.4.2 MPI_REDUCE, MPI_ALLREDUCE302.5 資料切割的并行程式 T2DCP32第三章 需要邊界資料交換的并行程式363.1 MPI_SENDRECV, MPI_BCAST373.1.1 MPI_SENDRECV373.1.2 MPI_BCAST373.2 邊界資料交換的循序程式 T3SEQ393.3 資料不切割的邊界資料交換并行程式 T3CP403.4 資料切割的邊界資料交換并行程式(一) T3DCP_147

4、3.5 資料切割的邊界資料交換并行程式 (二) T3DCP_252第四章 格點數不能整除的并行程式574.1 格點數不能整除的循序程式 T4SEQ584.2. MPI_SCATTERV、MPI_GATHERV604.3 MPI_PACK、UNPACK、BARRIER、WTIME624.3.1 MPI_PACK、MPI_UNPACK624.3.2 MPI_BARRIER、MPI_WTIME654.4 資料切割的并行程式 T4DCP67第五章 多維陣列的并行程式725.1 多維陣列的循序程式 T5SEQ735.2 多維陣列資料不切割的并行程式 T5CP765.3 多維陣列末維資料切割的并行程式 T

5、5DCP855.4 與二維切割有關的 MPI 副程式925.4.1 垂直座標圖示法則 (Cartesian Topology)925.4.2 界定二維切割的 MPI 副程式MPI_CART_CREATE、93MPI_CART_COORDS、MPI_CART_SHIFT935.4.3 定義固定間隔資料的 MPI 副程式96MPI_TYPE_VECTOR、MPI_TYPE_COMMIT965.5 多維陣列末二維切割的并行程式 T5_2D98第六章 MPI程式的效率提昇1126.1 Nonblocking資料傳送1136.2 資料傳送的合併1226.3 以邊界資料計算取代邊界資料交換1266.4輸出

6、入資料的安排1286.4.1 事先切割輸入資料1286.4.2 事後收集切割過的輸出資料131第七章 導出的資料類別1337.1導出的資料類別1347.2陣列的轉換1397.3兩方迴歸與管線法149第八章 多方依賴及SOR解法1558.1四方依賴及SOR解法1568.2黑白點間隔 SOR 解法1598.3斑馬線 SOR 解法1688.4八方依賴與四色點間隔SOR解法175第九章 有限元素法程式1839.1有限元素法的循序程式1849.2有限元素法的并行程式187附錄一 撰寫C語言的MPI程式197參考書目200Parallel Processing without Partition of 1

7、-D Arrays201Parallel Processing with Partition of 1-D Arrays202Parallel on the 2nd Dimension of 2-D Arrays without Partition203Parallel on the 2nd Dimension of 2-D Arrays with Partition204Partition on the 3rd dimension of 3-D Arrays205第一章 前言 本章将介绍 MPI 并行计算软体、国家高速网路与计算中心现有的并行计算环境、以及在各型机器上如何使用MPI。第一节简

8、单介绍 MPI 并行计算软体。第二节介绍国家高速网路与计算中心现有的并行计算环境。第三节介绍如何在 IBM 电脑系统上使用 MPI,包括路径的设定、并行程式的编译、及并行程式的执行等。第四节介绍如何在 PC cluster 上使用 MPI,包括路径的设定、并行程式的编译、及并行程式的执行等。1.1 MPI 并行计算软体 MPI (Message Passing Interface) 是第一个标准化的 Message Passing 并行语言。可以使用在 Fortran、C、C+ 等语言撰写的程式上。MPI并行程式可以在分散式记忆体并行系统上执行,也可以在共用记忆体并行系统上执行。目前系统厂商所

9、提供的 MPI 软体是属于 MPI1.2 版。它提供了一百多个副程式,让程式人员来选用。MPI 协会在 1998 年公布了 MPI 2.0 版的规格,数年之后就会有 MPI 2.0 版的软体可用了。日前美国的 Argonne National Lab 已经公布了 MPICH 1.2.0 版的整套软体,该版含有 MPI 2.0 版的部份功能。有兴趣的读者可以免费自网路下载该软体,其网址是 http:/www-unix.mcs.anl.gov/mpi/mpich也可以用 anonymous ftp 下载该软体,其网址是 ftp.mcs.anl.gov 其下目录 (directory) pub/mp

10、i 里档名 mpich-1.2.0.tar.Z 或 mpich-1.2.0.tar.gz,在该目录之下还有许多与 MPI 相关的资讯可供参考。1.2 国家高速网路与计算中心的并行计算环境 目前国家高速网路与计算中心的IBM SP2、IBM SP2 SMP、IBM p690、HP SPP2200、SGI Origin2000和Fujitsu VPP300等系统上均有该公司自备的 MPI 并行软体,PC cluster上是装用MPICH 公用并行软体,也都有能力执行并行程式。但是到目前为止,只有PC cluster、IBM SP2、IBM SP2 SMP和IBM p690设有一个CPU只执行一个程

11、式的并行环境,其他机器上则无此种设定。例如,若有一个用户要用四个CPU来执行其并行程式,他在IBM SP2上取得四个CPU之后,这四个CPU 就仅只执行这个并行程式直到它执行完毕为止,不会有其他程式进来跟他抢CPU时间。但他在其他机器 (如 HP SPP2000) 上取得四个CPU之后,如果所有使用者对CPU的需求数量超过该系统的CPU总数时,他所取得四个CPU之中的每一个CPU,都有可能要跟其他程式以分时方式 (time sharing) 共用一个CPU。 HP SPP2000和SGI ORIGIN2000为共用记忆体并行系统,这种电脑系统是16颗CPU共用一组记忆体。SP2 和VPP300

12、 是属于分散式记忆体并行系统,每一个CPU 备有它独用的记忆体。IBM SP2 SMP及IBM p690 是共用记忆体及分散式记忆体混合的并行系统,SP2 SMP每一个node 备有4颗CPU共用一组记忆体,目前备有42个node的SMP cluster。p690每一个node 备有32颗CPU共用一组记忆体,目前备有8个node的SMP cluster。SP2、SP2 SMP和p690 是采用该系统专属的工作排程软体 (job scheduler) LoadLeveler 来安排用户的批次工作(batch job)。使用者必须备妥 LoadLeveler的job command file,使

13、用llsubmit指令把该批次工作交给该系统来执行。SPP2000、ORIGIN2000 和 VPP300 是采用NQS (Network Queue System) 工作排程软体来安排用户的批次工作。使用者必须备妥NQS的job command file,使用qsub 指令把该批次工作交给各该系统来执行。PC cluster是采用DQS (Distributed Queue System) 工作排程软体来安排用户的批次工作,其使用方式类似NQS。1.3 在IBM 电脑系统上如何使用MPI 首先,C shell用户要在自己home directory的.cshrc 档里加入下列路径,这样才能够

14、抓得到include file (mpif.h、mpif90.h、mpi.h)、编译指令 (mpxlf、mpxlf90、mpcc)、MPI library、和 LoadLeveler 指令 (llsubmit、llq、llstatus、llcancel)。set lpath=(. /usr/lpp/ppe.poe/include /usr/lpp/ppe.poe/lib)set lpath=($lpath /usr/lpp/ppe.poe/bin /home/loadl/bin )set path=($path $lpath)加好上述路径之后,将.cshrc存档,再执行source .cshrc指令,即可进行并行程式的编译与执行。签退 (logout) 后再签到 (login) 之后就不必再执行source .cshrc指令。1.3.1 IBM 电脑系统的MPI Fortran程式编译指令 使用MPI的Fortran 77并行程式,其编译器 (compiler) 一般叫做mpif77,但是在IBM电脑系统上却叫做 mpxlf。mpxlf 常用的编译选项如下 :mpxlf -O3 -qarch=auto -qstrict -o file.x file.f其中选项 -O3 是作最高级的最佳化 (level 3 Optimization),可使程式的 计算速度加快数倍

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号