我正在撰写一篇论文来测试一个新的应用程序,该应用程序将演示并行计算的好处(与此应用程序的传统序列化版本相比)。我想在我的论文中使用canonical examples进行并行计算。
我的第一个例子是the parallel computation of pi。理想情况下,我希望每个迭代非常耗时(因为与并行化相关的额外开销);我的第一个想法是用MCMC和Gibbs采样进行贝叶斯模拟。
在此背景下通常会讨论哪些其他问题?什么是大embarassingly parallel个问题的好例子?
答案 0 :(得分:6)
再多一点 -
答案 1 :(得分:5)
我曾经在一个令人尴尬的并行问题中使用的一个例子是可视化mandelbrot集。每个像素都可以独立计算。
Conway的生活也很有趣,因为“下一个”电路板的每个值都可以独立计算,但取决于已经完成的“当前”电路板的相关位。
答案 2 :(得分:5)
我建议并行计算的典型例子和令人难以置信的并行问题,如果不是完全的话,那么几乎是不相交的集合。换句话说,在并行计算中工作的人对于令人难以置信的并行问题并不十分兴奋;我们称他们为因为我们很尴尬地为他们工作。
如果我是你,我会在这些(一个不完全原创的名单)中寻找:
我希望还有更多。
编辑:您可能对this list of problems感兴趣,这些已被选中用于对下一代欧洲(学术)超级计算机进行基准测试。它会让你知道这个利基的前进方向。
答案 3 :(得分:4)
分子动力学模拟允许您更改问题的大小,直到计算机资源耗尽(即256个粒子与256,000,000个粒子)。如果你在NVT条件下运行MD模拟,它真的是一个“规范”的例子; - )
答案 4 :(得分:2)
我最喜欢的例子是蒙特卡罗模拟。
答案 5 :(得分:1)
字数统计似乎是MapReduce的典型示例。
答案 6 :(得分:1)
使用Paul C. van Oorschot和Michael J. Weiner的method(PDF)查找哈希函数中的冲突经常出现在各种加密设置中。
答案 7 :(得分:1)
答案 8 :(得分:1)
我使用Mandelbrot集演示向我的妈妈解释并行编程的内容:http://www.ateji.com/px/demo.html
您提到的所有示例都是重型数据并行代码。您可能还想提及面向任务的代码,例如并行响应许多请求的服务器,以及数据流或流编程示例(MapReduce是此类的一个很好的代表)。