李雷廷的个人博客分享 http://blog.sciencenet.cn/u/llt001

博文

集群服务器使用体验

已有 3389 次阅读 2015-10-23 12:48 |系统分类:科研笔记

[今年上半年我们学校的国家重点实验室架设了一组集群服务器,通过申请我拿到了一个账户,开始慢慢了解集群服务器]

集群服务器是为了解决单个服务器计算能力有限的问题,把多台服务器并联成一组服务器,然后通过管理软件,实现同时在多台服务器上运行程序,达到成倍提高计算能力的目的。

我们学校的集群服务器是由10多个节点构成,每个节点包含16核CPU,64G内存,计算能力可观。不过对我而言,更重要的是怎么用。

首先,集群服务器是可以当作若干个独立服务器来使用的,可以完全无视它们是一个集群。然后在每个节点上单独运行程序。这是刚开始使用集群服务器,还不了解bsub的用法时,我采取的策略。

正常的集群服务器使用方法是提交任务到任务管理系统,任务管理系统会在系统存在空闲资源时运行你的程序,否则就处于等待状态。任务管理系统是可以将你的任务分配到多个节点上。

提交任务的方法是bsub后面跟上要运行的程序,比如

bsub muscle -in input.fasta -out output.fasta

当然,bsub有很多参数,功能强大,只是内容太多,看起来令人头疼。常用的参数包括:

1. -J 跟上任务名称。默认任务名称是bsub提交的命令,往往太长不易阅读,用-J加上简短任务名称更好一些

2. -n 设定请求的CPU数量,bsub管理系统会根据请求分配CPU数量。

3. -cwd 设定程序运行的当前目录,感觉这个参数还是很必要的。

4. -o 程序运行输出文件

5. -e 程序运行错误输出文件

比如

bsub -J test -n 16 -cwd /path/to/test/ -o /path/to/test/stdout.txt -e /path/to/test/stderr.txt COMMANDS

在我运行一些程序后,发现一个奇怪的现象,程序输出到STDOUT的结果最后会写到-e 文件中,而不是-o 文件中,不知为何。

另外,如果需要查看有哪些任务正在运行,以及有哪些任务在等待运行,可以用bjobs命令。

如果要查看各个节点的负载情况,可以用lsload命令。



https://blog.sciencenet.cn/blog-656335-930324.html

上一篇:grep -c 用于过滤统计
下一篇:模仿一个人是对他的最高奖赏
收藏 IP: 218.2.227.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的精选博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 10:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部