希望使用 JSTL 和 Apache Torque 以及某种模板引擎来扩展当前的 Java EE 项目,以便我们可以轻松修改视图。
有什么建议么?
如果我需要"并行"运行许多串行程序(因为问题很简单但很耗时 - 我需要为同一个程序读取许多不同的数据集),如果我只使用一个节点,解决方案很简单.我所做的就是在每个命令之后继续使用&符号提交串行作业,例如在作业脚本中:
./program1 &
./program2 &
./program3 &
./program4
Run Code Online (Sandbox Code Playgroud)
这将自然地在不同的处理器上运行每个串行程序.这在登录服务器或独立工作站上运行良好,当然也适用于只需要一个节点的批处理作业.
但是,如果我需要运行同一程序的110个不同实例来读取110个不同的数据集呢?如果我使用提交110 ./program#命令的脚本提交到多个节点(比如14),批处理系统是否会在不同节点上的不同处理器上运行每个作业,或者它是否会尝试在同一个节点上运行它们, 8个核心节点?
我曾尝试使用简单的MPI代码来读取不同的数据,但会产生各种错误,110个流程中有大约100个成功,其他流程崩溃.我也考虑了作业数组,但我不确定我的系统是否支持它.
我已经在各个数据集上广泛测试了串行程序 - 没有运行时错误,并且我没有超过每个节点上的可用内存.
我正在尝试使用mpi run使用扭矩调度程序运行我的程序.虽然在我的pbs文件中我加载了所有的库
export LD_LIBRARY_PATH=/path/to/library
Run Code Online (Sandbox Code Playgroud)
然而它给出了错误,即
error while loading shared libraries: libarmadillo.so.3:
cannot open shared object file: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
我猜错误在于所有节点中都没有设置变量LD_LIBRARY_PATH.我怎么能让它起作用?
我有一个问题,如果我有2000个工作排队并尝试删除它们qdel all,它将继续尝试删除正在运行的作业.这意味着我必须等待很长时间才能删除作业,因为从Running列表中删除比Idle列表慢.
因此,如何在Idle不触及作业的情况下删除所有Running作业?
我有已完成作业的 ID。如何查看其详细信息,例如执行时间、分配的节点等?我记得 SGE 有一个命令(qacct?)。但我找不到 PBS 或 Torque。谢谢。
假设我有一个在集群上安排的作业列表,我想删除其中一些作业.
通常我会使用qdel后面的工作号码.
但是,我想删除10个作业,所以我认为我可以*用作通配符操作符,如下所示:
qdel 11763*
我以为这会删除117630到117639的工作.但是我收到了illegally formed job identifier错误.
有没有人知道在这种情况下使用通配符运算符的方法?
我正在使用带有Torque/Maui系统的集群.我有一个使用qsub命令提交一个作业的bash脚本,然后做了几件事,比如移动文件,写ASCII文件,并检查我提交的作业的输出.关于此输出,基本上,如果它包含数字1,则需要再次提交作业.如果不同于1,则bash脚本会执行其他操作.
问题是qsub在后台运行,并且所有bash都会立即进行评估.我想强迫qsub表现得非常像awk,cat,sort等...当脚本在这些命令完成后进一步发展 - 如果没有放在后台.
所以,我需要在第一个qsub上停止bash,并在qsub完成后继续运行,这意味着,当作业完成时.有没有办法做到这一点?它将类似于:
-sync y # in the SGE system, for instance.
Run Code Online (Sandbox Code Playgroud)
是)我有的:
#!/bin/bash
.
.
some commands
.
.
qsub my_application # need to wait until my_application get done
.
.
more commands
.
.
my_application_output=(`cat my_application_output.txt`)
case "$my_application_output" in
["1"])
qsub my_application
;;
["0"])
some commands
;;
["100"])
some commands
;;
*)
some commands
exit 1
esac
.
.
Run Code Online (Sandbox Code Playgroud)
一些言论
谢谢大家
这是我的 pbs 文件:
#!/bin/bash
#PBS -N myJob
#PBS -j oe
#PBS -k o
#PBS -V
#PBS -l nodes=hpg6-15:ppn=12
cd ${PBS_O_WORKDIR}
./mycommand
Run Code Online (Sandbox Code Playgroud)
在 qsub 文档页面上,似乎如果我放置该行
PBS -k o,我应该能够检查我的主目录中名为 myJob.oJOBID 的文件中的实时输出。但是,当我在运行时检查输出时tail -f,它在文件中没有显示任何内容。只有当我终止作业时,文件才会显示输出。我应该检查什么才能使流实时刷新到输出文件吗?catmore
我正在尝试提交一个依赖于阵列完成的扭矩作业.
FIRST=`qsub -q hep -t 1-5 foo.sh`
qsub -q hep -W depend=afterok:$FIRST bar.sh
FIRST作业数组提交并完成正常,但第二个作业bar.sh只是无限期地保留.
如果我从第一个参数中删除数组选项,第二个作业将按计划成功,但这并不能解决问题.
3年前有一个类似的线程,但似乎没有实际解决方案:
如何等待扭矩作业阵列完成
谢谢你的帮助.
我有一个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