2012-01-05 79 views
2

我有一个二维表(矩阵) 我需要在这个矩阵中独立处理每一行。 每条生产线的过程都非常耗时。 我想在我们的大学使用并行计算资源(加拿大网格)并行计算

我可以有一些建议如何开始?我以前从未使用过并行计算。

谢谢:)

+3

也许跟你的讲师/ TA /教授.... – 2012-01-05 01:15:56

+3

对于要看看'multiprocessing'库Python或'如果所有繁重的工作在C代码threading'就足够了。这里的任何人都可以帮助您与大学的计算资源进行交流,除非您偶然发现其他人来自您的大学! – wim 2012-01-05 01:20:19

+0

FYI ...澄清维姆的穿线注:“......如果所有的繁重的工作在C ......”他(?她)说,由于蟒蛇的全局解释锁不允许多个线程同时运行。他们单步。通过在C中完成工作(在代码转移到C时释放解释器锁)或使用他提到的多处理模块解决此问题,因为每个线程都在单独的进程中运行。但是,这两者都有很大的开销,所以如果您真的想要性能,请查看C或Java线程下的posix线程。 – Jim 2012-01-05 01:36:42

回答

0

就像评论员说过的,找个人在你的大学里交谈。您的问题的答案将特定于网格上安装的软件。如果你有权访问网格,很可能你也有机会接触到一个人,他的工作是回答你的问题(他们很乐意帮助你) - 找到这个人!

4

我是名为scoop的新图书馆的开发者之一。

它始建正是为了这个目的(网格或超级计算,科学计算)。我建议你试试看。

在你的情况,你必须做的是这样一个电话:

futures.map(YourFunc, matrixLine) 

它然后将您的网格或任何环境下你选择分配。

+0

我没有看到任何地方可以在您的网页上为Scoop添加反馈,所以这里只需简单介绍一下。 Scoop的Windows 7安装过程可能会引起注意。我无法让它工作。随时与我联系了解更多详情。 – 2013-07-01 13:45:15

+0

请随时在[scoop邮件列表](https://groups.google.com/forum/#!forum/scoop-users)上报告任何问题,以便更快得到答案。请注意,独家新闻仍处于测试阶段,但我们欢迎任何反馈意见,这将有助于改善它。我们很快会研究这个问题。 – Olivier 2013-07-15 15:10:47

+0

哇,看到SCOOP的诞生令人惊叹:p我喜欢它! – Labo 2018-02-21 18:03:54

0

从你所描述的,我会说:首先看看numpy。 Numpy提供了以近似C速度以矢量化方式计算列和行的方法。根据你的问题,这可能比纯粹的CPython并行计算更快。

你可以使用并行计算与numpy阵列来获得真正的大加速。 可能的方法是在群集上使用multiprocessingIpython