龍芯3A5000運行三大數(shù)學軟件之Mathematica 12 (x86/Linux版)

Mathematica是一款科學計算軟件,很好地結(jié)合了數(shù)值和符號計算引擎、圖形系統(tǒng)、編程語言、文本系統(tǒng)、和與其他應用程序的高級連接。很多功能在相應領域內(nèi)處于世界領先地位,它也是使用最廣泛的數(shù)學軟件之一。Mathematica的發(fā)布標志著現(xiàn)代科技計算的開始。Mathematica是世界上通用計算系統(tǒng)中最強大的系統(tǒng)。自從1988發(fā)布以來,它已經(jīng)對如何在科技和其它領域運用計算機產(chǎn)生了深刻的影響。
Mathematica 和 MATLAB、Maple 并稱為三大數(shù)學軟件。
——來自百度百科
Mathematica當前最新版本是Mathematica 13,但這個版本只能購買不能試用,可以試用的版本是12.3.1。Mathematica可在Windows和Linux系統(tǒng)上安裝運行,但僅支持x86架構(gòu)。它的Linux版本可在ARM架構(gòu)的電腦上安裝,但是安裝包中沒有ARM架構(gòu)的二進制程序,因此安裝后不能運行。
龍芯LoongArch架構(gòu)的CPU可高效地翻譯運行x86架構(gòu)的應用程序,目前在UOS/Loongnix系統(tǒng)中已經(jīng)內(nèi)置二進制翻譯功能,支持龍芯3A5000、3B5000、3C5000等最新型號,因此基于龍芯3A5000的電腦也能安裝和運行Mathematica。
只是因為Mathematica的啟動腳本程序不能識別LoongArch架構(gòu),在安裝后需要進行一些簡單的修改。下面我將詳細說明在龍芯3A5000電腦,UOS專業(yè)版系統(tǒng)上安裝和運行Mathematica 12.3.1版的過程。
下載Mathematica 12.3.1的Linux(x86)版本
在第三方下載網(wǎng)站很難找到Mathematica的Linux版本,因此需要到官方網(wǎng)站進行下載。首先需要在官方網(wǎng)站申請試用、注冊賬號,然后郵箱中會收到驗證郵件。完成帳號驗證之后,再回到下面的頁面登錄,并填寫試用申請表。

然后選擇要試用的版本,點擊“Start Your Trial”。

完成這個流程就能得到下載地址,以及15天試用期的激活序列號。下載頁面的地址還會被發(fā)送到注冊時使用的郵箱中,任何時候都可以重新下載。

上圖中的產(chǎn)品名帶(CN)后綴的下載服務器是在境內(nèi),下載速度更快,文件與不帶(CN)的沒有區(qū)別。選擇Linux版本,下載得到的是一個文件名為
Mathematica_12.3.1_Chinese_LINUX_CN.sh的文件。在安裝之前可以校驗一下文件MD5值是否正確,用md5sum命令得到文件的MD5校驗值:

在龍芯3A5000上安裝Mathematica 12.3.1
龍芯3A5000運行x86架構(gòu)的程序需要使用龍芯開發(fā)的LATX軟件,UOS中現(xiàn)在集成的是1.1.1-alpha3版,這個版本還不能運行Mathematica 12,需要安裝龍芯中科幾天前發(fā)布的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,以管理員權(quán)限運行,否則會有一些(可有可無的)小程序不能順利安裝。

安裝程序首先會校驗文件并解壓出一些安裝所需的臨時文件,然后要求輸入安裝路徑。它默認的/usr/local……文件夾在系統(tǒng)分區(qū),需要管理員權(quán)限,并且UOS默認給系統(tǒng)分區(qū)劃分的空間比較小,因此最好輸入自定義的安裝路徑,在安裝程序詢問是否創(chuàng)建文件夾時回答y。

最下方的安裝進度不能實時顯示,需要耐心等待一段時間。在x86的電腦上也是這樣,進度不動與二進制翻譯無關。大約14分鐘后進入下一步,安裝耗時與主流中端電腦差距不大(AMD R5-2600相同步驟耗時約11分鐘),大概因為安裝程序大部分是腳本調(diào)用本機程序解壓文件,不需要二進制翻譯。
下一個步驟也要求輸入路徑,將會在路徑中創(chuàng)建一些指向Mathematica 啟動腳本的鏈接文件,以便于從命令行啟動Mathematica。然后會安裝一個簡化的Mathematica命令行版本,便于在沒有GUI的時候也可以完成一些工作。這里如果不使用默認的路徑,那么在命令行下使用時就不會太方便,因此如果有管理員權(quán)限,就直接按下回車。

如上圖所見,命令行版本的“WolframScript”安裝失敗。這不是二進制翻譯的問題,或者說這不是一個問題。因為WolframScript是使用一個單獨的deb文件進行安裝,這個deb文件標識自身支持x86(AMD64)架構(gòu),于是安裝器認為與本機架構(gòu)LoongArch64不符,就不給安裝。暫時先跳過它吧,我想很快就能找到解決方案,如果能在LoongArch架構(gòu)的3A5000電腦上直接安裝x86(AMD64)的deb安裝包,又可以再水幾千字。
運行安裝好的Mathematica 12.3.1
Mathematica 12安裝完成之后,在開始菜單中已經(jīng)可以找到,但此時還不能運行。原因是Mathematica 12是使用一個腳本程序啟動,而這個腳本程序不認識LoongArch64架構(gòu)。需要對這個腳本程序稍作修改,添加對LoongArch64架構(gòu)的支持。
開始時我沒有看啟動腳本的代碼,而是直接去運行Mathematica 12的二進制程序,結(jié)果提示Qt初始化失敗。當時我以為是因為LATX中還沒有提供x86 Linux的Qt庫,然而是我烏龍了。Mathematica 12是自己打包了所需的各種庫文件,啟動腳本的功能就是設置運行時的庫搜索路徑,腳本中根據(jù)架構(gòu)來拼合庫的路徑,不過實際能支持的只有x86_64架構(gòu),并沒有其它架構(gòu)二進制程序和庫。因此需要修改啟動腳本,讓它在LoongArch架構(gòu)的CPU上也使用x86_64的程序。要修改的文件都在下面:

上圖中以不同顏色分組的文件,每一組文件內(nèi)容都是相同的,只是文件名不一樣,是起到“別名”的作用。因此需要修改的文件只有3個,其它的只需復制粘貼。這些文件的圖標上帶鎖,是因為安裝時使用了管理員權(quán)限,我們可以先修改這些文件的權(quán)限,也可以在管理員權(quán)限下去修改文件內(nèi)容。
一個一個來,先改mcc這個文件。可以看到文件中是調(diào)用“uname -m”取得CPU架構(gòu)名稱,再根據(jù)不同的架構(gòu)名稱設置一個字符串值,后面會使用這字符來組合要運行的二進制程序路徑。因為龍芯3A5000電腦已經(jīng)使用LATX兼容了x86應用程序,所以對文件的修改就很簡單。只需要復制“x86_64”這個分支,再把“x86_64”改成“l(fā)oongarch64”即可。如下圖,左邊是修改之前的,右邊是修改之后的:

其它的文件也如法炮制,下圖是math、MathKernel、wolfram、WolframKernel這幾個文件的修改:

最后是mathematica和Mathematica這兩個文件。啟動主程序的腳本就是這兩個,只修改這兩個也可以。

上面的文件修改完成之后,就可以從開始菜單中點擊運行Mathematica 12了,也可以在終端窗口中輸入“mathematica”啟動。

暫時推薦在終端窗口輸入mathematica”啟動,因為我測試時從開始菜單中打開總會卡死在啟動界面,而從終端窗口中啟動則總是正常。這是一個很奇怪的bug,我不確定這是不是我這臺電腦特有的毛病,也許LATX的下一個版本就沒問題了。從去年11月LATX發(fā)布第一個版本至今4個月時間,LATX翻譯運行x86程序的效率、穩(wěn)定性、兼容性等各方面的進步切切實實看得見。很多以前不能運行的程序現(xiàn)在可以運行了,以前能夠運行的程序現(xiàn)在更加流暢了。
Mathematica 12首次運行要求注冊,點擊“在線激活”,再輸入上面申請試用得到的試用序列號即可。

15天的試用期顯然無法滿足非專業(yè)人員長期又間斷的使用需求,又不是每天都用。因此作為學習和測試等非商業(yè)用途的話,可以用一些福利程序得到可長期使用的激活序列號。這樣的福利程序在也是可以通過LATX運行的,因為它們一般是Windows版的程序,所以需要安裝wine。安裝wine和運行Windows程序的方法請見:《包教包會:龍芯3A5000上運行任意Windows軟件》。
如下圖所示,獲得非官方序列號的程序在3A5000和UOS上也可以運行。先點擊“產(chǎn)品激活”窗口上的“手動激活”,再按圖所示進行操作就可以長期使用Mathematica 12。僅限于學習和測試等非商業(yè)用途哦,所需的第三方工具請自行尋找。

現(xiàn)在已經(jīng)在龍芯3A5000上成功安裝運行了Mathematica 12,最后再抄幾段代碼繪制一些2D/3D圖形來測試功能,做到有始有終。

