适用于 Linux 的 64 位 JMP
世界上最大的私有软件公司 SAS 由 James Goodnight 博士和 John Sall 于 1976 年共同创立。他们继续以 CEO 和执行副总裁的身份运营公司。Sall 还是 SAS 统计发现软件 JMP(发音为“jump”)的首席架构师,该软件是他于 1980 年代后期为 Macintosh 发明的。它是一个桌面统计分析程序,使用探索性图形来促进统计发现。JMP 于 1995 年发布了 Windows 版本,自 2003 年以来一直提供 32 位 Linux 版本。
SAS 于 2006 年晚些时候发布的 JMP 6.1 版本利用了 64 位 Linux 的强大计算能力,这不仅对 JMP 和 Linux 来说是令人兴奋的消息,而且也是统计计算领域的一个里程碑。
为了理解 64 位 JMP 版本的重要性,让我们思考一下统计分析的目的和历史。
最终,统计学的目的是从过多的信息中理出头绪。例如,每十年消化一次美国人口普查数据结果的唯一可能方法,其中包含对 2.75 亿人进行的数十项测量,就是将其简化为统计结论,例如按县划分的家庭平均收入和按城市或社区划分的中位年龄。没有人能够查看原始人口普查数据并得出有意义的结论,除了“美国人口众多且多样化”。
问题在于存在成百上千种统计指标——事实上,SAS 已经花费了 30 年的时间来扩展和改进其分析能力,并且看不到任何结束的迹象。学习在哪些现实世界情况下使用哪些技术可能需要数年时间,而培养从原始数据有效推进到知识的洞察力可能需要一生。这就是 John Sall 在 1980 年代后期开发 JMP 的原因。受到 Macintosh 通过引入图形用户界面使桌面计算对全新受众变得可访问的方式的启发,Sall 意识到他可以通过使分析过程可视化来使统计学对更广泛的受众变得可访问。
理解隐藏在统计测试结果页面中的含义——p 值、标准差、误差项、自由度等等——即使对于专家来说也是一项令人费解的任务,但 Sall 知道几乎任何人都可以查看绘制精美的图表并理解有关他或她的数据的事情。JMP 始终以图形引导每个分析,以便研究人员不必浪费时间研究统计数据,因为当这些图形直观地表明他们是否走在正确的分析道路上时。JMP 还将相关分析分组在一起,并按照研究人员在健全的数据探索过程中需要的顺序呈现它们。研究人员不必绞尽脑汁记住接下来可能有哪些程序会有所帮助。相反,JMP 提供了在每个阶段都合适的工具。此外,JMP 的所有图形和数据表都是动态链接的,因此用户可以指向并单击以选择图形中的点或直方图中的条形,并立即查看这些点在所有其他打开的图形和数据表中的表示位置。
暂且不考虑理解统计学需要什么,考虑一下计算统计学需要什么。对于研究人员来说,仅使用铅笔和纸张计算数千次观察的标准差可能需要数周或数月。
当 Jim Goodnight 在 1970 年代初期创建 SAS 时,他的想法是将所有这些数据存储在一个文件中,然后编写可以重复使用以计算任何文件统计数据的程序。这个想法在今天看来非常简单,但在当时是革命性的。使用 SAS 的农业科学家可以一遍又一遍地对新数据执行计算,而无需花钱请计算机科学家编写和重写程序。这些计算不再需要数周,而是需要数小时。快进 30 年,现代统计软件可以在瞬间对数十万行数据进行这些计算。
当计算简单的描述性统计数据需要数月时,研究人员通常在花光他们的资助资金之前并没有取得多大进展。现在,基本知识只需几秒钟即可获得,研究人员可以更深入地挖掘,因此统计学的科学和实践随着计算能力的发展而发展。
在过去的十年中,桌面计算一直建立在 Windows、Linux 和 Mac 等操作系统之上,这些操作系统依赖于 32 位内存寻址。因此,桌面应用程序在由此架构暗示的计算限制内运行。实际上,这意味着像 JMP 这样的统计程序在执行任何计算之前将整个数据集加载到 RAM 中,因此仅限于大约一百万行数据。它们无法处理当今研究人员面临的大规模问题。遗传学家正在探测 30 亿个 DNA 碱基对。半导体制造商正在将数百万个晶体管挤压到越来越小的芯片上。制药公司正在梳理数千种潜在的治疗特性,这些特性存在于无数已知和理论化合物上。
JMP 产品工程研发主管 Richard C. Potter 博士负责将 JMP 从 Macintosh 移植到 Windows,后来又与首席 Linux 系统开发人员 Paul Nelson 合作从 Windows 移植到 Linux。Potter 说
JMP 的 64 位 Linux 版本极大地提升了此限制。现在,JMP 可以超越 32 位寻址内存限制的束缚,达到 16 艾字节的理论限制,这将允许 JMP 处理 20 亿行数据。JMP 的 64 位 Linux 版本也是多线程的,并且某人可以使用 JMP 解决的问题的大小和复杂性令人难以置信。
JMP 的一项特殊分析优势使其明显区别于所有其他统计软件包(开源或其他):其用于实验设计 (DOE) 的功能。实验设计的思想超越了试图从已收集的数据中学习的传统统计概念,而是一种规划如何通过设计和运行实验来最好地学习更多知识的思想。
假设您通过将各种成分烹饪成橡胶来制造轮胎,将橡胶与钢和其他材料结合,然后将橡胶成型为各种尺寸和胎面花纹的轮胎形状模具。您可以通过测量轮胎在各种驾驶条件下的牵引力、它们可以承受的工作温度和速度范围以及它们的可使用寿命来判断这些轮胎的成功与否。您将尝试解决一个极其复杂的问题。您将尝试优化至少四个响应测量值,这些测量值的重要性各不相同,并且相互作用取决于无限可变的成分混合物以及烹饪温度和时间、模压压力和时间、轮胎尺寸和胎面花纹的无数组合。如果您尝试使用传统方法优化此制造过程,尝试每一种可以想象到的组合,您将工作数百年,并且消耗比您希望收集的更多的自然资源。
实验设计提供了一种更好的方法。通过运行一组代表可能性的实验,并使用统计建模方法来内插和外推这些结果,研究人员可以将问题的大小缩小到可管理的程度。
问题在于分析师总是不得不翻阅书籍,寻找类似于他们试图解决的问题的设计模型。在实践中,他们将不得不使用一种有点像他们的问题的模型,这种模型有点处理了他们的条件,并且有点模拟了他们系统的行为。更糟糕的是,大多数这些“预制设计”都需要大量的运行。如果一次运行花费几美分并且需要几分钟,那没问题,但是如果您的实验涉及建造或更改一个价值数百万美元的半导体制造综合体,或者关闭一条每分钟生产一千个单元的装配线,您就无法指望完成获得有意义结果所需的所有运行。
JMP 通过提供独特而强大的自定义设计功能,将 DOE 提升到一个全新的水平。研究人员可以精确而完整地描述他们的问题,JMP 可以确定足够小的运行次数。JMP 独特的图形因子剖面器使研究人员能够探索任何响应和因子组合上的结果空间,并最终在几秒钟内最大化其整个系统的期望值。JMP 的 DOE 使蓝筹客户能够在短短几周内发现数百万美元的年度节省或利润机会。正如 JMP 的 DOE 功能的统计开发高级经理兼首席架构师 Bradley Jones 所说,“在过去 100 年中发明的所有统计方法中,实验设计是最具成本效益的。”
但是 JMP 在实验设计等领域的独特功能及其新推出的广义线性模型受限最大似然估计在计算上极其密集。借助 JMP 在 64 位双处理器上运行的新多线程架构,以前需要几天才能计算完成的实验设计现在可以在几分钟内计算完成。而且,去年还不可能解决的问题现在可以使用 64 位 Linux JMP 在几分钟内解决。
“当将 32 位应用程序移植到 64 位时,您可能会遇到某些陷阱”,Potter 说。他继续说道
如果您不仅支持 Linux,还支持 Windows 和 Macintosh,那么复杂性会加剧,就像我们对 JMP 所做的那样。要记住的关键是,在 64 位 Linux 架构中,指针和 long 都是 64 位宽,而 int 仍然是 32 位。这会破坏任何假设指针可以存储在 int 中的代码。
如果您的源代码在 Linux 和 Windows 上都编译过,则必须格外小心。尽管在 64 位 Linux 上将指针存储在 long 中是完全合法的,但在 Windows 上将指针转换为 long 将不起作用,因为在 Windows 上 long 仍然只有 32 位宽。在 Windows 上,任何 64 位指针都必须转换为 long long。
到目前为止,Macintosh 的 PowerPC 上的浮点运算使用 64 位 long double,但这在未来可能会改变。基于 PowerPC 的 Mac 在 64 位可执行文件中使用“LP64”模型,这意味着 long 和指针都是 64 位,就像它们在 Linux 上一样。Apple 尚未宣布基于 Intel 的 Mac 的 64 位策略。
最后,尽管图形用户界面 API 可用于 Linux 和 Windows 上的 64 位应用程序,但 Macintosh GUI 则不可用。当然,您可以将您的应用程序分成一个 32 位 GUI,该 GUI 与 64 位内核通信,就像 Wolfram Research 对 64 位 Mathematica 所做的那样。
Nelson 观察到将 JMP 移植到 64 位的过程很顺利。“唯一的问题是找到我们代码中对 32 位字和指针大小做出假设的少数几个地方”,Nelson 说。“端口使用的工具也没有带来任何意外。端口的轻松在很大程度上归功于我们使用的开源工具在 64 位 UNIX 平台上的悠久历史。”
“GNU 编译器套件、gdb、Emacs 和工具链的其余部分在 x86_64 架构上按预期运行”,Nelson 说。
除了 JMP 之外,当今 Linux 桌面可用的唯一统计软件是名为 R 的开源产品。它具有相当大的分析深度,其开源性质允许也具有计算机编程才能的统计学家扩展 R。但是,对于当今从事统计工作的大多数人来说,JMP 通常被认为是更好的选择。JMP 具有直观的图形用户界面、广泛而深入的分析功能以及全面的专业编写文档。JMP 客户有信心他们的投资得到了 SAS 屡获殊荣的、由博士组成的质量保证、技术支持以及专业培训和咨询服务的支持。SAS 拥有 30 年的持续增长记录,因此 JMP 客户知道他们可以指望 SAS 和 JMP 长久存在。
“人们一直想知道 Linux 是否会成为桌面市场上的有力竞争者”,Potter 说。“让 Linux 爱好者失望的是,这种情况尚未发生。现在,随着价格实惠的 64 位桌面机器的可用性,我们可能会开始看到这种变化”,Potter 说。他继续说道
从服务器的角度来看,Linux 操作系统通常被认为比其他替代方案更可靠、更安全且拥有成本更低。
许多研究科学家和工程师也希望在其桌面上采用 Linux。然而,他们一直没有这样做,因为他们所依赖的应用程序以及他们需要的计算能力根本不存在。现在,这些障碍已经消除。
随着研究人员依赖的更多应用程序(如 JMP)可用于 64 位 Linux,其在桌面市场中的份额只会增长。
Erin Vang 是 SAS JMP 研发部门的国际项目经理,她建立了 JMP 的本地化和国际化计划。此前,她曾担任 Abacus Concepts (StatView) 的文档和本地化经理,以及 SYSTAT 的技术撰稿人和质量保证经理。她拥有圣奥拉夫学院的音乐表演、音乐史和数学学士学位以及西北大学的圆号表演音乐硕士学位。