Matlab并行计算方法(补充)

一、说明

       前一阵子我在简书上发布了有关matlab的并行计算方法之后(Matlab并行计算方法(下)),大家对这个方式有不少疑问,实际在运行过程中还是问题不断,那么在这里我会把一些运行时必要步骤补上,供大家参考。

       在之前的那个操作中,基本的matlab主程序编写方式已经没问题了,如果是自己的台式机直接点击F5运行就好了,这里主要是探讨在服务器上运行的一些问题。

二、实际操作

2.1、作业脚本

       首先还是要申明一下,在服务器上运行matlab程序时,必须要使用作业脚本来指定计算节点与核心数量,如果不指定,那么程序的运行就会在login node上,这样,虽然也可以并行计算,但是一来你所使用的核心数量有限,二来在login node上保存着用户的数据,运行程序很容易出现一些问题,对服务器不好。

       作业脚本文件其实不难写,我这里提供一个范例(注意我这儿的服务器上采用的是PBS作业调度系统,其他的调度系统,比如LSF调度系统等等也是类似的,可自行上网搜索):

 #!/bin/sh -x
 #PBS -q batch 
 #PBS -l nodes=c1:ppn=10
 #PBS -N CodeName
 #PBS -l walltime=100:00:00 
 #PBS -o print_file 
 #PBS -e error_file
 #PBS -M xxxx@xx.com 
 
 cd $PBS_O_WORKDIR
 date
 hostname
 matlab -nosplash -nodesktop -r "parrlleComputing;exit"  
 date

       这里第一行是解释执行这个shell文件,是必须使用的,后面紧跟的那些#PBS都是在指定一些关键的参数,具体来说:

  • -q batch指服务器的队列类型

  • nodes = c1:ppn = 10就是在计算节点c1上使用10个核心,这几个参数可以自己调整,但是记得和你的主程序中的cpu_code保持一致,详情请参考:Matlab并行计算方法(下)

  • CodeName是你的程序提交上去之后,你每次查询时出现的名称,这个可以自己任意定

  • walltime是你指定的程序的最大运行时间,填的大一些就好了

  • print_file、error_file是你每次提交任务之后,任务的运行情况输出,如果有错误,直接vim查看这两个文件就可以查找错误

  • 最后一行是你的邮箱地址,意思就是让程序执行完之后把消息发送到你的邮箱里,这个可填可不填


接下来就是最重要的程序执行语句:

  • 第13行中,请大家注意,服务器的matlab命令未必已经添加到环境变量中,我这里已经添加过了,若是未添加,可以使用命令which matlab查询绝对路径,然后把上述的matlab命令补全路径即可。

  • 这一行中,只需要改动最后的parrlleComputing为你自己的matlab主程序的名称即可,记住:要引号,不要后缀.m!

       总的来说,基本上,只要复制这段代码,然后修改第3、4、8、13行就可以了。

2.2、查看服务器上的空闲核心

       你要尽快出结果,就最好是要用别人没有占用的核心,也就是空闲的核心,这里也提供一个简单范例

       首先用远程工具登录自己的服务器账号,见:Windows和Ubuntu之间建立远程连接的客户端简介,登录之后,输入命令:pbsnodes查看核心的情况,

服务器核心查询

       如图可见,这里计算节点c1、c2、c3都是state = job-exclusive的状态,也就是有人在用,又注意到c4free的状态,那么就可以直接使用计算节点c4来计算,不过要小心哦,c4虽然显示state = free,但是如果你仔细观察,会发现其实上面有些核心以及有人在用了,换句话说,你只能用这个计算节点上剩下的核心,做一个简单的数学运算:总核心数np=24减去有人在用的核心数jobs = 17/6779....,也就是有6个被占用了,那么就是24-6=18个还空闲可用,那你就可以直接使用这些节点啦!只需要在脚本中第13改成nodes=c4:ppn=18即可,注意不需要指定具体的核心编号,这个是自动分配的,首先使用的是空闲的核心。

       另外,如果觉得出现的内容太多眼花缭乱,也可以先使用命令pbsnodes -l all查看计算节点的整体状态,然后再去细看空闲的计算节点。

2.3、提交作业脚本

       修改完之后,把文件保存为.sh或者.pbs格式文件,实测都是可以的,比如可以保存为:matlab.sh,然后将这个脚本文件和你的matlab文件以及数据等等所有需要的的东西全部上传到服务器的一个文件夹底下,譬如maltab parrllel computing。之后,在远程命令行界面输入命令qsub matlab.sh就能提交文件,系统会自动给你分配一个任务编号,到这里任务就完成了,可以开始干其他事情啦!

       担心自己的任务是否提交,可以使用命令qstat -a来查询任务的运行状态.

       提交程序之后,发现问题,想要取消自己已经在运行的程序,可以使用命令:qdel + 你的任务编号来取消提交的任务。

       运行结束之后,从文件夹底下提取你需要的数据即可!

       以上就是对之前的一些问题解答,若还有问题,请大家积极留言,我会尽力回答。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342