热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab分布式并行计算,基于Matlab的分布式计算一些心得

由于算法计算量太大,电脑单核的计算能力已经无法满足我的需求,于是我考虑用并行计算,使用matlab中提供的local调度器,

由于算法计算量太大,电脑单核的计算能力已经无法满足我的需求,于是我考虑用并行计算,使用matlab中提供的local调度器,配和parfor语句,很方便的在一台服务器上实现了8核并行计算,但是很快,我觉得光用一台电脑跑太有限,8核已经很高,而且local调度器上限是有的,现在好像最高12个线程。于是我转而考虑使用分布式计算。matlab提供一个jobmanager调度器,支持一个几十台电脑的小规模计算机集群。一些基本的,按部就班的东西我这里就不说了,看看说明就能懂,我想趁热打铁,把一些容易使人迷茫,出错的地方记录下来。

一、认真看matlab的帮助,特别是链接,一定要看,网页帮助要比本地帮助全很多。

网页帮助中有个pdf文件,会教你如何一步一步使用各种调度器建立计算机集群,这个文件在2011a的帮助中有。之前看的的2008b中没有。

二、matlab中jobmanager调度器所支持的架构

在一个计算机集群(本文中的计算机集群特指基于jobmanager调度器的计算机集群)中,存在三种角色的电脑,一种是cluster,一种是jobmanager,另一种是client。我现在的情况是这样,一台电脑充当cluster、jobmanager和client角色,其他电脑则只扮演cluster,所有电脑通过以太网协议连接。

cluster中通常跑上几个worker,数量一般和cup的核数一样,worker的任务就是完成jobmanager分配给他的计算任务。理论上这些个worker可以在jobmanager上远程建立和销毁。

jobmanager其实就是计算机上跑的一个程序,他管理用户预先设置好的,可以并行计算的任务。我目前发现,计算机集群是一个动态的系统,他是可以动态添加和删除集群中的计算机的。在任务执行期间,是可以添加新的cluster的,这个我试过,删除没试过,我认为应该是可以的,要不然要调度器干嘛。

client就是用户程序所在电脑。程序需要寻找网络中可用的jobmanager,创建任务队列等等。

三、如何节约通信带宽

分布式计算是需要通信支持的,如果每个任务需要同步的数据(包括代码)太多,就挺浪费时间的。最好的办法就是在开启worker之前,先将需要使用的代码数据等都同步到每台cluster上,设置好path,记住,一定是在work打开之前做好同步工作,不然work使用的path是同步之前的路径,无法使用同步好的数据和代码。当然work是可以重启的。如果忘了这个关键的步骤,只能等到程序出错了才知道什么情况,这个代价太大。我现在使用的方法是在每个cluster上,把需要使用的第三方工具都事先安装好,而我经常需要改写的代码则是在任务开启前同步过去的,同步通常需要40s钟时间。代码同步过去之后,每次启动一个任务,只需要同步一个代码所在的path,这个数据量是很少的。

四、练手

如果手头么有建好的计算机集群,那就只能自己建了。如果上来就弄一堆电脑,接网线,上交换机,会有很多不确定因素。我建议先用一台电脑练手。也就是一台电脑扮演cluster、jobmanager以及client角色。 使用127.0.0.1地址寻找本台计算机。

五、其他

有些东西是需要牢记心里的。集群中的电脑matlab版本必须一样,操作系统版本无所谓,第三方工具要在worker开启前就装好,防火墙要小心设置,如果闲麻烦就直接关掉得了。最好的方法是进本地连接的属性的高级选项卡,里面有个关于防火墙的选项,从这里关防火墙最好。 有些杀毒软件会在计算机进入屏保时启动杀毒,这个会抢占计算机资源,是要关掉的。

以上只是个人一些经验总结,不对之处请大家多多指正。我刚起步的时候也是苦于没有方便的文献能够快速入门。我觉得大家可以多多补充,丰富这方面的内容。



推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • B站服务器故障影响豆瓣评分?别担心,阿里巴巴架构师分享预防策略与技术方案
    13日晚上,在视频观看高峰时段,B站出现了服务器故障,引发网友在各大平台上的广泛吐槽。这一事件导致了连锁反应,大量用户纷纷涌入A站、豆瓣和晋江等平台,给这些网站带来了突如其来的流量压力。为了防止类似问题的发生,阿里巴巴架构师分享了一系列预防策略和技术方案,包括负载均衡、弹性伸缩和容灾备份等措施,以确保系统的稳定性和可靠性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
author-avatar
懒得张开眼睛看你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有