|
[今年上半年我们学校的国家重点实验室架设了一组集群服务器,通过申请我拿到了一个账户,开始慢慢了解集群服务器]
集群服务器是为了解决单个服务器计算能力有限的问题,把多台服务器并联成一组服务器,然后通过管理软件,实现同时在多台服务器上运行程序,达到成倍提高计算能力的目的。
我们学校的集群服务器是由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命令。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-28 06:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社