MPI——分布式计算变得简单

null

根本问题

为了让事情变得更简单,让我们直接跳到一些统计数据:

  • Facebook目前已经 15亿 活跃的每月用户。
  • 谷歌至少表现出色 1兆 每年搜索一次。
  • 关于 48小时 视频每分钟都会上传到Youtube上。

由于需求如此之高,我相信单一的系统将无法处理这些处理。因此,需要分布式系统。

什么是分布式计算?

分布式系统由一组自主计算机组成,通过网络和分布式中间件连接,使计算机能够协调其活动并共享系统资源,因此用户将系统视为一个单一的集成计算设施。

让我们说一下Google Web服务器,从用户的角度来看,当他们提交搜索的查询时,他们假设Google Web服务器是一个单一的系统。然而,在幕后,谷歌已经建立了许多服务器,这些服务器是分布式的(从地理和计算上),可以在几秒钟内给我们结果。

分布式计算的优势?

  • 高效
  • 可扩展性
  • 对失败的容忍度较低
  • 高可用性

让我们来看一个例子,通过使用分布式计算节省计算时间。

例如。 如果我们有一个数组, A. ,有 N 元素,a=[1,2,3,4,5,6]

我们要求数组中所有元素的和并输出它。现在,让我们假设有10个 20 数组中的元素以及计算 总和是x。

如果我们现在将数组分成3部分, a1 , a2 a3 哪里

a1={模(a中的元素)==0的元素集}

a2={模(a中的元素)==1}的元素集

a3={模(a中的元素)==2}的元素集

我们将把这3个数组发送到3个不同的进程,以计算这些进程的总和。平均而言,假设每个数组都有 n/3要素 因此,每个过程所需的时间也将减少到 x/3 。由于这些进程将并行运行,因此将同时计算三个“x/3”,并将每个数组的总和返回给主进程。最后,我们可以通过 将数组的单个和相加:a1、a2和a3 .

因此,我们能够减少 x到x/3 ,如果我们同时运行已处理的。

什么是MPI?

消息传递接口(MPI) 是一种标准化的便携设备 消息传递 为分布式和并行计算开发的系统。MPI为并行硬件供应商提供了一组明确定义的、可以高效实现的基本例程。因此,硬件供应商可以在这些标准低级例程的基础上,为其并行机提供的分布式内存通信环境创建高级例程。

MPI为用户提供了从 C、C++、Fortran、C、java或Python。 与旧的消息传递库相比,MPI的优点是可移植性(因为MPI已经在几乎所有分布式内存体系结构中实现)和速度(因为每个实现原则上都针对其运行的硬件进行了优化)

与其他消息传递框架相比,MPI的优点是可移植性和速度。它已经在几乎所有分布式内存体系结构中实现,每个实现原则上都针对其运行的硬件进行了优化。

尽管有多种语言可供选择,但Python因其简单、易于编写代码而成为首选。现在,我们来看看如何在ubuntu 14.10上安装MPI。

在Ubuntu上安装MPI

1) 第一步:在终端中复制以下代码,安装NumPy,这是一个用python进行所有科学计算的软件包。

sudo apt-get install python-numpy

2) 成功完成上述步骤后,执行以下命令以更新系统并安装pip包。

                           sudo apt-get update
                           sudo apt-get -y install python-pip

3) 现在,我们将下载最新版本MPI的文档。

sudo apt-get install libcr-dev mpich2 mpich2-doc

4) 输入使用pip for python下载MPI的命令

sudo pip install mpi4py

MPI现在已成功安装。

有时,由于python中缺少开发工具,在安装MPI后清理软件包时可能会出现问题。Yo可以使用以下命令安装它们:

sudo apt-get install python-dev

Windows/MAC上的MPI

对于Windows/MAC用户,他们可以访问以下链接并下载。压缩文件并解压缩并执行:

MPI框架

教程

安装之后,您可以参考以下文档,了解如何使用python使用MPI。

https://mpi4py.scipy.org/docs/usrman/tutorial.html

工具书类

https://www.open-mpi.org/

https://en.wikipedia.org/wiki/Message_Passing_Interface

关于作者:阿努拉格·米什拉(Anurag Mishra)目前是理工科三年级学生,是一名狂热的软件追随者和一名完整的网络开发人员。他对网络开发、NLP和网络非常感兴趣。

如果你也想在这里展示你的博客,请参见 吉微博 在Geeksforgek上写客博。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享