版权声明:本文为博主原创文章,版权均归本人所有,任何人或团体、机构全部转载或者部分转载、摘录,请保留本博客链接或标注来源。博客地址:https://blog.youkuaiyun.com/qq_31285709/article/details/87913533
一、引言
这一篇也是拖了挺久的才更新完。18年9月刚刚摸实验室服务器的时候,学长那边正好要跑MATLAB程序。后来学习了如何在服务器上安装MATLAB ,利用MATLB自带的并行计算工具在一台服务器上跑。但是感觉光用一台服务器的计算资源程序还是跑得不够快,于是想怎么样可以把可用的五台服务器给用上。调研了发现MATLAB自带的分布式计算引擎(Matlab Distributed Computing Engine,MDCE)服务可以调用这五台服务器的计算资源进行分布式并行计算。
接下来就探索如何在多台Linux(Ubuntu16.4)系统下搭建Matlab分布式计算引擎服务(MDCE)集群,由于网上关于Linux系统下搭建MDCE的教程比较少,我把自己搭建的过程向大家介绍一下。
二、介绍
关于Matlab分布式计算引擎服务的原理网上挺多资料的,主要参照官方文档理解。
https://ww2.mathworks.cn/products/distriben.html
https://ww2.mathworks.cn/products/parallel-computing.html
这个视频也把原理介绍得很清楚:
https://ww2.mathworks.cn/videos/cluster-computing-with-matlab-for-system-administrators-99076.html
官方:
利用 MATLAB Distributed Computing Server™,可以在计算机集群、云上运行计算密集型 MATLAB® 程序和 Simulink® 模型。您可以在多核电脑上、运用 Parallel Computing Toolbox™ 开发程序或模型,然后在 MATLAB Distributed Computing Server 上运行开发的程序或模型,从而扩展到多台计算机。该服务器支持批处理作业、并行计算以及分布式大数据。该服务器包括内置集群作业调度器,并为常用第三方调度器提供支持。
其他博客:
Distributed Computing Toolbox就是分布式计算工具箱,简称DCT,其可以在多台计算机组成的Cluster中实现分布式或并行式计算。简单来说,我们是把一个很繁重的工作,分解成许多小任务,然后分给不同的计算机去处理,最后把计算结果汇总,以达到提高计算效率的目的。
Matlab的做法是这样的:在每台参与计算的计算机中启动一个叫Matlab Distributed Computing Engine的服务,该服务能启动参与计算的worker的Matlab session和管理各台计算机workers的job manager。Job manager对workers进行管理,给workers分配计算任务,接收workers计算后的结果。而你本人就是client,你要把你的工作分解为多个任务,