1.下载安装包mpich2-1.0.8p1.tar.gz,解压。

2.进入目录mpich2-1.0.8p1, cd mpich2-1.0.8p1

3.配置。 ./configure

4.编译。make

5.安装。sudo make install

6.安装完成,在用户主目录下新建一个文件.mpd.conf,然后加入一句SECRETWORD=pkuwwt,等号后面的字符串任意寫就好了。这是为运行mpd服务的,可能与安全性有关,其权限应该设置成-rw-------,即600,命令是chmod 600 .mpd.conf。实际上,如果不进行这一步,运行mpd的时候也会提示你的。

下面测试一下,是否安装成功,运行这样几个命令,mpd,mpirun,mpicc...,如果没有特别的错误,那就是安装成功了。

7.现在讲一下mpd。mpd是mpi的后台程序,因此运行的时候要用mpd &,运行一次就夠了。这是运行其它mpi命令的前提。实际上,对于个人电脑来说,仍然属于串行计算机,但mpich会模拟一个并行环境,即用多进程分时来模拟并行。 8.现在可以尝试编写第一个mpi程序了。將下面的代码保存到helloWorld.c中:

/*第一个mpich程序“HELLO WORLD" */

#include "mpi.h"

#include

#include

int main(int argc,char* argv[]){

int myid, numprocs;

int namelen;

char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init(&argc,&argv);/* 初始化并行环境 */

MPI_Comm_rank(MPI_COMM_WORLD,&myid);/* 当前进程的ID号 */

MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/* 进程的总數 */

MPI_Get_processor_name(processor_name,&namelen);/* 当前处理器的名称 */

fprintf(stderr,"Hello World! Process %d of %d on %s\n",

myid, numprocs, processor_name);

MPI_Finalize();/* 结束并行环境 */

return 0;

}

接下来编译并运行:

mpd &

mpicc helloWorld.c -o helloWorld

mpirun -np 4 ./helloWorld

其中,mpd是前面讲过的后台程序,如果启动过就不用再启动了。mpicc专用来编译c程序,其它有对应的mpicxx,mpif77,mpif90。mpirun是运行命令,-np表示有几个处理器,也就是说进程數需要提前指定。 在程序中, 1)頭文件mpi.h是针对c语言的,fortran是mpif.h。 2)MPI_Init和MPI_Finalize是必须调用的兩个函数,任何其它mpi函数都必须在兩者中间,有一个例外,是查询当前是否已经进入并行状态MPI_Initialized。最好不要在MPI_Finalize后面寫什么代码,可能会出现意想不到的错误。 3)在一个程序中MPI_Init和MPI_Finaiize这兩个函数只需要在主程序中调用一次,中间的子程序可以调用其它mpi函数而不需要初始化。 4)C语言中的命名规则:常數全大寫,MPI和后面的第一个字母大写,其余小寫。

linux中mpich的运行线程,Linux下MPICH的安装与使用相关推荐

  1. linux中的进程与线程,linux中进程和线程的区别是什么

    linux中进程和线程的区别是:1.一个程序至少有一个进程,一个进程至少有一个线程:2.线程的划分尺度小于进程:3.进程在执行过程中拥有独立的内存单元,而多个线程共享内存. 进程与线程的定义 (推荐学 ...

  2. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国

    Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...

  3. 如何查看 Linux 中所有正在运行的服务

    有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...

  4. linux oracle查看服务,技术|如何查看 Linux 中所有正在运行的服务

    有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...

  5. Linux中vue后台运行

    Linux中vue后台运行 只会简单的尝试 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设 ...

  6. 在Linux 中编写并运行C语言

    在Linux 中编写并运行C语言 流程 后续 流程 首先我们创建一个C语言文件 vim 1.c 我们进行相关程序的编写(我们以简单的输入输出为例) #include <stdio.h> i ...

  7. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  8. linux中_Linux基础知识(Linux系统、Linux中的链表)

    Linux系统简介 Linux系统的结构及特点 Linux系统的结构图如下图所示: 从上图可以看出,Linux是一个典型的宏内核(一体化内核)结构.硬件系统上面时硬件抽象层,在硬件抽象层上面时内核服务 ...

  9. Linux中使用Msmtp+mutt+shell自动发邮件程序安装说明

    Linux中使用Msmtp+mutt+shell自动发邮件程序安装说明 ------by liyoujia 环境: 需要用到mutt 和 msmtp 这两款软件 Mutt:linux初始化安装的时候自 ...

最新文章

  1. 深度学习1:生成模型的输入数据集和可视化
  2. 看懂这十步,8岁的小朋友都能理解深度学习
  3. 关键词词云怎么做_制作CVPR 热词云(并爬取pdf地址 名称)
  4. phpMyAdmin4.4.10安装
  5. 模型预测控制c语言程序_搭建第一个程序控制电路LED灯,体会C语言的魅力
  6. Spring MVC 实践 - Base
  7. POCO C++库导游【转】
  8. fatal: unable to access ‘https://XXXXX‘: : OpenSSL SSL_read: Connection was reset, errno 10054……
  9. 【Hadoop Summit Tokyo 2016】欢迎来到Hadoop的青春时代
  10. 天梯赛座位分布-一点都不垃圾的模拟题,代码长度超过100行的都是傻子
  11. iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)
  12. 关于opengl 编程指南中使用几何着色器渲染毛发的分析
  13. Oauth2的异常处理,统一封装
  14. MAG3110(可替代hmc5883l的磁力计) stm32f1xx调试心得附源代码(以后可能会陆续更新四轴相关的传感器,欢迎关注)
  15. PhD Debate-11 预告 | 回顾与展望神经网络的后门攻击与防御
  16. Spanning Tree协议安全攻防
  17. 华南产业集团发力数字经济,城链科技发布会成功召开
  18. Python爬虫之Requests模块巩固深入案例
  19. flutter 跑马灯+渐变透明度背景
  20. STM32 标准外设库(Standard Peripheral Library)下载

热门文章

  1. android主流UI布局
  2. mysql 远程超级用户,MySQL中,预设的、拥有最高权限超级用户的用户名为( )
  3. 『phphot』【SD2.0大会】毛新生:MVC Is Dead?
  4. 教育OA如何选型?教育OA系统选型必看技巧
  5. ucinet可视化网络关系图_6款社会网络分析软件,你pick哪个?
  6. 128*160屏幕的手机(如5200等)专用的QQ2007 下载地址
  7. UICC 之 USIM 详解全系列——UICC安全相关内容
  8. web服务器的网站选项,Web服务器配置方法(2)
  9. 菜鸟站长之家给大家讲讲WordPress百度云cdn加速教程方法,并且免费版支持 HTTPS了
  10. 数字电子技术 实验二