什么是并行计算的规范示例?

时间:2010-07-19 15:23:14

标签: parallel-processing mpi

我正在撰写一篇论文来测试一个新的应用程序,该应用程序将演示并行计算的好处(与此应用程序的传统序列化版本相比)。我想在我的论文中使用canonical examples进行并行计算。

我的第一个例子是the parallel computation of pi。理想情况下,我希望每个迭代非常耗时(因为与并行化相关的额外开销);我的第一个想法是用MCMC和Gibbs采样进行贝叶斯模拟。

在此背景下通常会讨论哪些其他问题?什么是大embarassingly parallel个问题的好例子?

9 个答案:

答案 0 :(得分:6)

再多一点 -

  • 乘以矩阵
  • 反转矩阵
  • FFT
  • 字符串匹配
  • 渲染3D场景(通过扫描线转换或光线跟踪)

答案 1 :(得分:5)

我曾经在一个令人尴尬的并行问题中使用的一个例子是可视化mandelbrot集。每个像素都可以独立计算。

Conway的生活也很有趣,因为“下一个”电路板的每个值都可以独立计算,但取决于已经完成的“当前”电路板的相关位。

答案 2 :(得分:5)

我建议并行计算的典型例子令人难以置信的并行问题,如果不是完全的话,那么几乎是不相交的集合。换句话说,在并行计算中工作的人对于令人难以置信的并行问题并不十分兴奋;我们称他们为因为我们很尴尬地为他们工作。

如果我是你,我会在这些(一个不完全原创的名单)中寻找:

  • 大密集矩阵上的线性代数,包括直接和迭代方法;
  • 巨大稀疏矩阵上的线性代数
  • 线性规划(和相关)问题的分支和约束方法;
  • 生物信息学的序列匹配(在我的领域之外,我可能错误地表达了这一点);
  • 持续优化。

我希望还有更多。

编辑:您可能对this list of problems感兴趣,这些已被选中用于对下一代欧洲(学术)超级计算机进行基准测试。它会让你知道这个利基的前进方向。

答案 3 :(得分:4)

分子动力学模拟允许您更改问题的大小,直到计算机资源耗尽(即256个粒子与256,000,000个粒子)。如果你在NVT条件下运行MD模拟,它真的是一个“规范”的例子; - )

答案 4 :(得分:2)

我最喜欢的例子是蒙特卡罗模拟。

答案 5 :(得分:1)

字数统计似乎是MapReduce的典型示例。

http://en.wikipedia.org/wiki/MapReduce#Example

答案 6 :(得分:1)

使用Paul C. van Oorschot和Michael J. Weiner的method(PDF)查找哈希函数中的冲突经常出现在各种加密设置中。

答案 7 :(得分:1)

您可能需要查看Parallel Programming in C with MPI and OpenMP

的目录

答案 8 :(得分:1)

我使用Mandelbrot集演示向我的妈妈解释并行编程的内容:http://www.ateji.com/px/demo.html

您提到的所有示例都是重型数据并行代码。您可能还想提及面向任务的代码,例如并行响应许多请求的服务器,以及数据流或流编程示例(MapReduce是此类的一个很好的代表)。