我希望在Windows Azure上运行用C编写的用于Linux的现有MPI科学应用程序。这可能吗?
如果可能,如何部署应用程序?
是否有必要将其转换为Microsoft MPI?
我需要为此购买特定类型的Azure服务吗?
是否有必要编写托管包装器才能使其正常工作?
任何建议/观点/参考都会非常有帮助。
P.S我是Azure的新手。
答案 0 :(得分:5)
因此,您无需执行任何太特殊的操作即可在Azure中运行MPI。请注意,Azure节点(与亚马逊的集群计算实例不同)并未真正为此设置;您不一定拥有高速网络,并且节点不一定在网络上彼此靠近。因此,紧密耦合的代码可能不能很好地工作,而很多人成功地使用亚马逊或其他服务进行这类工作。
无论如何,HPC Server附带的"Microsoft" MPI只是一个重新标记,可能稍微调整MPICH2;所以这是一个标准的MPI,这应该没有问题。任何符合MPI标准的MPI程序都应该没问题。
至于运行单个MPI作业,这并不比在少数(比如)台式机上第一次运行MPI作业更难;您必须确保正确设置了主机文件,并且MPI已设置为与相应的IP块通信。在Technet上,他们有running the linpack benchmark on Azure nodes的示例(包括确保您Azure workers are running HPC server所需内容的链接)。他们跳过几步,因为linpack是一个可以下载的预构建二进制文件,但使用MPI进行编译非常简单。
至于部署应用程序以便您可以定期运行它(或让其他人运行它),我会推荐其他人如何最好地执行此操作。
答案 1 :(得分:3)
微软很快将推出对Linux VM's to be hosted in Azure的支持。因此,您可以构建一个Linux VM,安装和配置您的MPI应用程序并将其推送到Azure。
但是,您应该首先考虑您想要实现的目标。如果您的目标是利用Azure的某些功能(例如,多实例可用性和扩展性),那么您需要使用一些额外的代码来扩充您的应用。由于开源社区和Microsoft对开源的快速增长支持,您可以构建其他功能,例如:
如果您最感兴趣的是利用Azure服务配置,动态添加/删除工作者角色,使用azure存储等,那么您很幸运 - 以上所有内容都可以通过HTML / JSON控制REST接口,这意味着任何可以通过HTTP进行通信的人都可以(使用正确的凭据)配置,管理,监控您的服务并在存储中存储/检索数据。
HTH。
答案 2 :(得分:0)
我知道这个帖子太旧了!但是如果有人还在这里结束:
Azure同时通过特殊的高性能实例进行扩展,这些实例支持实例之间的高吞吐量连接。
因此,如果您查看A8 and A9 instances,除了默认的10Gbps网络接口之外,它们还具有针对MPI应用程序优化的附加网络接口。
32 Gbps后端,支持RDMA:实现低延迟,高吞吐量 单个云中的实例之间的应用程序通信 服务或可用性设置。仅为MPI流量保留。
设置还有一些documentation。