将 Linux 作为一个科学计算平台进行探索
简介: Linux® 是一种出色的科学计算平台,常被学术团体用来处理大量任务。尽管许多开源项目会解决特定应用程序的问题,但是 Sage 数学项目提供了一种更通用的解决问题的能力。Python 是许多最高规格的科学应用使用的主要语言,本文将介绍科学应用。
科学团体中的 Linux
Linux 在科学团体中占有重要地位,这一点也不奇怪。解决方案种类繁多,从高性能计算集群到可视化软件都包含其中。甚至还有一个基于 Red Hat Enterprise Linux 且针对科学计算的完整 Linux 发行版,它被相应地命名为 Scientific Linux。
Sage 和 Enthought Python Distribution
本文介绍使用 Linux 工作站进行科学计算的两种不同方法。第一种方法是 Sage 开源数学系统,第二种方法是 Enthought Python Distribution (EPD)。这两种方法都使用大量核心开源 Python 工具来执行困难的工作。如果您想要尝试这两种方法,可使用 Ubuntu 软件管理器安装各个软件。
在这两种方法中,Sage 更全面一些,因为与其说它是大量不同的基础引擎,不如说它是一个 shell。您甚至可以从 Sage 命令行与 MATLAB 或 Mathematica 等商用产品进行交互。在 Sage 命令提示符下,您实质上是与 IPython 进行交互,从而访问其所有功能。开始探索 Sage 的功能时,您还必须考虑对象和方法。Sage 提供了大量不同的计算机代数系统,以支持用户从命令行与它们进行交互。
值得注意的是,Sage 基于 Python,但在将它传递给 Python 解释器之前,需要对每个语句进行预分析。在查看简单的交互式 Sage 命令时,可能会造成一些混淆。此行为的基本原理是:让在 Sage 中输入命令变得尽可能直观一些。一个好示例是求幂符号。在纯 Python 中,您必须输入 2**4 将二次方提高到四次方。在 Sage 中,则使用向上箭头符号 (^),比如 2^4。与基本 Python 相比,Sage 处理一些操作(整数除法)的方式也不相同。
NumPy 和 SciPy
Sage 和 EDP 的两个最出名的潜在难题是 NumPy 和 SciPy。两个项目都在 90 年代中后期出现,最初由 Travis Oliphant 启动,Travis Oliphant 现在是 Enthought 的一名员工。NumPy 提供核心数值方法来处理数组和矩阵。SciPy 依靠 NumPy 构建其基本数组数据结构,并包含用于处理一切(从线性代数到信息处理)的大量模块。Enthought 是两个项目的发起者,并且仍在继续开发大量新版本。
安装 Sage
安装 Sage 有几种选项可供选择。要查看 Sage,而不是实际安装它,可以使用 live CD 版本。您还可以在 Oracle VM VirtualBox 或 VMware Player 等虚拟机中运行 live CD。本文将介绍如何在运行最新版本的 Ubuntu (12.04) 的物理机和虚拟机上安装 Sage。
物理机
从介质安装 Sage 是启动和运行 Unbuntu 12.04 的最可靠的一种方法,因为最近刚发布了操作系统。请下载源代码 tarball 并将它解压缩到一个合适的目录中。在完成构建之前,还必须安装一些必备软件,您可以使用下列命令完成安装:
sudo apt-get install build-essential gfortran sudo apt-get install texlive xpdf evince sudo apt-get install tk8.5-dev |
安装了必备软件之后,就可以构建 Sage 了,可以使用下列命令启动构建:
make |
此时,可以去看个电影或小睡一下。在典型台式机上,完整的构建过程可能需要几个小时。如果正确构建了一切内容,则应看到类似 图 1 的界面。
图 1. Sage 的构建界面
虚拟机
如果您不喜欢冒险,并且只是想要开始使用 Sage,那么在虚拟机上安装 Sage 是一个好选择。可从 Sage 网站上下载 Open Virtualization Archive (OVA) 包,该包随附提供了 Fedora 16 和 Ubuntu 10.04.3 的二进制软件包。OVA 是一个包文件(从本质上讲是一个 tar 文件),包含以 Open Virtualization Format (OVF) 形式启动虚拟机所需的所有文件。