IPython与Fortran:高性能计算语言的抉择
1. 对速度的追求
计算机的速度似乎永远都不够快。从古时候的算盘到如今如建筑物般庞大的超级计算机,人们一直在抱怨“为什么这要花这么长时间”。这并非无意义的抱怨,人类掌控世界的能力依赖于对世界进行建模以及在模型中模拟不同行动方案的能力。
在中世纪,商人在开始贸易任务前,会拿出地图(世界模型)并规划路线(旅程模拟),否则就可能遭遇灾难。使用这些工具需要很长时间和专业技能,优秀的导航员是团队的重要成员,前往没有地图的地方是一次危险的旅程。
如今,情况依然如此,只是模型变得更大,模拟也更加复杂。例如,直接发射新的核导弹来测试是不明智的,而是在软件中构建导弹模型并在计算机上进行发射模拟。这样可以在计算机中发现设计缺陷(在计算机中这些缺陷无害),而不是在现实中。
导弹建模比船舶航线建模复杂得多,有更多的运动部件,相关的物理定律更复杂,对误差的容忍度更低等。如果没有比中世纪导航员所使用的更复杂的工具,这是不可能实现的。最终,我们的工具能力限制了我们所能做的事情。问题的本质是不断扩展以填满我们解决问题能力的极限。计算机刚发明时,似乎是所有问题的答案,但不久后新问题就出现了。
2. Fortran解决的问题
计算机最初取得成功(破解德国密码和计算对数)后,该领域遇到了两个问题。首先,计算机本身速度慢,至少对于手头的新问题来说比期望的要慢;其次,编写计算机执行以解决问题的指令(代码)需要太长时间。
让计算机本身更快主要是一个工程问题。计算机的底层基础从蒸汽和阀门发展到机电继电器、真空管再到集成电路。每次基础的改变都提高了指令执行的速度,但这种进步超出了本文的范围。
超级会员免费看
订阅专栏 解锁全文
651

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



