为了测试并行化工具,我正在寻找以下任务或算法的示例:
我发现了许多例子,但没有一个满足4号。最明显的一个是素数分解。旅行推销员问题是另一个问题。
为了满足3号,我认为算法不应该具有线性或接近线性的复杂性,例如排序。
答案 0 :(得分:0)
有两种耗时的任务:
迭代大量数据......违反第3点(除非您动态创建数据)
对小数据进行计算耗时...违反第4点。
我可以建议创建基本类型的大std :: vector并对其中的每个元素执行简单操作(插入随机值/通过随机值修改)或对其进行排序
这将是cpu密集型,它很容易分成多个线程,你可以动态生成你的数据(小输入,但仍然是巨大的内存占用),它是非算法的。< / p>
答案 1 :(得分:0)
多个图像处理过滤器非常耗时且可高度并行化。
例如,大直径的中位数或双侧或非局部均值滤波器。这些在图像去噪中很有用。
典型图像尺寸为几MB。一个很好且有用的应用是允许对可调参数进行实时反馈,这需要在第二个时间内运行。
指数行为的难题不是理想的目标,因为它们的运行时间在很大的范围内变化,并且你将被限制在N的小范围内,使得调查有点人为。
线性代数将为N²存储提供许多具有N³行为的算法。 Tey在物理模拟代码中被大量使用。