zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    20191003 尚硅谷Spring Cloud教学视频
    20190928 On Java8 第二十三章 注解
    C# 输出结果有System.Byte[]
    linux 命令
    用go run命令启动main package中的多个文件
    Docker使用入门
    Go实现mqtt服务
    MongoDB的Go语言驱动注意点
    Go实现发送解析GET与POST请求
    用Go实现RabbitMQ消息收发
  • 原文地址:https://www.cnblogs.com/yanwenliqjl/p/8824326.html
Copyright © 2011-2022 走看看