OpenMPI 学习笔记(一)并行计算机和分布式计算

一、并行计算机和分布式计算

1. 共享内存

一个计算机;其所有进程共享一个内存。

利:简单,并行(比如OpenMP)

弊:进程数量及内存受限,无法扩展。

2. 分布内存

多台计算机经由网络相连。

每个节点的进程无法访问其他节点的内存。

利:易于扩展,加节点。

弊:需要将内存从一个节点转移到另一个节点;如果彼此输出的数据量大时,代价高;网络的代价超过复制内存的代价。

Note:

一个进程的不同线程可以访问同一个内存;

不同的进程永远不能访问同一个内存(即使是同一台主机上的不同进程);

因此我们也可以在同一台主机上的不同进程之间进行分布式计算。

典型的Cluster:

Ada

Turing

MPI: Message Passing Interface

定义进程之间交流规则,有多种语言可用:C, C++ (弃用的 MPI-3), Fortran,Java, Python. . .也可以。提供了一组用于通信和数据交换的功能。

使用MPI的代码的原理:

  1. 多个进程并行启动。
  2. 每个进程运行该程序。
  3. 该程序描述了每个过程的作用。
  4. 关注过程的同步以及它们之间的数据交换。

MPI消息由以下部分组成:

  1. 沟通器(本质上是一组过程)
  2. 发送者的标识符,
  3. 传输的数据类型,
  4. 它的长度,
  5. 数据本身,
  6. 接收者的标识符。

MPI应用领域:天气预报,加密技术,核爆炸建模,天体物理学,粒子动力学(交互作用计算),模式匹配(DNA比较,图像处理)。

可用资源:

开源实现

MPICH2 : http://www.mpich.org

OpenMPI : http://www.open-mpi.org

资料

http://www.open- mpi.org/doc/v1.10/ http://www.mpi- forum.org/docs/

机器

    http://top500.org/
    http://green500.org/

资源

    http://www.idris.fr/data/cours/parallel/mpi/IDRISMPI.pdf

 

原文地址:https://www.cnblogs.com/yanwenliqjl/p/8824326.html