2012-03-27 112 views
8

我希望在Windows Azure上运行C语言(用于Linux)的现有MPI科学应用程序。那可能吗?在Windows Azure上部署MPI应用程序

  1. 如果可能,如何去部署应用程序?

  2. 是否有必要将其转换为Microsoft MPI?

  3. 我需要为此购买特定种类的Azure服务吗?

  4. 是否有必要编写一个托管包装,使其工作?

任何建议/意见/参考将是非常有益的。

P.S我是Azure的新手。

+1

MPI是一个规范,而不是一个库。所以,虽然我不是MPI专家,但我相信您不应该将应用程序转换为Microsoft MPI,因为Microsoft和Linux MPI库遵循相同的规范。 – 2012-03-28 00:18:04

+0

我使用win7运行我的mpi代码,因为我使用的是linux(ubuntu distribution),我看到的唯一区别就是我在这些操作系统上安装mpi库的方式。 – peaceman 2012-03-30 21:43:45

回答

5

所以你不必做任何特别的事情来在Azure中运行MPI。请注意,Azure节点(与Amazon的集群计算实例不同)并不是真正为此设置的;你不一定有一个高速网络,并且这些节点不一定是网络邻近的。因此,紧密耦合的代码可能无法很好地工作,而很多人使用亚马逊或其他服务成功完成这类工作。

无论如何,HPC服务器附带的"Microsoft" MPI只是一个重新标记,可能稍微调整了MPICH2;所以这是一个标准的MPI,应该不会造成任何问题。任何符合MPI标准的MPI程序都应该没问题。对于运行单个MPI作业而言,并不比在少数(例如)桌面上首次运行MPI作业更困难;您必须确保您的hostfile设置正确,并且MPI已设置为与适当的IP块进行通信。在Technet上,他们有一个running the linpack benchmark on Azure nodes的示例(包括确定Azure workers are running HPC server所需的链接)。他们跳过了几个步骤,因为linpack是一个可以下载的预构建二进制文件,但使用MPI编译非常简单。对于部署一个应用程序,以便您可以定期运行它(或让其他人运行它),我会推迟其他人关于如何最好地做到这一点。

3

微软即将推出支持Linux VM's to be hosted in Azure。所以你可以设想建立一个Linux虚拟机,安装和配置你的MPI应用程序,并将它推入Azure。

但是,您应该首先考虑您想实现的目标。如果您的目标是利用Azure的某些功能(例如,多实例可用性&比例),那么您需要使用一些附加代码来扩充您的应用。由于采用了开源社区和微软的开放源代码迅速增长的支持,你可以建立在额外的功能,例如:

  • Node.js在Linux或Windows
  • PerlPythonRuby和/或运行PHP都在Linux或Windows上运行
  • 在Windows辅助角色或在Mono在你的Linux VM

运行如果你最感兴趣的是羚牛

  • .NET代码g Azure服务配置的优势,动态添加/删除工作者角色,使用Azure存储等等,那么你很幸运 - 上述所有内容都可以通过HTML/JSON REST接口进行控制,这意味着任何可以谈论HTTP的东西都可以(使用正确的证书)配置,管理,监视您的服务并将数据存储到存储或从存储中检索数据。

    HTH。

  • 0

    我知道这个帖子太老了!但在任何情况下,仍然结束了这里:

    Azure中已经特别高性能的情况下,支持的情况下实现高吞吐连接被同时延长。

    所以,如果你看看到A8 and A9 instances,他们有,除了默认的10Gbps网络接口,MPI应用而优化的附加网络接口。

    32Gbps的后端,能够RDMA:启用低延迟,高通量单个云 服务或可用性集合内的实例之间 应用的通信。仅保留用于MPI通信。

    还有一些documentation的设置。

    相关问题