集群任務管理系統SGE的簡明教程

2021-09-29 03:43:58 字數 2706 閱讀 2482

我用的乙個伺服器上裝了乙個集群管理工具(sge, sun grid engine), 用於從登陸節點上向計算節點進行任務投遞。一開始,不太會用,但是經過一段時間的摸索學習後,終於能順手的用起來了。

在使用sge之前,你得先了解sge到底做了什麼事情. sge或者其他集群管理工作做的事情就是將使用者投遞的任務進行排隊,然後將任務交給能夠執行的結算節點執行,工作流程可以分為四步:

接受使用者投放的任務

在任務執行以前,將任務放到乙個儲存區域

傳送任務到乙個執行裝置,並監控任務的執行

執行結束寫回結果並記錄執行日誌

sge中投遞任務所用到的命令是qsub. 最簡單的用法是下面這種,即,將要執行的命令通過標準輸入的方式傳遞給qsub

echo "ls -l " | qsub
投遞之後可以用qstat檢視自己投遞的任務的運**況,如下圖

任務投遞情況

第一列是任務編號, 第二列是優先順序,第三列是任務名字,在引數裡沒有特別說明的情況下,sge會用任務的**進行命令,stdin表示來自於標準輸入,第四列是使用者名稱,第五列是執行狀態("r"表示執行中), 第六列表示任務投遞和開始時間,第七列是任務投遞的節點,第8列則是要申請的執行緒數。在執行完成後會在家目錄下生成"stdin.e7883"和"stdin.o7883", 其中7883就是任務編號, 前者存放標準錯誤輸出, 後者存放標準輸出, 因此"cat stdin.o7883"的內容就是ls -l的內容。

另一種方法是先寫乙個指令碼然後投遞,比如先編輯乙個檔案"ls.sh", 內容如下,然後用"qsub ls.sh"投遞任務。

ls -l
跟之前一樣,最後在家目錄下產生了"ls.sh.e***x"和"ls.sh.e***x"兩個檔案

當然實際時肯定沒有那麼簡單,我們需要增加各種引數來調整qsub的行為,用qsub -help可以看完整的引數,但是常用的為如下幾個

那麼接下來就可以新增這些引數執行一些命令了,例如在命令列裡投遞乙個比對任務

echo "bowtie2 -p 8 -x index/ref -1 data/a_1.fq -2 data/a_2.fq | samtools sort > a.bam" | qsub -v -cwd -l vf=25g -s /bin/bash -pe openmpi 8 -n a.bt2
這些引數除了在外部設定外,還可以在shell指令碼裡設定,如下

#!/bin/bash

#$ -s /bin/bash

#$ -v

#$ -cwd

#$ -l vf=25g

#$ -pe openmpi 8

#$ -n a.bt2

bowtie2 -p 8 -x index/ref -1 data/a_1.fq -2 data/a_2.fq | samtools sort > a.bam

除了任務投遞外,查詢任務也是乙個非常常用的命令,除了剛才直接用qstat檢視,還有如下引數比較好用

qstat -f        # 檢視使用者任務

qstat -j jobid # 按任務id檢視

qstat -explain a|c|a|e -j jobid # 檢視任務任務並給出解釋

qstat -u user # 按使用者檢視

任務狀態:

任務刪除也比較重要,畢竟偶爾會出現任務投遞出錯的情況

qdel -j 1111   刪除任務號為1111的任務
qacct 從集群日誌中抽取任意賬戶資訊

qalter 更改已提交但正處於暫掛狀態的作業的屬性

qconf 為集群和佇列配置提供使用者介面

qhold 阻止已提交作業的執行

qhost 顯示sge執行主機(即各個計算節點)的狀態資訊

qlogin 啟動telnet或類似的登入會話。

#!/bin/bash

set -e

set -u

set -o pipefail

threads=8

index=index/hg19

fq_dir="analysis/0-raw-data"

align_dir="analysis/2-read-align"

log_dir="analysis/log"

tmp_dir="analysis/tmp"

mkdir -p $

mkdir -p $

mkdir -p $

tail -n+2 download_table.txt | cut -f 6 | while read id;

do echo "

bowtie2 --very-sensitive-local --mm -p $threads -x $index -u $/$id.fastq.gz 2> $/$id.bt2.log | \

samtools sort -@ 2 -m 1g -t $/$ -o $/$.sort.bam" | qsub -v -cwd -pe openmpi $threads -n $_bt2 -q all.q -s /bin/bash

done

集群任務管理系統SGE

網格計算和sge 從概念上講,網格很簡單。它是執行任務的計算資源的集合。對使用者而言,它就是乙個大系統,提供單個切入點,以訪問強大而分散的資源。使用者將網格視作單個計算資源。資源管理軟體 如sun grid engine 接受由使用者提交的作業,並根據資源管理策略將作業安排在網格內適當的系統上執行。...

RMAN簡明教程之六 RMAN的管理

一 report命令 report 命令可以檢測那些檔案需要備份,那些備份能被刪除以及那些檔案能不能獲得的資訊,如 報告資料庫的所有能備份資料檔案物件 report schema 或者 rman report schema at time sysdate 14 rman report schema ...

RMAN簡明教程之六 RMAN的管理

一 report命令 report 命令可以檢測那些檔案需要備份,那些備份能被刪除以及那些檔案能不能獲得的資訊,如 報告資料庫的所有能備份資料檔案物件 report schema 或者 rman report schema at time sysdate 14 rman report schema ...