本文主要介紹如何在Linux環境下安裝MATLAB分布式計算引擎。
現 代計算機仿真技術對計算機硬件的需求和實際上已經停滯不前的CPU主頻之間的矛盾日漸突出。相應推出的硬件解決方案無外乎多核、多處理器技術以及GPU技 術。我們將在以后的文章中討論如何進行多核和多處理,或者GPU的程序設計。當單機的仿真模式也不能滿足我們的計算需求的時候,我們只能求助於 MATLAB分布式計算。所謂的MATLAB分布式計算指的是利用客戶端服務器模型,客戶端提交計算需求,服務器負責調度、分配任務、控制計算過程以及回 收和合並計算結果的計算模式。MDCS和MATLAB客戶端的關系如下圖所示:
不 同於一般單機版本的MATLAB,分布式計算的MATLAB是有一個調度節點和很多計算節點組成的。每個節點都需要通過某種方式去獲取相應的 license,MATLAB的MDCS(MATLAB Distributed Computing Server)采用了license manager的方式管理各個節點的license授權。每個MATLAB worker啟動之前也需要去license manager處獲取相應的分布式計算的license。
這里我們需要區分4種MDCS相關的概念:
- 客戶端 (client):指的是操作MATLAB的桌面計算機或者筆記本電腦,這個機器上需要安裝各自的單機或者concurrent的license,每個MATLAB只配備已經購買的toolbox。
- 調度節點(scheduler): 指的是負責管理所有計算節點的計算機,是客戶端接入的接口,可以參與計算,也可以不參與,但是一定需要安裝MDCS。
- 計算節點(worker): 負責計算的節點,需要安裝MDCS。
- license manager: 這個可以是管理license的節點,可以和其他計算節點重合,也可以獨立於計算節點。只需要安裝license manager。
本文假設了兩個環境變量:
- $MATLABROOT: MATLAB的安裝目錄
- $LICENSEROOT: License Manager 的安裝路徑
本文介紹的是讓license manager獨立於MATLAB其他節點的安裝。如果你想簡單一點,可以把license manager和某個節點直接安裝到一起,參考下面內容自己發揮:)
1. 系統安裝要求
切記,MATLAB的運行依賴於glibc的版本為2.7版本,如果你的操作系統比較老,安裝前請提前升級。當然也不是沒有辦法繞過去,但是不能保證在運算的過程中不出錯。具體方法請上google查詢 libc 2.7 相關內容。
另外,license manager需要依賴於一些基礎的linux包,在ubuntu或者debian中叫 lsb-base (Linux Standard Base),請提前安裝。
2. License Manager的安裝方法
- 從MathWorks服務器上獲取對應服務器MAC地址的license文件
- 運行MATLAB安裝程序
- 選擇 install without using the Internet

- 輸入FIK安裝序列號
- 選擇安裝license manger

- 指定license 文件的位置

- 安裝完成! 恭喜走到了第一步!
- 提前打擊一下,這是所有安裝過程中最簡單的一步,也是最不容易出錯誤的一步,嘿嘿……
3. License manager的配置
到目前為止,我們只是完成了基本的安裝過程, 還需要對license manager進行進一步的配置,使計算機重啟的時候能夠自動運行相應的license manger,不需要每次手工啟動license manager。
- 啟動license manager daemon
1>> $LICENSEROOT/etc/lmstart如果你使用的是64 bits 的debian/ubuntu操作系統,可能會出現找不到 /lib64/libc.so.6的錯誤,這是不同的linux發行版本決定的,其實ubuntu並不是MathWorks的官方支持的linux發行版 本。可以使用符號鏈接來解決這個問題:
1>>sudoln–s/lib/x86-64-linux-gnu/libc.so.6/lib64/libc.so.6 -
當系統重啟時,需要手動啟動license manager。接下來的符號鏈接目的是讓系統啟動的時候,自動啟動license manager。
建立符號鏈接 (需要root權限)12>>sudoln-s $LICENSEROOT/etc/lmboot/etc/lmboot_TMW# 啟動>>sudoln-s $LICENSEROOT/etc/lmdown/etc/lmdown_TMW# 停止 - 加入自動啟動隊列 (需要root權限)
For Debian or SUSE:
1>>sudocp$MATLABROOT/etc/flexnet.boot.linux/etc/init.d/flexnet
For Redhat or Fedora Core:
1>>sudocp$MATLABROOT/etc/flexnet.boot.linux/etc/rc.d/init.d/flexnet - 編輯/etc/init.d/flexnet 或者 /etc/rc.d/init.d/flexnet,替換文件里的 CHANGE_USER_NAME 為一個非 root用戶名(自己建一個用戶名),這是因為MATLAB不允許以 root 權限運行license manager。
- 創建符號鏈接,讓license manager 在系統啟動的時候自動啟動:
For debian:
12>>cd/etc/rc5.d>>sudoln-s ../init.d/flexnetS90flexnet
For Redhat or Fedora Core:
12>>cd/etc/rc.d/rc5.d>>sudoln–s ../init.d/flexnetS90flexnet
For SUSE:
12>>cd/etc/init.d/rc5.d>>sudoln–s ../flexnetS90flexnet -
1
配置完成! 恭喜你,第二步也成功搞定:)
4. 計算節點的安裝
運算節點的安裝和單機或者concurrent的MATLAB的安裝方法類似,需要注意一下幾點:
- 需要在每一個需要運行MATLAB的計算節點上安裝MATLAB。務必選擇“install without using the Internet”選項,參考license 安裝部分。
- 需要選擇除了license manager之外的全部工具箱,這是因為MDCS可以支持不同的客戶端的工具箱配置。
- 序列號FIK和您安裝license manager所使用的FIK相同,包含全部的工具箱。
- license文件可以選擇license manager自動生成的license文件或者自己手動編輯一個,格式如下:
12SERVER <HOST ID> <HOST MAC ADDRESS> 27000USE_SERVER - 安裝完成的MATLAB是無法啟動圖形界面的,可以使用一下方法測試是否成功安裝計算節點的MATLAB。
1>> $MATLABROOT/bin/matlab-dmlworker -nodisplay -rexit
如果顯示如下信息,表示安裝已經成功。
5. 常見錯誤
MATLAB分布式計算引擎的安裝一般都是源自於網絡的配置問題。在分布式引擎被調用的時候,客戶端節點會和引擎所在的調度節點進行通信,並通過機 器名字來判斷具體的IP地址。所以,DNS能夠正確解析客戶端和服務器端的機器名字非常重要,尤其是客戶端是windows,cluster是linux 的時候,這個問題發生的概率更高。請大家在安裝配置的時候一定要提前測試網絡的互通性。有問題可以聯系MathWorks的技術支持。
6. TODO
我們的基本安裝到此為止算是完成了,后續的問題就是涉及到如何配置MDCS和管理節點。我將會在后續的文章中給大家講解。
MATLAB的分布式計算有幾種可能的配置方法,一般需要根據自己的需要來選擇其中一種,可支持的類型如下:
- Job Manager
- HPC Server
- 第三方的調度器通用調度器
- PBS Pro
- Platform LSF
- TORQUE
其中,Job Manager是MDCS自帶的調度器,如果你的cluster中沒有其他的分布式計算任務,而是專門用來進行MATLAB分布式計算的,建議選擇Job Manager來管理你的計算任務。我會優先介紹Job Manager的配置和管理。如果你的MDCS是和其他分布式程序共同運行在一個cluster中,而且自己已經有了調度程序,比如TORQUE,可以選 擇第三方的調度器的配置方法。不管選取那種調度方法,安裝的部分都是相同的,就是本文涉及的內容。
如果你的cluster平台是windows那就更簡單了,自己參考安裝手冊吧![]()
原文點擊這里

