gab*_*how 4 python qsub torque
我有一个main_script.py看起来像这样的python脚本:
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
Run Code Online (Sandbox Code Playgroud)
基本上它对变量中的每个文件执行相同类型的操作 Files
我想使用qsub来并行化for循环.
假设我有一个files.txt包含所有文件名的txt文件:
//mypath//pathfile1
//mypath//pathfile2
...
//mypath//pathfile100
Run Code Online (Sandbox Code Playgroud)
如何编写调用qsub和运行的shell脚本main_script.py
我认为我还需要适应main_script.py但我不知道如何...
调度程序是Torque/Maui
从作业脚本调用任何可执行文件的一种方法是将其包装在bash脚本中:
#/bin/bash
<full path to call executable>
Run Code Online (Sandbox Code Playgroud)
如果您将该脚本命名为script.sh,并且script.sh是可执行的,那么您可以执行:
qsub script.sh
Run Code Online (Sandbox Code Playgroud)
它将被提交给批处理系统.陷阱 - 您可能已经知道 - 是这样的:如果您的可执行文件无法从计算节点访问,那么在作业执行时将找不到它.对于您的脚本使用的文件也是如此,因此您需要确保它们都位于适当的位置,通常是网络可访问的文件系统.
如果要直接提交python脚本,可以添加:
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
到顶部(仔细检查python在你的系统上的/ usr/bin中)然后你可以直接qsub你的python脚本.在你的情况下,
qsub main_script.py
Run Code Online (Sandbox Code Playgroud)
以这种方式提交时,脚本不再必须位于网络可访问的位置,但输入文件仍然可以.
| 归档时间: |
|
| 查看次数: |
5714 次 |
| 最近记录: |