2

我必须使用 MPI 构建分布式应用程序。我必须做出的决定之一是如何将类的实例映射到进程中(然后映射到机器中),以便从分布式环境中获得最大的优势。

我的问题是:有一个模型可以让我选择更好的映射吗?我的意思是,有些安排肯定是错误的(例如,将两个对象放入两台不同的机器中,这两个对象应该以顺序方式一起处理相当大量的数据,没有要处理的令牌流),但是有一种系统的方法确定这样的错误安排,由执行流程、消息复杂性、算法组件完成的计算所花费的时间决定?

4

3 回答 3

1

嗯,有数据流图。这些可以帮助识别并行性的机会和陷阱。维基百科页面上的参考资料可能会给你一些更多的理论基础。

当我在洛克希德马丁公司工作时,我接触了CSIM,这是他们开发的一种工具,用于对算法映射到处理块进行建模。

于 2009-05-03T23:37:37.490 回答
0

您可能会尝试的另一件事是Join Calculus。我发现使用它进行编程的示例非常直观,而且我认为它在理论上有很好的基础。我不知道为什么它没有更多地流行起来。

另一种方法是Pi Calculus,我认为这可能更受欢迎,尽管它似乎更难理解。

于 2009-05-08T13:02:39.337 回答
0

一个实际的解决方案是使用不同的分布式内存并行编程模型,直接解决您的问题。我在Charm++编程系统上工作,它的模型是单个对象从一个对象发送消息到另一个对象的模型。运行时系统有助于将这些对象自动映射到可用处理器,以解决负载平衡和通信局部性问题。

于 2012-02-01T19:14:16.377 回答