2011-11-30 41 views
4

我想提交一個多線程作業到我正在使用的集羣網絡 - 但關於qsub的手冊頁不清楚這是如何完成的 - 默認情況下我猜測它只是將它作爲普通作業發送,而不管多線程 - 但這可能會導致問題,即將多個線程作業發送到同一臺計算機,從而減慢速度。使用多線程應用qsub(sge)

有誰知道如何做到這一點?謝謝。

批處理服務器系統是sge。

+2

如果你不告訴我們你正在使用哪個批處理系統(有幾個這樣的系統調用他們​​的提交命令'qsub'),這個問題是完全無法回答的。 – dmckee

+0

對不起,我正在使用sge。編輯的問題也是如此。 – dan12345

+0

不知道那個,所以我不能幫助。 – dmckee

回答

0

如果您的工作是多線程的,即使在SGE中也可以利用多線程的優勢。在SGE中,單個作業可以使用一個或多個CPU。如果您提交使用單處理器的作業,並且您的程序有多個線程,而不是單個處理器可以處理的問題,則會發生問題。驗證您的作業使用的處理器數量以及程序創建的每個CPU有多少個線程。

在我的情況下,我有一個java程序,使用一個處理器和兩個線程,它的工作效率非常高。我提交相同的Java程序執行到每個有2個線程的許多CPU,以使它並行,因爲我沒有使用MPI。

+0

如何指定線程數?你是否需要指定環境? – damned

+0

你的意思是在SGE嗎? – World

+0

qsub -N myJobName -o outFile.txt -e errorFile.txt -l slots = 2 myscript.sh – World

4

在SGE/UGE的配置由管理員設置的,所以你必須檢查他們稱爲並行環境

qconf -spl 
make 
our_paraq 

找到一個帶在配置

qconf -sp make 
qconf -sp our_paraq 

$pe_slots與您想使用的環境和核心數量qsub

qsub -pe our_paraq 8 -cwd ./myscript 

如果您使用的是mpi,則您有更多的配置分配規則($pe_slots以上)的選擇,例如$round_robin$fill_up,但這應該會讓您繼續。