2011-12-06 20 views
0

我是MPI和HPC领域的新手。我设计了一个使用MPI实现的分布式算法。每个MPI进程访问一组对每个MPI进程都不相同的文件。在我的电脑上这已经起作用了,因为这些文件已经存在了。执行MPI之前的文件分发的标准方法

现在的问题是,我想在多台计算机上运行该程序,因为我需要手动将文件传输到每个工作站,然后运行我的程序。这对于一台或两台电脑来说是可以的,因为我可以手工完成,但如果我有1000台电脑,并且我想在运行我的程序之前将文件分发到每台电脑,会发生什么情况。

在运行实际的MPI程序之前,是否有从集群中的主机节点向所有目标节点传输文件的普遍接受/标准方式?

UPDATE 作为示例Matlab具有称为FileDependencies分批distritbution函数参数其中拉链在主机上相关的文件,并将其分发到节点,然后解压到它们在这些机器上的文件结构。

+1

听起来像你需要某种集群或网格中间件。你可以问一些像globus或神鹰一样的东西吗? – talonmies

回答

2

通常使用共享文件系统,如NFS。

编辑:MPI通常用于需要紧耦合(高性能计算)的并行程序。听起来你的任务中没有任何耦合,你只需要一次运行很多。这种类型的计算被称为高吞吐量计算,或者是令人尴尬的并行计算。 HTC最广泛使用的平台是Condor,它甚至内置了一个文件传输机制(只需列出要传输的文件,最终会放到执行主机上)。

+0

我将部署的节点位于至少3个不同城市(同一国家/地区)的不同网络中。我希望有一种更加标准的文件分发方式...... – twerdster

+1

如果你的任务在不同的网络上运行,那么MPI可能就不是了。您是否看过像Condor这样的HTC解决方案? http://research.cs.wisc.edu/condor PS:Condor内置了文件传输机制。 – eduffy

+0

这基本上是我正在寻找的答案。你能否更新你的答案,以便我能接受它? – twerdster

相关问题