使用SLURM運(yùn)行Hic-Pro

由于最近工作失誤,錯(cuò)誤運(yùn)行了兩次Hic-Pro,由于其中Bowtie2的運(yùn)行相當(dāng)耗時(shí),耽誤了大量的時(shí)間,于是決定安裝一個(gè)SLURM集群系統(tǒng),并行運(yùn)行Hic-Pro,來減少工作時(shí)間。下面對其中遇到的問題進(jìn)行總結(jié),記錄各個(gè)流程中遇到的問題。

安裝SLURM

安裝流程主要參照網(wǎng)上和師兄的教程,SLURM最常遇到的問題就是解決同步問題:Munge的時(shí)間同步和多機(jī)器之間的UID同步。
1、添加用戶jfh
# user add jfh
然后添加sudo權(quán)限

# chmod -v u+w /etc/sudoers
# yum install vim git -y
# vim /etc/sudoers

模仿root用戶的權(quán)限控制加入jfh ALL=(ALL) ALL
然后恢復(fù)sudoers文件的權(quán)限 # chmod -v u-w /etc/sudoers
然后使用用戶jfh進(jìn)行操作 su jfh

2、安裝munge(用于機(jī)器間的通信)
這次安裝還是使用yum install munge munge-devel進(jìn)行安裝的,安裝過程中沒遇到什么問題。以往都是使用編譯安裝包安裝,下載編譯安裝包
安裝依賴 # yum install -y rpm-build rpmdevtools bzip2-devel openssl-devel zlib-devel
然后下載好編譯安裝包后,運(yùn)行:

# rpmbuild -tb --clean munge-0.5.11.tar.bz2
# cd /root/rpmbuild/RPMS/x86_64
# rpm --install munge*.rpm

創(chuàng)建文件夾并修改所有者,這些文件夾大都已經(jīng)創(chuàng)建,可以確認(rèn)一下,

# mkdir /etc/munge
# mkdir /var/run/munge
# mkdir /var/lib/munge
# mkdir /var/log/munge
# chown jfh:jfh /etc/munge
# chown jfh:jfh /var/run/munge
# chown jfh:jfh /var/lib/munge
# chown jfh:jfh /var/log/munge

使用create-munge-key創(chuàng)建密鑰并修改所有者# chown jfh:jfh /etc/munge/munge.key
這個(gè)密鑰要拷貝到其它機(jī)器上,各機(jī)器上的秘鑰要同步。
通過ssh-copy-id實(shí)現(xiàn)各機(jī)器之間的免密登錄,另外,一定要設(shè)置各機(jī)器之間的時(shí)間同步。
檢測munge使用如下命令

munge -n
munge -n | unmunge
munge -n | ssh 10.12 unmunge

3.安裝Slurm
下載編譯安裝包,安裝依賴 # yum install -y readline-devel pam-devel perl-DBI perl-ExtUtils-MakeMaker
之后編譯安裝

# rpmbuild -ta --clean slurm-15.08.13.tar.bz2
# cd /root/rpmbuild/RPMS/x86_64
# rpm --install slurm*.rpm

修改Slurm配置文件

# cp /etc/slurm/slurm.conf.example /etc/slurm.conf
# vim /etc/slurm/slurm.conf

參考配置:

#
# Example slurm.conf file. Please run configurator.html
# (in doc/html) to build a configuration file customized
# for your environment.
#
#
# slurm.conf file generated by configurator.html.
#
# See the slurm.conf man page for more information.
#
ClusterName=SlurmXia
ControlMachine=dell-r730-1
ControlAddr=10.0.0.11
#BackupController=
#BackupAddr=
#
SlurmUser=jfh
#SlurmdUser=root
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
#JobCredentialPrivateKey=
#JobCredentialPublicCertificate=
StateSaveLocation=/var/spool/slurm/ctld
SlurmdSpoolDir=/var/spool/slurm/d
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
#PluginDir=
#FirstJobId=
ReturnToService=0
#MaxJobCount=
#PlugStackConfig=
#PropagatePrioProcess=
#PropagateResourceLimits=
#PropagateResourceLimitsExcept=
#Prolog=
#Epilog=
#SrunProlog=
#SrunEpilog=
#TaskProlog=
#TaskEpilog=
#TaskPlugin=
#TrackWCKey=no
#TreeWidth=50
#TmpFS=
#UsePAM=
# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
#SchedulerAuth=
#SelectType=select/linear
FastSchedule=1
#PriorityType=priority/multifactor
#PriorityDecayHalfLife=14-0
#PriorityUsageResetPeriod=14-0
#PriorityWeightFairshare=100000
#PriorityWeightAge=1000
#PriorityWeightPartition=10000
#PriorityWeightJobSize=1000
#PriorityMaxAge=1-0
#
# LOGGING
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurmd.log
JobCompType=jobcomp/none
#JobCompLoc=
#
# ACCOUNTING
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30
#
AccountingStorageType=accounting_storage/filetxt
AccountingStorageHost=dell-r730-1
AccountingStorageLoc=/opt/slurm/acct
AccountingStoragePass=elwg324
AccountingStorageUser=root
#
# COMPUTE NODES
NodeName=dell-r730-1 NodeAddr=10.0.0.11 CPUs=64 RealMemory=378000 State=UNKNOWN
NodeName=dell-r730-2 NodeAddr=10.0.0.12 CPUs=64 RealMemory=378000 State=UNKNOWN
NodeName=dell-r730-3 NodeAddr=10.0.0.13 CPUs=64 RealMemory=252000 State=UNKNOWN
PartitionName=control Nodes=dell-r730-1 Default=NO MaxTime=INFINITE State=UP
PartitionName=compute Nodes=dell-r730-[1-3] Default=YES MaxTime=INFINITE State=UP

這里面需要注意的就是更改主機(jī)名和各臺機(jī)器的配置,另外需要打開ACCOUNTING中的日志采集,設(shè)置日志存儲為'filetxt'并創(chuàng)建/opt/slurm/acct這個(gè)文件,這樣之后才可以用sacct查看任務(wù)。
運(yùn)行時(shí)控制節(jié)點(diǎn)運(yùn)行

systemctl enable slurmctld
systemctl start slurmctld
systemctl enable slurmd
systemctl start slurmd

計(jì)算節(jié)點(diǎn)運(yùn)行以下即可

systemctl enable slurmd
systemctl start slurmd

4、查錯(cuò)排除問題
使用sinfo查看各機(jī)器是否啟動成功,如果出現(xiàn)問題就查看日志文件

/var/log/slurmctld.log
/var/log/slurmd.log

5、SLURM常見命令

sinfo  ##查看各機(jī)器狀態(tài)
scancel ##取消(刪除)任務(wù)
squeue ##查看隊(duì)列中的任務(wù)
sacct ##查看日志文件
sbatch ##提交batch腳本

在此次安裝中,出現(xiàn)的問題是uid在各臺機(jī)器之間不一致,需要更改為一個(gè)共同的uid,我順帶修改了一個(gè)gid,雖然過程十分的繁瑣,但也很無奈~。
修改之后出現(xiàn)之前用戶不存在了,也就無法取消其已經(jīng)提交的任務(wù),任務(wù)處于CG狀態(tài),這時(shí)候運(yùn)行下列命令重新啟動SLURM

scontrol update nodename=dell-r730-[1-3] state=down reason=hang
scontrol update nodename=dell-r730-[1-3] state=resume

安裝HiC-Pro并運(yùn)行

使用SLURM運(yùn)行HiC-Pro的主要注意點(diǎn)是

1、各機(jī)器之間的numpy和scipy包的版本要完全一致
2、需要將FASTAQ文件切割為多個(gè),HiC-Pro提供了組件供我們切割序列文件
3、在正常的運(yùn)行后面加上`-p`參數(shù)即可,然后運(yùn)行生成目錄下的兩個(gè)`sbatch`腳本(需要修改一下其中的內(nèi)存和時(shí)間配置)

參考鏈接

http://liujiayi771.github.io/2017/07/21/slurm分布式調(diào)度系統(tǒng)搭建/
https://blog.csdn.net/amaowolf/article/details/8488132
https://slurm.schedmd.com/
https://nservant.github.io/HiC-Pro/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,332評論 0 5
  • 安裝虛擬機(jī) 首先從阿里鏡像官網(wǎng)下載centos6.5的ISO鏡像文件,然后用VMware安裝centos的虛擬機(jī)。...
    卡卡xx閱讀 755評論 0 0
  • 現(xiàn)下個(gè)人寫作情況分析: 當(dāng)下我的寫作水平較開學(xué)及之前幾乎毫無進(jìn)步,綜合原因,簡而言之,有以下一些不足之處 第一,寫...
    寄蓮君閱讀 194評論 0 0
  • 一 真的,荒蕪的村落,一代埋葬一代,新墳覆舊墳。轉(zhuǎn)眼間,姥姥姥爺已經(jīng)去多年,墳?zāi)归L滿了雜草。 四只角杯只有在格外的...
    chuanyu2015閱讀 360評論 0 0
  • git reflog --date=local | grep 分支名查看git log的圖git log --gr...
    milletmi閱讀 15,010評論 0 3

友情鏈接更多精彩內(nèi)容