为了方便起见,让我们直接跳到一些统计数据:
Facebook 目前每月有15 亿活跃用户。
谷歌每年至少执行1 万亿次搜索。
Youtube 每分钟上传大约48 小时的视频。
有如此高的需求,我相信单个系统将无法处理。因此,需要分布式系统。
什么是分布式计算?
关于远程会诊,智慧医疗
分布式系统由一组自治计算机组成,它们通过网络和分布式中间件连接,使计算机能够协调其活动并共享系统资源,从而使用户将系统视为一个单一的、集成的计算设施。
让我们说一下 Google Web Server,从用户的角度来看,当他们提交搜索查询时,他们假设 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 的各个总和求和来计算 a 的最终总和。
因此,如果我们同时运行处理,我们能够将时间从x减少到 x/3。
什么是 MPI?
消息传递接口 (MPI)是为分布式和并行计算开发的标准化和可移植的消息传递系统。MPI 为并行硬件供应商提供了一组明确定义的基本例程,可以有效地实现这些例程。因此,硬件供应商可以在此标准低级例程集合的基础上构建,为他们的并行机提供的分布式内存通信环境创建高级例程。
MPI 为用户提供了从C、C++、Fortran、C#、Java 或 Python调用一组例程的灵活性。MPI 相对于旧的消息传递库的优势在于可移植性(因为几乎所有分布式内存架构都实现了 MPI)和速度(因为每个实现原则上都针对其运行的硬件进行了优化)
MPI 相对于其他消息传递框架的优势在于可移植性和速度。几乎所有分布式内存架构都实现了它,并且每个实现原则上都针对其运行的硬件进行了优化。
尽管有多种语言可供选择,但由于简单、易于编写代码,Python 是最受欢迎的一种。所以,现在,我们现在来看看如何在 ubuntu 14.10 上安装 MPI。
在 Ubuntu 上安装 MPI
1)第1步:在终端中复制以下代码行以安装NumPy,这是一个适用于python中所有科学计算的包。
须藤 apt-get 安装 python-numpy
2)成功完成上述步骤后,执行以下命令更新系统并安装pip包。
须藤 apt-get 更新
须藤 apt-get -y 安装 python-pip
3) 现在,我们将下载 MPI 最新版本的文档。
sudo apt-get install libcr-dev mpich2 mpich2-doc
4)输入命令使用pip for python下载MPI
须藤 pip 安装 mpi4py
现在 MPI 安装成功。
有时,由于python中缺少开发工具,因此在安装MPI后清除包时可能会弹出问题。您可以使用以下命令安装它们:
须藤 apt-get 安装 python-dev
Windows/MAC 上的 MPI
对于 Windows/MAC 用户,他们可以访问以下链接并下载 .zip 文件并解压缩并执行它:
Host List
hot news