MPICH——Visual Fortran

news/2024/5/18 13:31:08 标签: fortran, microsoft, bbs, application, 编译器, exe

BBS 水木清华站∶精华区
发信人: Gooogle (【光明使者】Nature Boy), 信区: NumComp       
标  题: Re: MPICH问题求助 MPI -np n MPIProgram.exe (转载)
发信站: BBS 水木清华站 (Thu Jul 18 22:45:51 2002)
 
 
MPICH安装
 
这里仅针对使用Digital Visual Fortran 6.x编译器的情况对MPICH安装程序所附
的说明文档作补充说明。对于Visual C++ 6.0编译器的情况仅提供参考。 
    1. 安装 
    运行Setup.exe安装时,建议完全安装。Setup.exe运行完毕后,进行下面操作
: 
    (1) 将{MPICH_root}/Sdk/Include和{MPICH_root}/Sdk/Lib目录下的所有文件
分别拷贝到{Microsoft Visual Studio}/Df98/Include和{Microsoft Visual 
Studio}/Df98/Lib目录下; 
*   (2) 将{MPICH_root}/RemoteShell/Bin加入到系统的PATH环境变量中。 
    
    2. 编译、链接MPI应用程序 
    为了方便使用Visual Fortran 6.x编译器进行并行程序编译链接,在第一次使
用其编译程序前,可以增加一个Fortran项目环境: 
    (1) 点击菜单File->New...; 
    (2) 在Projects标签中选择Fortran Console Application,然后再右侧输入
框中填入新项目的名称,点击OK; 
    (3) 在接下来的对话框中选择An empty project,点击Finish; 
    (4) 在接下来的对话框中直接点击OK; 
    (5) 点击菜单Project->Settings...,进行下面操作: 
        I)   在setting for中,选择Win32 debug; 
        II)  选择Fortran标签,进行下面操作: 
             i)   在Category一栏中选择“External Procedures”; 
             ii)  在“Argument Passing”一栏中选择“C, By Reference”;
             iii) 在“String Length Argument”一栏中选择“After All 
Args”; 
  
        III) 选择Link标签,进行下面操作: 
             i)  在Category一栏中选择“General”; 
             ii) 在Object/library modules中,添加ws2_32.lib、mpichd.lib
、pmpichd.lib、romiod.lib,各库文件间用空格分开; 
        IV)  在setting for中,选择Win32 release; 
        V)   重复II)、III)的操作,只是库文件变为:ws2_32.lib、mpich.lib
、pmpich.lib、romio.lib; 
        VI)  点击OK。 
    (6) 点击菜单File->Save Fortran Environment; 
    (7) 点击Save Environment按钮,即保存一个新的环境(可以给一个名称);
 
    (8) 关闭这个项目文件,并删除这个项目文件。 
    这样就可以在进行并行程序设计的时候,较为方便地使用这一编译环境,举例
如下: 
    (1) 点击菜单File->New...; 
    (2) 在Projects标签中选择Fortran Console Application,然后再右侧输入
框中给出项目的名称,点击OK; 
    (3) 在接下来的对话框中选择An empty project,并选中复选框“There 
are saved Fortran Console environments. Would you like to consider applying 
options from one of them?”,点击Finish; 
    (4) 在对话框中List of Console Environment中,选择前面准备好的环境名
称,点击Apply按钮,并确认; 
    (5) 在接下来的对话框中直接点击OK; 
    在这个项目中就可以进行并行程序的开发。特别指出的是,在源程序中必须添
加语句“include 'mpif.h'”。 
    3. 运行MPI应用程序 
    对于已经编译好的MPI程序,若只启动一个进程,则可以直接键入程序名,回
车,即可运行。若启动多个进程则需要执行mpirun。具体用法可由命令提示符下直接执行
该命令获得。 
    对于只准备在单机上,进行调试的用户,相对容易。只需要键入mpirun -np 
#numproc <程序名>,或者键入mpirun -localonly #numproc <程序名>,即可。(
#numproc指的是准备启动的进程数) 
    对于在多台机器上进行计算,需要进行下面的操作来建立环境:(这里假设用
户没有安装NFS) 
    (1) 确认在每台机器上都安装了这个程序包,最少是安装了远程调用的程序和
必须得动态库。 
    (2) 确认在每台机器上都启动了RemoteShellServer。可以通过控制面板->服
务,来检查,推荐将这个服务设为自动,可以减少以后的维护。 
    (3) 运行程序。这里分几种情况逐一说明。 
        I)  用mpirun -np #numproc <程序名> 的形式在多台机器上启动,方法
如下: 
(这一方法只适合启动SPMD程序,并且可执行程序应在各台机器上放置在相同的目
录结构中) 
            i)  启动mpiconfig,选择准备运行的机器,并点击setup,再点击
OK按钮,结束配置。(注:选中机器后,必须按setup,才可以完成配置,否则在
后面的运行中会出现奇怪的错误) 
            ii) 键入mpirun -np #numproc <程序名> 即可启动程序,当
#numproc大于配置的机器数时,系统可以自动在机器列表中循环利用。 
        II) 用配置文件的方式在多台机器上启动,方法如下: 
            i)  编写纯文本的配置文件,格式如下: 
exe <可执行文件的全路径及名称> 
[可选参数] 
hosts 
<主机名1> #n1 [可执行文件的全路径及名称] 
<主机名2> #n2 [可执行文件的全路径及名称] 
<主机名3> #n3 [可执行文件的全路径及名称] 
... 
其中#n1,n2,n3...表示在对应机器上启动的进程数,每台主机上的进程数可以不同
; 
    若主机后的[可执行文件的全路径及名称]不填,则默认使用exe那一行所指定
的文件; 
    若每台主机都独立的列出[可执行文件的全路径及名称],则exe那一行的内容
也可空白; 
    若启动的是SPMD程序,每个主机所指向的必须是同一文件,或其复制文件; 
    若启动的是MPMD程序,给不同的机器上指定其上需要运行的程序; 
    同一台主机可以占用多行,每行给定不同或相同的启动进程数和[可执行文件
的全路径及名称]; 
    全路径名包括两种,一种是以驱动器符号开始的,如:d:/temp/mpiprogram.
exe,另一种是以机器名为起始的,如://host1/share/temp/mpiprogram.exe; 
    每个[可执行文件的全路径及名称]都是以相应的主机为标准。 
            ii) 启动程序,这里仍然有两种情况: 
                a)  如果每台机器运行所需要的可执行文件都在其本地,则可以
简单 
的使用 mpirun <配置文件> 的形式启动; 
                b)  如果在配置文件中包含的主机中,存在一台主机的所需的可
执行文件在其远程,则需要使用 mpirun <配置文件> -logon 来启动,这时会要求
输入一个帐号和密码,请输入一个已经存在的域用户名和其对应的密码即可。
(与每台机器登陆的帐号无关,不要使用administrator帐号) 
    特别需要指出下面几点: 
    (1) 推荐用mpirun -localonly #numproc <程序名> 的方式在单机上启动多个
进程,这样可以比较少的更改mpiconfig。 
    (2) 推荐用配置文件的形式在多台机器上运行,这样也可以比较少的更改
mpiconfig; 
    (3) 也可以使用配置文件的形式在单台机器上运行程序; 
    (4) 无论启动几个进程,在本地只有一个窗口,而远程主机上没有任何窗口启
动,若启动任务管理器,可以看到启动的程序在运行,并且优先级为低。
 
 
 
 
【 在 youthforever (youthforever) 的大作中提到: 】
∶ 【 以下文字转载自 DOC 讨论区 】
∶ 发信人: youthforever (youthforever), 信区: DOC       
∶ 标  题: MPICH问题求助 MPI -np n MPIProgram.exe
∶ 发信站: BBS 水木清华站 (Thu Jul 18 21:44:24 2002)
∶ mpirun -np n MPIProgram.exe  在自己的机器上运行正确,但是两台以上机器上运行时
∶ 提示unable to connect to ××× (机器名):error 无法向注册表写入项
∶ 的错误,请问MPI服务器需要怎么设置? thanks。
 
 
--
那就好好签吧!
那就好好过吧!
 
 
※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 211.68.30.252]
上一篇 返回上一页 回到目录 回到页首 下一篇
BBS 水木清华站∶精华区


http://www.niftyadmin.cn/n/1374036.html

相关文章

leetcode 136 只出现一次的数字

题目: 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&#xff1f; 示例 1: 输入: [2,2,1] 输出: 1示例 2…

egg(25)--mongoose预定义模式修饰符 Getters与 Setters修饰符

预定义模式修饰符 news.js给title增加一个trim&#xff0c;去掉文字左右空格的内部修饰符var mongoose require(./db.js); var NewsSchema mongoose.Schema({title:{type:String,trim:true},content:String })//定义model操作数据库 // var UserModel mongoose.model(User,U…

Win11+RTX3060配置pytorch环境(一些踩坑记录)

30系显卡目前只支持cuda11以上的版本&#xff0c;如果装的版本过低会导致Pytorch无法使用GPU加速。装错了就得卸载重装一遍。 目前我装成功的环境版本是&#xff1a; CUDA Toolkit 11.1.1​cuDNN v8.1.1 (Feburary 26th, 2021), for CUDA 11.0,11.1 and 11.2pytorch版本1.8.0 …

Fortran 95 固定过程

FORTRAN 95把固有过程作为标准来提出&#xff0c;就意味着任何的FORTRAN 95的编译器实现版本&#xff0c;都必须能够提供它们&#xff1a;115个固有过程&#xff0c;其中包括109个固有函数和6个固有子例行程序。当然不排除很多的编译器还提供额外的固有过程。表14-1 种过程的过…

Java 实现的24点牌

漫长的假期对于我来说总是枯燥无味的&#xff0c;闲来无聊便和同学玩起童年时经常玩的二十四点牌游戏来。此游戏说来简单&#xff0c;就是利用加减乘除以及括号将给出的四张牌组成一个值为24的表达式。但是其中却不乏一些有趣的题目&#xff0c;这不&#xff0c;我们刚玩了一会…

leetcode 155 最小栈

题目&#xff1a; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶…

Linux网络配置进程管理

原理图 查看ip和网关修改ip 查看网关 Linux网络环境配置 1.自动获取缺点&#xff1a;每次获取的ip地址可能不同2.指定固定的IP地址说明直接修改配置文件来指定IP,并可以连接到外网(程序员推荐)&#xff0c;编辑 vi/etc/sysconfig/network-scripts/ifcfg-eth0要求&#xff1a;将…

Java程序的加密和反加密

发信人: ttlink (Anakin Skywalker), 信区: Java 标 题: Java程序的加密和反加密 发信站: 日月光华…