[编者按] 新技术革命正在迅速地形成一场变革。微型计算机—家用计算机速度并不比大犁计算机慢多少,但是经济、方便,可以完成物理学中的大部分日常计算工作。自然科,学工作者应注视这一动向。
在去年大约一年时间内,微计算机的销售量从几千台增加到几百万台。今天,只要你肯花上几百美元,就能随便到一家玩具商店去买到一台计算机。多数微计算机或许还只限于娱乐活动,但最近微计算机已受到科学家的密切重视。
但是,我们还仅处在一场变革当中,我深信,在不久的将来,物理学中的大部分计算将会在这些“家庭计算机”上完成,其开支远远小于典型计算机中心里单位中央处理时间的费用。而且,物理工作者可在二十四小时内随时使用。他们一旦碰到问题,就辑马上进行计算,因而避免了时间耽搁,以及诸如提供资金,计算机中心的官僚作风引起的额外麻烦。这样,物理工作者完全掌握了主动权,他们能够随心所欲地安排自己的工作。在这篇文章里,我想说明,今天的微计算机能胜任物理上需要的各种各样的计算,而且,其速度并不比现代大型计算机的速度低多少。
在制造工艺方面,微计算机与大型计算机相差无几。两者的大脑都是中央处理机,用它来进行一些简单的操作,包括加法、减法以及逻辑运算,如数字存储等。任何信息都必须通过这一关口。家庭计算机的中央处理机就是一个简单的微处理机,而大型计算机却有更多的存储器和外围设备;因而,它能处理为数众多的数据,而且,每一数据本身还需要稍微处理一下(如大型图书馆的图书管理等)。但是,物理学中一般打交道的却是数据少、运算量大的情形,所以,对物理工作者来说,大型计算机提供的方便完全是多此一举。经营一家银行或管理一所图书馆所需的计算与物理中的计算有十分显著的差异。用微计算机时,物理工作者完全是按需付酬:只需付出中央处理时间的费用;而在计算机中心,由于大量的超荷(包括房屋、人员等因素)其费用一般为每中央处理机小时500美元。用微计算机作同样的计算,其费用却只有几个美分!此外,家庭计算机很快就会在功能上得以改进。由此可知,将来物理学中的大部分计算,极有可能都会在家庭计算机上完成。
特别地,想以一个具体的例子来证实上面的设想。在我所从事研究的固体物理学这一领域内,蒙特 · 卡罗(Monte Carlo)模拟是尤其需要计算的方法之一:需要大型计算机几天甚至几个星期的中央处理时间。蒙特 · 卡罗模拟的典型用途是寻求相图以及考察相变点附近的临界现象。研究相变的标准模型是铁磁体的伊辛(Ising)模型。三维伊辛模型无解析解,因此,只得进行数值解。正如我将要证明的那样,即使三维伊辛模型中目前力所能及的蒙特 · 卡罗模拟,也能在微计算机上有效地得以实现。
蒙特 · 卡罗模拟
考察d维简单伊辛模型,自旋σi=±1,排别在边长为N的简单正方格子上,在此模型中,不同状态的能量由哈密极量:
此处?E是自旋翻转所引起的能量改变,由此可产生接连不断的状态。诸如序参数之类的热力学函数也可用这样得到的状态进行平均,以求得其估值。
为了完成上述计算,我利用了一台十分价廉的家用计算机,其型号为Commodore VIC20,它拥有20 K比特存储量;以及一台用于贮存程序的录音机。计算机与标准的彩色电视机相联,以之作为输出终端。为了最有效地利用其存储功能,每一自旋只寄存在一位上,(多自旋码)程序中只使用不超过2 K比特的存储器,因而还剩下18 K比特用来寄存自旋。这样,自旋的位置有18,000×8即144,000,我计算中使用格子的边长N不大于32,对三维格子来讲,总共给出323或33,000个自旋。
为了计算自旋是否翻转,用0到1之间的随机数与上式给出的几率P进行比较。如果随机数小于p,自旋就翻转;反之,相反。通常,随机数的产生占去了整个计算的大部分时间。在本例中,我采用了由爱丽克 · 斯脱和斯哥特 · 柯克帕特里(Eric Stoll and Scott Kirkpatrick)设计的速度极快,质量很高的数字发生器。唯一的运算是在已经算出的两个数之间的逻辑“异或”运算。
家庭计算机一般显得比较慢,这部分是由于它采用BASIC语言解释程序。这种语言用来解释程序时,只有当计算机马上就要执行某一语句时,这一语句才会被翻译成机器语言。如果程序过程要进行108次,那么,也得翻译108次。相比之下,大型计算机总有一个编译器,使得程序一经翻译就可延续使用下去。现在,市场上廉价出售的家用计算机还没有编译器。但是,利用机器语言,其速度大约还能提高100倍。机器语言不过是一系列二进制数字,每一数字代表中央处理机,那微处理机执行的一个不同指令。使用机器语言事实上并不十分困难。我得声明我绝非计算机专家,我以前从未接触过机器语言,但是,只用了几个小时,我就熟悉了这种技术。如果我再花上30美元左右来学点汇编程序,工作也许会变得更加简单。
蒙特 · 卡罗程序(别的程序也同样)由两部分组成,一部分只要少量重复几次,而另一部分则需要重复多次。因而要求一定的速度。在这两部分中,前者包括初始数据的读入:在不同温度下,对少量可能的最近邻结构,列出e-?E/T的数值表;以及得到起动R250型随机数发生器所需的250个随机数。后者包括检验近邻结构,对随机数进行计算以及对每个可能的自旋翻转更新热力学平均。因为编写和改写BASIC语言程序都十分容易,我只用机器语言编写了需要过渡的那部分程序,这些程序可以从较慢的BASIC程序中提取出来。
计算机的速度由1.11兆赫(对VIC20而言)的时钟频率决定。一个蒙特 · 卡罗步长的计算需要150 ~ 250个时钟脉冲,由此得到的速度为每秒4000 ~ 6000蒙特 · 卡罗步长。大型计算机(如CDC7600型)的时钟频率比微计算机高35倍左右,同时,计算机的操作语句长了4 ~ 8倍。所以,原则上大型计算机比微型计算机快了100倍。但实际并非如此,因为大型计算机采用的Fortran或其它类似算法语言效率很低。微计算机的一个十分出色的优点在于它能及时地解决问题。而用大型计算机,由于存在与别的用户、维修等各种因素的冲突,往往要搁置冗长的时间而增加了计算所需的实际时间。
具有代表性的,在我的计算中,每个自旋、每个数据点包含5000 ~ 20,000蒙特 · 卡罗步长,因为计算机与标准的彩色电视机联接,彩色图像立即可得。自然,磁化曲线也同大型计算机的结果相符合。除磁化强度而外,该程序还能直接加以推广,以进行对蒙特 · 卡罗结果的更为细致深入的分析(如由罗伯特 · 斯温德逊和肯尼思 · 威尔逊发展起来的把蒙特,卡罗方法与重正化群相结合的方法,它用自旋转结构来计算临界指数),但这已超出本篇文章的范围。值得着重指出的是,上面所指的基本的蒙特 · 卡罗计算在实际中不仅行之有效,而且既快又准。
经费的节约
门上数据中,可能翻转的自旋共计30亿,计算机运转一个星期即可得到。计算机,包括盒式记录机的费用约为400美元。假设计算机用三年时间来完成这一计算,每周的计算费用为3美元,再加上1美元左右的电费,因此,160小时中央处理机时间的开支在4美元左右。
如果用一台大型计算机来算,其费用又是多少呢?(假定一般情况下,我们并不十分容易就能上机工作)计算机中心的通常价格在每中央处理机小时500美元上下。如果我们假定其速度提高了40倍,整个计算所需的时间为4个小时,这样,费用或许就为2000美元。所以,用小型计算机,费用减少到原来的1/500,同时,计算结果不差丝毫。
三维伊辛模型被公认为尤其适合于小型计算机。一些雄心勃勃的蒙特 · 卡罗模拟(如格点规范理论)需要进行大量的浮点计算,用这里的方法还不能进行。另一方面,更多的典型模拟方法已成为最时髦的研究课题,它只需这里所举例子中的处理时间的一小部分,而且上面的种种设想仍然成立。
从统计力学中的问题转到电子结构的计算,以及许许多多寻求自然界小范围内精确解的理论工作上,这时就需要现代大型计算机的处理速度了。只有一位极其有耐心的物理工作者,才会用家庭计算机来进行这样的计算。这些计算中往往有这种情况,速度可能增加了5倍,但费用也相应增加。
当然,也存在对大量数据进行处理所需的“实际时间”问题(例如,控制一台加速器),家庭计算机在这个问题上就显得无能为力了。但是,自然界中的大量问题并非如此。作为国家科学基金会的评论员,我经常碰到这样的情况:有些计算绝大部分可以在现有的最小计算机上完成,而且,这样费用也少得多,但有人却想申请基金到大学(或其它)计算机中心去完成。也有一些物理工作者,依附于在他们的大型实验室里从事的另外的、要求较高的科研工作,使用计算机十分方便。当然,这些科研人员用,不若转到微计算机上来,但他们肯定会遭到愈来愈强烈的竞争。除此之外,能在小型计算机上完成的计算最好还是用小型计算机来做。
展望未来
很明显,我们还仅仅处在微计算机时代的开端。仅在几个月的时间中,微计算机的数量已是相当可观。真正的革命还在于将来,那时,家庭计算机功能齐全,既节约时间,又节约钱财。现已出品的微处理机(Motorola MC68000型)可跟32位,时钟频率为12兆赫的计算机中央处理机媲美。原则上,小型计算机的速度并不一定比大型计算机速度慢。事实上,现在只有光速,即计算机的实际尺寸才会限制速度。因此,最小的计算机最终合成为最快的计算机。
正如我们已经看到的那样,传统计算机不能最有效地运转的主要原因在于:全部数据都必须通过唯一的狭口——中央处理机。大型计算机真是犹如恐龙一般:躯体庞大但大脑微小。由于外围设备、房屋、人员等因素,中央处理机时间非常昂贵,因而必须耗用大量的超额资金。这样,虽然你每时花了500美元,但实际上中央处理机的费用却仅占其中的5美元。尽管现在的计算机允许多通道处理,这样不同地方的计算也可同时进行:但我认为,这同样也可由价值300美元的家庭计算机来实现。一个极为简单的方法就是买100台家庭计算机,使它们同时运转,即使这样,还是十分合算的。
另一有趣的趋势是制造具有专门功能的计算机(硬线)桑塔 · 巴尔布勒(Santa Barbara)加州大学的一个科研小组,已经成功试制了专门解决三维伊辛模型中的蒙特 · 卡罗模拟的计算机,邻近相格上的存数信息由格子上的几个位置同时馈送。这个小组已得到每秒25×106步长的速度,远远超过家庭计算机的速度。然而这种办法只对为数极少的几个很明确的问题适用,况且,对每个特别的问题进行的计划和制造都不是轻而易举的。这种计算机只能用于从事单一课题的工作,相比之下,家庭计算机却能按照程序完成各种各样的计算工作。
近几个月来,微计算机以惊人的速度发展,因而很难推测其今后的发展情形。对我来说,家庭计算机给我的最大满足,在于它使我完全摆脱了计算机组织,官僚作风以及经费限制带来的问题;使我集中时间专心致志地从事科研工作。将来,物理学中的绝大部分日常问题,物理学家肯定都会有大规模、高效率的计算力量。
[Physics Today,1983年12月]
———————
* 丹麦哥本哈根H. C. 奥斯特研究所的教授。现为丹麦国立布鲁克黑文实验室的研究人员。