zoukankan      html  css  js  c++  java
  • 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那就更简单了,自己参考安装手册吧微笑

    原文点击这里

  • 相关阅读:
    [PHP] ::class的具体作用
    [linux] 查看所有的系统用户
    [PHP] composer install和composer update的区别
    [PHP] 解决composer install报错: it could not be found in any version, there may be a typo in the package name
    [git] git中origin的含义
    [git] 打标签命令
    [git] git clone指定分支代码
    [git]git中分支的概念
    [PHP] 对象和引用
    [正则]正则表达式里面的?: ?! ?= ?<=
  • 原文地址:https://www.cnblogs.com/ymy124/p/2318062.html
Copyright © 2011-2022 走看看