龙芯3A5000运行三大数学软件之Mathematica 12 (x86/Linux版)

  Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎、图形系统、编程语言、文本系统、和与其他应用程序的高级连接。很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一。Mathematica的发布标志着现代科技计算的开始。Mathematica是世界上通用计算系统中最强大的系统。自从1988发布以来,它已经对如何在科技和其它领域运用计算机产生了深刻的影响。
  Mathematica 和 MATLAB、Maple 并称为三大数学软件。
                          ——来自百度百科

  Mathematica当前最新版本是Mathematica 13,但这个版本只能购买不能试用,可以试用的版本是12.3.1。Mathematica可在Windows和Linux系统上安装运行,但仅支持x86架构。它的Linux版本可在ARM架构的电脑上安装,但是安装包中没有ARM架构的二进制程序,因此安装后不能运行。

龙芯LoongArch架构的CPU可高效地翻译运行x86架构的应用程序,目前在UOS/Loongnix系统中已经内置二进制翻译功能,支持龙芯3A5000、3B5000、3C5000等最新型号,因此基于龙芯3A5000的电脑也能安装和运行Mathematica。

  只是因为Mathematica的启动脚本程序不能识别LoongArch架构,在安装后需要进行一些简单的修改。下面我将详细说明在龙芯3A5000电脑,UOS专业版系统上安装和运行Mathematica 12.3.1版的过程。

下载Mathematica 12.3.1的Linux(x86)版本

  在第三方下载网站很难找到Mathematica的Linux版本,因此需要到官方网站进行下载。首先需要在官方网站申请试用、注册账号,然后邮箱中会收到验证邮件。完成帐号验证之后,再回到下面的页面登录,并填写试用申请表。

  然后选择要试用的版本,点击“Start Your Trial”。

  完成这个流程就能得到下载地址,以及15天试用期的激活序列号。下载页面的地址还会被发送到注册时使用的邮箱中,任何时候都可以重新下载。

  上图中的产品名带(CN)后缀的下载服务器是在境内,下载速度更快,文件与不带(CN)的没有区别。选择Linux版本,下载得到的是一个文件名为
Mathematica_12.3.1_Chinese_LINUX_CN.sh的文件。在安装之前可以校验一下文件MD5值是否正确,用md5sum命令得到文件的MD5校验值:

在龙芯3A5000上安装Mathematica 12.3.1

  龙芯3A5000运行x86架构的程序需要使用龙芯开发的LATX软件,UOS中现在集成的是1.1.1-alpha3版,这个版本还不能运行Mathematica 12,需要安装龙芯中科几天前发布的1.1.3-alpha3版才能正常运行Mathematica 12。新版本的LATX当前还处于小范围测试阶段,暂未提供在线更新,需要自己下载安装。我已把LATX 1.1.3-alpha相关的安装包上传了到CSDN,大家可以自行搜索下载:

共包含下列5个软件包,需要按照顺序安装。因为我们要运行的是Mathematica的Linux版本,所以只需要安装前3个包,而不需要安装wine。在UOS中可以双击安装包进行安装,也可以在终端窗口中使用命令"sudo dpkg -i 文件路径"进行安装。


lat_1.1.3_alpha3.lnd.2_loongarch64.deb


i386-runtime-base_1.1.3_20220224.lnd.2_loongarch64.deb


i386-runtime-extra_1.1.3_20220224.lnd.2_loongarch64.deb


wine5_5.0.4-5-g18496573de37_loongarch64.deb


wine6_6.0.1-7-g0216b230c459_loongarch64.deb

  把LATX安装完成之后,接下来就安装Mathematica 12,在终端窗口中运行刚才下载的
Mathematica_12.3.1_Chinese_LINUX_CN.sh。最好是在前面加上 sudo,以管理员权限运行,否则会有一些(可有可无的)小程序不能顺利安装。

  安装程序首先会校验文件并解压出一些安装所需的临时文件,然后要求输入安装路径。它默认的/usr/local……文件夹在系统分区,需要管理员权限,并且UOS默认给系统分区划分的空间比较小,因此最好输入自定义的安装路径,在安装程序询问是否创建文件夹时回答y。

  最下方的安装进度不能实时显示,需要耐心等待一段时间。在x86的电脑上也是这样,进度不动与二进制翻译无关。大约14分钟后进入下一步,安装耗时与主流中端电脑差距不大(AMD R5-2600相同步骤耗时约11分钟),大概因为安装程序大部分是脚本调用本机程序解压文件,不需要二进制翻译。

  下一个步骤也要求输入路径,将会在路径中创建一些指向Mathematica 启动脚本的链接文件,以便于从命令行启动Mathematica。然后会安装一个简化的Mathematica命令行版本,便于在没有GUI的时候也可以完成一些工作。这里如果不使用默认的路径,那么在命令行下使用时就不会太方便,因此如果有管理员权限,就直接按下回车。

  如上图所见,命令行版本的“WolframScript”安装失败。这不是二进制翻译的问题,或者说这不是一个问题。因为WolframScript是使用一个单独的deb文件进行安装,这个deb文件标识自身支持x86(AMD64)架构,于是安装器认为与本机架构LoongArch64不符,就不给安装。暂时先跳过它吧,我想很快就能找到解决方案,如果能在LoongArch架构的3A5000电脑上直接安装x86(AMD64)的deb安装包,又可以再水几千字。

运行安装好的Mathematica 12.3.1

Mathematica 12安装完成之后,在开始菜单中已经可以找到,但此时还不能运行。原因是Mathematica 12是使用一个脚本程序启动,而这个脚本程序不认识LoongArch64架构。需要对这个脚本程序稍作修改,添加对LoongArch64架构的支持。

  开始时我没有看启动脚本的代码,而是直接去运行Mathematica 12的二进制程序,结果提示Qt初始化失败。当时我以为是因为LATX中还没有提供x86 Linux的Qt库,然而是我乌龙了。Mathematica 12是自己打包了所需的各种库文件,启动脚本的功能就是设置运行时的库搜索路径,脚本中根据架构来拼合库的路径,不过实际能支持的只有x86_64架构,并没有其它架构二进制程序和库。因此需要修改启动脚本,让它在LoongArch架构的CPU上也使用x86_64的程序。要修改的文件都在下面:

  上图中以不同颜色分组的文件,每一组文件内容都是相同的,只是文件名不一样,是起到“别名”的作用。因此需要修改的文件只有3个,其它的只需复制粘贴。这些文件的图标上带锁,是因为安装时使用了管理员权限,我们可以先修改这些文件的权限,也可以在管理员权限下去修改文件内容。

  一个一个来,先改mcc这个文件。可以看到文件中是调用“uname -m”取得CPU架构名称,再根据不同的架构名称设置一个字符串值,后面会使用这字符来组合要运行的二进制程序路径。因为龙芯3A5000电脑已经使用LATX兼容了x86应用程序,所以对文件的修改就很简单。只需要复制“x86_64”这个分支,再把“x86_64”改成“loongarch64”即可。如下图,左边是修改之前的,右边是修改之后的:

  其它的文件也如法炮制,下图是math、MathKernel、wolfram、WolframKernel这几个文件的修改:

  最后是mathematica和Mathematica这两个文件。启动主程序的脚本就是这两个,只修改这两个也可以。

  上面的文件修改完成之后,就可以从开始菜单中点击运行Mathematica 12了,也可以在终端窗口中输入“mathematica”启动。

  暂时推荐在终端窗口输入mathematica”启动,因为我测试时从开始菜单中打开总会卡死在启动界面,而从终端窗口中启动则总是正常。这是一个很奇怪的bug,我不确定这是不是我这台电脑特有的毛病,也许LATX的下一个版本就没问题了。从去年11月LATX发布第一个版本至今4个月时间,LATX翻译运行x86程序的效率、稳定性、兼容性等各方面的进步切切实实看得见。很多以前不能运行的程序现在可以运行了,以前能够运行的程序现在更加流畅了。

  Mathematica 12首次运行要求注册,点击“在线激活”,再输入上面申请试用得到的试用序列号即可。

  15天的试用期显然无法满足非专业人员长期又间断的使用需求,又不是每天都用。因此作为学习和测试等非商业用途的话,可以用一些福利程序得到可长期使用的激活序列号。这样的福利程序在也是可以通过LATX运行的,因为它们一般是Windows版的程序,所以需要安装wine。安装wine和运行Windows程序的方法请见:

guee:包教包会:龙芯3A5000上尝试运行任意Windows软件149 赞同 · 23 评论文章

  如下图所示,获得非官方序列号的程序在3A5000和UOS上也可以运行。先点击“产品激活”窗口上的“手动激活”,再按图所示进行操作就可以长期使用Mathematica 12。仅限于学习和测试等非商业用途哦,所需的第三方工具请自行寻找。

  现在已经在龙芯3A5000上成功安装运行了Mathematica 12,最后再抄几段代码绘制一些2D/3D图形来测试功能,做到有始有终。

转载请注明:《龙芯3A5000运行三大数学软件之Mathematica 12 (x86/Linux版)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注