2017-03-07 56 views
1

運行一個Python腳本我有一個python腳本main_script.py,看起來像這樣:中的qsub

import os 

Files = os.listdir(os.path.join(path, ".")) 
FilesNumber = len(Files) 

for fileID in range (0,FilesNumber): 
    filename = Files[fileID] 

    # load file specified in filename and do stuff 

基本上它確實在變Files

同一種對每個文件的操作,我想使用qsub來並行化for循環。

假設我有一個txt文件files.txt包含的所有文件名:

//mypath//pathfile1 
//mypath//pathfile2 
... 
//mypath//pathfile100 

我怎麼能編寫調用的qsub和運行main_script.py 我想我還需要適應main_script.py但shell腳本我不知道該怎麼...

調度是扭力/毛伊島

+0

您正在使用哪個調度程序?命令'qsub'被其中的幾個人使用。 – eduffy

+0

我應該使用Torque/Maui – gabboshow

+0

個人插件:您可以使用fyrd(https://fyrd.science)從python提交扭矩或slurm函數,它是爲這種類型的東西而設計的。 –

回答

1

的一種方式,從一個作業腳本調用任何可執行文件是簡單地把它包裝一個bash裏面腳本:

#/bin/bash 

<full path to call executable> 

如果命名該腳本script.sh和script.sh是可執行的,那麼你可以執行:

qsub script.sh 

,它將被提交到批處理系統。這些問題 - 你可能已經知道 - 是這樣的:如果你的可執行程序不能從計算節點訪問,那麼當作業執行時不會找到它。對於腳本正在使用的文件也是如此,因此您需要確保它們都位於適當的位置,通常是網絡可訪問的文件系統。

如果您想直接提交python腳本,您可以添加:

#!/usr/bin/python 

頂端(仔細檢查蟒蛇是在/ usr/bin中你的系統上),然後就可以直接使用qsub你的python腳本。在你的情況,

qsub main_script.py 

當提交這樣,腳本不再是在一個網絡訪問的位置,但輸入文件現在仍然如此。