IPython 并行计算与高级 Shell 功能详解
1. 并行计算基础
1.1 令人尴尬的并行算法
存在一类算法,其满足 (W_{S}(A,n)=n),这类算法被称为“令人尴尬的并行算法”。在这类算法中,增加处理器数量可实现线性加速,这正是多核处理器机器的优势所在。“处理器越多越好吗?”这个问题的答案取决于具体的算法。幸运的是,对于并行计算而言,许多算法都能实现一定程度的加速,并且很多重要问题都可以使用这些算法来解决。
1.2 并行编程示例:Collatz 猜想
Collatz 猜想定义了一个函数 (f(n)):
[
f(n)=
\begin{cases}
\frac{n}{2}, & \text{if } n \mod 2 = 0 \
3n + 1, & \text{if } n \mod 2 = 1
\end{cases}
]
猜想内容为:对于任何正整数,重复应用 (f(n)) 最终都会达到数字 1。虽然人们相信该猜想是正确的,但目前尚无证明。我们关注的是达到 1 所需的步骤数,即对于给定的 (n),需要应用 (f(n)) 多少次。我们希望计算 1 到 100 所有 (n) 的平均值。
对于任何 (n) 生成的数字序列称为冰雹序列。例如,当 (n = 6) 时,冰雹序列为 6, 3, 10, 5, 16, 8, 4, 2, 1。我们感兴趣的是冰雹序列的平均长度。
1.3 串行程序实现
以下是一个常规的 Python 串行程序,用于计算上述平均值:
超级会员免费看
订阅专栏 解锁全文
848

被折叠的 条评论
为什么被折叠?



