freeCodeCamp/guide/chinese/algorithms/embarassingly-parallel-algo.../index.md

16 lines
1.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Embarassingly Parallel Algorithms
localeTitle: 令人尴尬的并行算法
---
## 令人尴尬的并行算法
在并行编程中,令人尴尬的并行算法是在进程之间不需要通信或依赖的算法。与需要在任务之间进行通信的分布式计算问题(尤其是中间结果)不同,令人尴尬的并行算法很容易在缺乏真正超级计算机集群中使用的特殊基础结构的服务器场上执行。由于令人尴尬的并行算法的性质,它们非常适合基于互联网的大型分布式平台,并且不会受到并行减速的影响。令人尴尬的并行问题的反面是固有的串行问题,根本无法并行化。 令人尴尬的并行算法的理想情况可归纳如下:
* 在计算开始之前定义所有子问题或任务。
* 所有子解决方案都存储在独立的存储器位置(变量,数组元素)中。
* 因此,子解决方案的计算是完全独立的。
* 如果计算需要一些初始或最终的通信,那么我们称之为几乎令人尴尬的并行。
许多人可能会想到“令人尴尬”一词的词源。在这种情况下,令人尴尬的是与尴尬无关;事实上,这意味着过多 - 这里指的是“令人尴尬的容易”的并行化问题。
令人尴尬的并行问题的一个常见例子是由图形处理单元处理的3d视频渲染其中每个帧或像素可以在没有相互依赖性的情况下处理。其他一些例子是蛋白质折叠软件可以在任何计算机上运行每台机器完成一小部分工作生成所有子集随机数和蒙特卡罗模拟。