Linux環境下安裝MATLAB分布式計算引擎


本文主要介紹如何在Linux環境下安裝MATLAB分布式計算引擎。

現 代計算機仿真技術對計算機硬件的需求和實際上已經停滯不前的CPU主頻之間的矛盾日漸突出。相應推出的硬件解決方案無外乎多核、多處理器技術以及GPU技 術。我們將在以后的文章中討論如何進行多核和多處理,或者GPU的程序設計。當單機的仿真模式也不能滿足我們的計算需求的時候,我們只能求助於 MATLAB分布式計算。所謂的MATLAB分布式計算指的是利用客戶端服務器模型,客戶端提交計算需求,服務器負責調度、分配任務、控制計算過程以及回 收和合並計算結果的計算模式。MDCS和MATLAB客戶端的關系如下圖所示:

Image(4)
不 同於一般單機版本的MATLAB,分布式計算的MATLAB是有一個調度節點和很多計算節點組成的。每個節點都需要通過某種方式去獲取相應的 license,MATLAB的MDCS(MATLAB Distributed Computing Server)采用了license manager的方式管理各個節點的license授權。每個MATLAB worker啟動之前也需要去license manager處獲取相應的分布式計算的license。

這里我們需要區分4種MDCS相關的概念:

  1. 客戶端 (client):指的是操作MATLAB的桌面計算機或者筆記本電腦,這個機器上需要安裝各自的單機或者concurrent的license,每個MATLAB只配備已經購買的toolbox。
  2. 調度節點(scheduler): 指的是負責管理所有計算節點的計算機,是客戶端接入的接口,可以參與計算,也可以不參與,但是一定需要安裝MDCS。
  3. 計算節點(worker): 負責計算的節點,需要安裝MDCS。
  4. license manager: 這個可以是管理license的節點,可以和其他計算節點重合,也可以獨立於計算節點。只需要安裝license manager。

 

本文假設了兩個環境變量:

  1. $MATLABROOT: MATLAB的安裝目錄
  2. $LICENSEROOT: License Manager 的安裝路徑

本文介紹的是讓license manager獨立於MATLAB其他節點的安裝。如果你想簡單一點,可以把license manager和某個節點直接安裝到一起,參考下面內容自己發揮:)

 

1. 系統安裝要求

Image

切記,MATLAB的運行依賴於glibc的版本為2.7版本,如果你的操作系統比較老,安裝前請提前升級。當然也不是沒有辦法繞過去,但是不能保證在運算的過程中不出錯。具體方法請上google查詢 libc 2.7 相關內容。

 

另外,license manager需要依賴於一些基礎的linux包,在ubuntu或者debian中叫 lsb-base (Linux Standard Base),請提前安裝。

 

2. License Manager的安裝方法

  1. 從MathWorks服務器上獲取對應服務器MAC地址的license文件
  2. 運行MATLAB安裝程序
  3. 選擇 install without using the Internet
    Image(1)
  4. 輸入FIK安裝序列號
  5. 選擇安裝license manger
    Image(2)
  6. 指定license 文件的位置
    Image(3)
  7. 安裝完成! 恭喜走到了第一步!
  8. 提前打擊一下,這是所有安裝過程中最簡單的一步,也是最不容易出錯誤的一步,嘿嘿……

 

3. License manager的配置

到目前為止,我們只是完成了基本的安裝過程, 還需要對license manager進行進一步的配置,使計算機重啟的時候能夠自動運行相應的license manger,不需要每次手工啟動license manager。

  1. 啟動license manager daemon
    ?
    1
    >> $LICENSEROOT/etc/lmstart

    如果你使用的是64 bits 的debian/ubuntu操作系統,可能會出現找不到 /lib64/libc.so.6的錯誤,這是不同的linux發行版本決定的,其實ubuntu並不是MathWorks的官方支持的linux發行版 本。可以使用符號鏈接來解決這個問題:

    ?
    1
    >> sudo ln –s /lib/x86-64-linux-gnu/libc.so.6 /lib64/libc.so.6
  2. 當系統重啟時,需要手動啟動license manager。接下來的符號鏈接目的是讓系統啟動的時候,自動啟動license manager。
    建立符號鏈接 (需要root權限)

    ?
    1
    2
    >> sudo ln -s $LICENSEROOT/etc/lmboot /etc/lmboot_TMW   # 啟動
    >> sudo ln -s $LICENSEROOT/etc/lmdown /etc/lmdown_TMW   # 停止
  3. 加入自動啟動隊列 (需要root權限) 
    For Debian or SUSE:
    ?
    1
    >> sudo cp $MATLABROOT/etc/flexnet.boot.linux /etc/init.d/flexnet

    For Redhat or Fedora Core:
    ?
    1
    >> sudo cp $MATLABROOT/etc/flexnet.boot.linux /etc/rc.d/init.d/flexnet
  4. 編輯/etc/init.d/flexnet 或者 /etc/rc.d/init.d/flexnet,替換文件里的 CHANGE_USER_NAME 為一個非 root用戶名(自己建一個用戶名),這是因為MATLAB不允許以 root 權限運行license manager。
  5. 創建符號鏈接,讓license manager 在系統啟動的時候自動啟動:
    For debian:
    ?
    1
    2
    >> cd /etc/rc5.d
    >> sudo ln -s ../init.d/flexnet S90flexnet

    For Redhat or Fedora Core:
    ?
    1
    2
    >> cd /etc/rc.d/rc5.d
    >> sudo ln –s ../init.d/flexnet S90flexnet

    For SUSE:
    ?
    1
    2
    >> cd /etc/init.d/rc5.d
    >> sudo ln –s ../flexnet S90flexnet
  6. ?
    1
    配置完成! 恭喜你,第二步也成功搞定:)

 

4. 計算節點的安裝

運算節點的安裝和單機或者concurrent的MATLAB的安裝方法類似,需要注意一下幾點:

  1. 需要在每一個需要運行MATLAB的計算節點上安裝MATLAB。務必選擇“install without using the Internet”選項,參考license 安裝部分。
  2. 需要選擇除了license manager之外的全部工具箱,這是因為MDCS可以支持不同的客戶端的工具箱配置。
  3. 序列號FIK和您安裝license manager所使用的FIK相同,包含全部的工具箱。
  4. license文件可以選擇license manager自動生成的license文件或者自己手動編輯一個,格式如下:
    ?
    1
    2
    SERVER <HOST ID> <HOST MAC ADDRESS> 27000
    USE_SERVER
  5. 安裝完成的MATLAB是無法啟動圖形界面的,可以使用一下方法測試是否成功安裝計算節點的MATLAB。
    ?
    1
    >> $MATLABROOT/bin/matlab -dmlworker -nodisplay -r exit

    如果顯示如下信息,表示安裝已經成功。
    image

 

5. 常見錯誤

MATLAB分布式計算引擎的安裝一般都是源自於網絡的配置問題。在分布式引擎被調用的時候,客戶端節點會和引擎所在的調度節點進行通信,並通過機 器名字來判斷具體的IP地址。所以,DNS能夠正確解析客戶端和服務器端的機器名字非常重要,尤其是客戶端是windows,cluster是linux 的時候,這個問題發生的概率更高。請大家在安裝配置的時候一定要提前測試網絡的互通性。有問題可以聯系MathWorks的技術支持。

 

6. TODO

我們的基本安裝到此為止算是完成了,后續的問題就是涉及到如何配置MDCS和管理節點。我將會在后續的文章中給大家講解。

 

MATLAB的分布式計算有幾種可能的配置方法,一般需要根據自己的需要來選擇其中一種,可支持的類型如下:

  1. Job Manager
  2. HPC Server
  3. 第三方的調度器通用調度器
    1. PBS Pro
    2. Platform LSF
    3. TORQUE

其中,Job Manager是MDCS自帶的調度器,如果你的cluster中沒有其他的分布式計算任務,而是專門用來進行MATLAB分布式計算的,建議選擇Job Manager來管理你的計算任務。我會優先介紹Job Manager的配置和管理。如果你的MDCS是和其他分布式程序共同運行在一個cluster中,而且自己已經有了調度程序,比如TORQUE,可以選 擇第三方的調度器的配置方法。不管選取那種調度方法,安裝的部分都是相同的,就是本文涉及的內容。

 

如果你的cluster平台是windows那就更簡單了,自己參考安裝手冊吧微笑

原文點擊這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM