untitled

Similar documents
投影片 1

epub83-1

Microsoft Word - 11.doc

PowerPoint 演示文稿

FY.DOC

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

ebook50-15

Microsoft PowerPoint - Tongji_MPI编程初步

Eclipse C C++, or

Parallel Programming with MPI

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

1

Microsoft PowerPoint - KN002.ppt

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

消息传递并行编程环境MPI.doc

C/C++ - 文件IO

第7章-并行计算.ppt

epub 61-2

untitled

C 1

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft Word - CIN-DLL.doc

陕西职业技术学院(用标志)

提问袁小兵:

Ø Ø Microsoft Project Ø Zou Zhige VLSI 2

导 生 和 被 辅 导 成 员 在 辅 导 过 程 中 的 一 些 不 足 与 可 取 点, 经 过 25 分 钟 的 讨 论, 各 小 组 派 代 表 阐 述 了 各 方 观 点 和 改 进 方 法 然 后, 为 了 改 善 导 生 辅 导 方 法, 让 辅 导 变 得 更 有 效 率, 各 院

mvc

目 录 软 件 概 述 软 件 用 途 软 件 运 行 系 统 配 置... 3 使 用 入 门 软 件 登 录 与 退 出 页 面 介 绍... 6 组 别 账 号 编 辑 组 别 编 辑.


概述

EK-STM32F

ebook140-8

Chapter 2

untitled

untitled


CC213

ICD ICD ICD ICD ICD

Linux Linux Linux

ebook140-9

CadCaeCamPlm VTK rinqar VTK C++ VTK VTK VTK cmake VTK VTK VTK vtk VTK Download vtk

IP505SM_manual_cn.doc

C6_ppt.PDF

untitled

68369 (ppp quickstart guide)

投影片 1

3.1 num = 3 ch = 'C' 2

PowerPoint 演示文稿

简 介 本 白 皮 书 高 度 概 述 了 支 持 移 动 互 联 网 设 备 (Mobile Internet Device) 的 Intel C++ Software Development Tool Suite for Linux* OS, 目 标 读 者 主 要 是 技 术 决 策 制 订

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

Department of Science and Engineering Computing School of Mathematics School Peking University October 9, 2007

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft PowerPoint - OPVB1基本VB.ppt

C语言的应用.PDF

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

华恒家庭网关方案

RUN_PC連載_10_.doc

Parallel Programing with MPI Binding with Fortran, C,C++

RUN_PC連載_12_.doc

保母人員丙級應檢資料第二部份 doc

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

Parallel Programming with MPI

Contact base Smart Card intercept tools ---

nooog

PTS7_Manual.PDF

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

Abstract arm linux tool-chain root NET-Start! 2

Microsoft Word - FPKLSC_21.docx

02

CH01.indd

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南


untitled

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Slide 1

untitled

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

Microsoft PowerPoint - CEM-07-Parallel.pptx

ArcIMS ArcIMS Shape ArcIMS Monitor ArcIMS Tasker ArcIMS Windows NT UNIX ArcIMS ArcIMS MapService ArcIMS ArcIMS ArcIMS ArcIMS JAVA Windows NT UNIX ArcI

Windows 2000 Server for T100

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 实用案例.doc

Microsoft Word - PS2_linux_guide_cn.doc

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Simulator By SunLingxi 2003

并行计算

ARM JTAG实时仿真器安装使用指南

MPI实验.doc

模板

ZENworks 11 SP4

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

第3章.doc


untitled

Sophos Central 快速安裝手冊

PowerPoint 演示文稿

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

目錄... ivv...vii Chapter DETECT

Transcription:

MPICH anzhulin@sohu.com 1 MPICH for Microsoft Windows 1.1 MPICH for Microsoft Windows Windows NT4/2000/XP Professional Server Windows 95/98 TCP/IP MPICH MS VC++ 6.x MS VC++.NET Compaq Visual Fortran 6.x Intel Fortran gcc g77 MPICH 1.2 MPICH http://www-unix.mcs.anl.gov/mpi/mpich/download.html Windows mpich.nt.1.2.5.exe http://www-unix.mcs.anl.gov/~ashton/mpich.nt/ 1.3 MPICH mpd.exe 1.4 MPICH MPICH MPICH mpich\mpd\bin\mpiregister.exe Page 1 of 15

MPIRegister MPICH MPICH -> ->MPICH->mpd-> MPICH Configuration tool MPICH Configuration tool Select 1 MPICH Apply 2 OK 3 1.5 MPICH MPICH C Fortran MPI+C MPI+Fortran Visual C++ 6.0 Compaq Visual Fortran 6.5 Visual Fortran 5.0 1.5.1 Visual C++ 6.0 Visual C++ 6 MPI+C Page 2 of 15

1 Visual C++ 6 Develop Studio 2 Win32 Console Application 3 Alt+F7 Visual C++ 2 4 C/C++ Win32 Debug Code Generation Debug Multithreaded Page 3 of 15

5 C/C++ All Configurations Preprocessor Additional include directories MPICH Visual C++ 3 6 All Configurations Input Additional library path MPICH Visual C++ 4 Page 4 of 15

7 All Configurations General Object/library modules ws2_32.lib OK Common Options ws2_32.lib Visual C++ 5 8 Win32 Debug General Object/library modules mpichd.lib OK Project Options mpichd.lib Visual C++ 6 Page 5 of 15

9 Win32 Release General Object/library modules mpich.lib OK Project Options mpich.lib Visual C++ 7 1.5.2 Compaq Visual Fortran 6.5 Compaq Visual Fortran 6.5 Develop Studio Visual C++ 6.0 1.5.3 Visual Fortran 5.0 MPICH Visual Fortran 5.0 Visual Fortran 5.0 Link.exe Microsoft Develop Studio 97 5.00.7022 Visual Fortran 5.0 MPI --------------------Configuration: testran - Win32 Debug-------------------- Compiling Fortran... C:\Program Files\DevStudio\MyProjects\testran\test.for Linking.....\..\..\..\MPICH\SDK\Lib\mpich.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x3ea20b5c Error executing link.exe. testran.exe - 1 error(s), 0 warning(s) Link.exe Visual C++ 6.0 Link.exe \DevStudio\VC\BIN Link.exe Visual C++ 6.0 Microsoft Windows DDK Microsoft MASM Link.exe Link.exe Visual Fortran 5.0 MPI+Fortran Visual Fortran 5.0 Develop Studio Visual C++ 6.0 Page 6 of 15

Fortran MPI MPICH Project->Add to project->files MPI Visual Fortran 5.0 1.6 MPICH\SDK\Examples\nt\Basic π VC MPICH MPIRun -> ->MPICH->mpd->MPIRun Page 7 of 15

MPI.. Run 2 MPI MPI MPI MPI C Fortran 2.1 MPI MP I int MPI_Init(int *argc, char ***argv) 2.2 MPI MPI int MPI_Finalize(void) 2.3 n 0 n 1 int MPI_Comm_rank(MPI_Comm comm, int *rank) [ IN Comm ] [ OUT rank ] COMM 2.4 int MPI_Comm_size(MPI_Comm comm, int *SIZE) [ IN comm ] [ OUT size ] COMM Page 8 of 15

2.5 buf count datatype dest int MPI_Send(void* buf, int count, MPI_Datatype Datatype, int dest, int tag, MPI_Comm comm) [ IN buf ] [ IN count ] [ IN datatype ] [ IN dest ] [ IN tag ] [ IN comm ] 2.6 source count datatype buf int MPI_Recv(void* buf, int count, MPI_Datatpye datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) [ OUT buf ] [ IN count ] [ IN datatype ] [ IN source ] [ IN tag ] [ IN comm ] [ OUT status ] 2.7 buf count datatype root int MPI_Bcast(void* buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm) [ IN/OUT buf ] [ IN count ] Page 9 of 15

[ IN datatype ] [ IN root ] [ IN comm ] 2.8 int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype Recvtype, int root, int comm) [ IN sendbuf ] [ IN sendcount ] [ IN sendtype ] [ OUT recvbuf ] [ IN recvcount ] [ IN recvtype ] [ IN root ] [ IN comm ] 3 MPI MPI MPI Data 3.1 1 7 ArraySize[ 0] = 7 3 size = 3 Page 10 of 15

AverageLin enumber = ArraySize[0] / size HeavyProcessorNumber = ArraySize[0] mod size AverageLineNumber + 1 rank AverageLineNumber + 1 MyLineNumber = AverageLineNumber rank < HeavyProcessorNumber rank HeavyProcessorNumber MPI SendArray Data MPI Page 11 of 15

0 0 3.2 3.3 #include"mpi.h" #include<iostream.h> #include<fstream.h> void main(int argc,char *argv[]) { // MPI int rank,size; MPI_Status Status; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); // const int MAXX=8,MAXY=3; const int MAXPROCESSOR=64; float Data[MAXX][MAXX]; int ArraySize[2]; int i,j,k; // if (rank == 0) { ifstream in("input.txt"); in>>arraysize[0]>>arraysize[1]; } for (i=1; i<=arraysize[0]; i++ ) for (j=1; j<=arraysize[1]; j++) in>>data[i][j]; // Page 12 of 15

MPI_Bcast(ArraySize,2,MPI_INT,0,MPI_COMM_WORLD); // int AverageLineNumber,HeavyProcessorNumber,MyLineNumber; int CurrentLine,StartLine,SendSize; float SendArray[MAXX*MAXY]; // AverageLineNumber=ArraySize[0] / size; HeavyProcessorNumber=ArraySize[0] % size; if (rank < HeavyProcessorNumber) MyLineNumber=AverageLineNumber+1; else MyLineNumber=AverageLineNumber; // 0, if (rank == 0) { CurrentLine=ArraySize[0]; for (i=size-1; i >= 0; i--) { SendSize=0; if (i < HeavyProcessorNumber) StartLine=CurrentLine-AverageLineNumber; else StartLine=CurrentLine-AverageLineNumber+1; for (j=startline; j <= CurrentLine; j++) for (k=1; k <= ArraySize[1]; k++) SendArray[SendSize++]=Data[j][k]; if (i!= 0) MPI_Send(SendArray,SendSize, MPI_FLOAT,i,10,MPI_COMM_WORLD); CurrentLine=StartLine-1; } } // 0 else MPI_Recv(SendArray,MyLineNumber*ArraySize[1], MPI_FLOAT,0,10,MPI_COMM_WORLD,&Status); // float *Sum=new(float); //, *Sum=0; for (i=0; i < MyLineNumber*ArraySize[1]; i++) *Sum+=SendArray[i]; float AllSum[MAXPROCESSOR]; // 0 MPI_Gather(Sum,1,MPI_FLOAT,AllSum,1,MPI_FLOAT,0,MPI_COMM_WORLD); // 0,, if (rank == 0) { Page 13 of 15

} *Sum=0; for (i=0; i < size; i++) *Sum+=AllSum[i]; cout<<"the Sum of the Array is:"<<*sum<<endl; //MPI MPI_Finalize(); } 3.4 MPI MPI 4 FAQ Q MPICH Windows Linux A MPI Windows Linux MPICH Socket Q Unhandled exception caught in RedirectIOThread A MPIRun 0 Q MPI_RECV : Message truncated A MPI_RECV MPI_SEND MPI_RECV Q Error 64 GetQueuedCompletenessStatus failed A MPI_RECV MPI_SEND MPI_RECV MPI_SEND Q Failed to launch the root process: c:\cpi.exe LaunchProcess Failed, A MPIRegister Page 14 of 15

Page 15 of 15