- 22
- 0
- 约1.02万字
- 约 17页
- 2017-02-08 发布于北京
- 举报
导致每次计算结果同不的原因
1 前言 曾经有很多人问,诸如为什么明明输入文件一样,但是动力学轨迹每次跑出来的都不一样、为什么几何优化结果相差甚远等等,甚至怀疑计算科学是否遵循决定论。 实际上结果的差异是由于运算开始或运算过程中各种形式的数值误差、随机性引起的。这个是很重要却不被多数人重视的问题,它和理论本身、算法、软件环境、硬 件环境等都有密切关联。本文将对这个问题做一些分析探讨。首先先讨论数值算法、软件、硬件因素是如何导致误差(错误)和随机性的。然后再看这些问题对计算化学会产生何等的影响。?2 数值误差(错误)、随机性的根源?2.1 内存因为不少人对内存有误解,所以下面说得多一些。内存在数据读、写的过程中不可避免地会发生一些错误,轻则数据出现异常(比如一个变量为1却成了0),重则死机、重启。和内存错误(包括各种类型错误)相关的主要有以下几个方面:?(1)供电质量差。如电压偏离标准值过多、电流不稳。这不仅取决于电源质量,还取决于主板好坏(内存供电电路)。?(2)过热。随着温度升高内存出错的几率总是增加的,但只有高温下增加的幅度才最明显。遥想笔者用i860+RDRAM的日子,不装个小风扇吹着内存的话高负载下20分钟左右就死机。烫手的话应该装上散热片乃至小风扇。?(3)内存质量。一方面是内存设计,即布线、PCB板数、贴片元件等。另一方面取决于内存颗粒制造商的品质,也有RP的关系,比如颗粒来自晶圆的边角还是中心(杂
原创力文档

文档评论(0)