如果您只有“make”作为可能的并行环境,那么这意味着您的集群上没有设置并行环境。
有两个解决您的问题,根据这些2种情况:
A)你有根/管理员访问群集
B)你不
在情况B ,请让管理员创建一个并行环境。在情况A中,你必须创建一个并行环境。要创建一个新的并行环境中,您必须输入(需要root /管理员权限):
qconf -ap <pe_name>
,默认编辑器将开始,你必须编辑默认pe_conf文件。如果您需要设置唯一的OpenMP并行环境中,你可以使用这些选项:
pe_name smp
slots 9999
user_lists NONE
xuser_lists NONE
start_proc_args /bin/true
stop_proc_args /bin/true
allocation_rule $pe_slots
control_slaves FALSE
job_is_first_task FALSE
urgency_slots min
accounting_summary TRUE
和一个MPI并行环境:
pe_name mpi
slots 9999
user_lists NONE
xuser_lists NONE
start_proc_args /opt/sge/mpi/startmpi.sh $pe_hostfile
stop_proc_args /opt/sge/mpi/stopmpi.sh
allocation_rule $fill_up
control_slaves FALSE
job_is_first_task TRUE
urgency_slots min
accounting_summary TRUE
当你看到,在后一种情况下,你将指向SGE到为您的MPI配置提供正确的初始化脚本和关闭脚本。在第一种情况下,您只需指向/bin/true
即可。
allocation_rule
在这个例子中是不同的。 $fill_up
意味着SGE将填充它可以找到的部分MPI作业的任何CPU,而对于smp
配置,则只需在同一台计算机上分配正确数量的插槽即$pe_slots
。
如果您使用MPI,您的节点应该使用高性能开关连接,如infiniband否则您的工作将花费更多时间进行通信而不是计算。
编辑: 哦,顺便说一句:正确synthax提交作业与并行环境中有效的是:
qsub -pe <pe_name> <nb_slots>
最后编辑: 最终答案的问题来这里下面的评论。实际上,如果群集上未设置并行环境(PE),SGE不能处理多线程作业。如果没有集群管理员权限,则必须猜测对于必须使用qconf -spl
使用,并与qconf -sp <pe_name>
检查不同的PE,或添加在软件的选项,允许用户指定正确的PE必须使用的PE。
否则,即如果群集上没有可用的PE,则不能使用软件的并行版本。
请参阅评论以获取更多信息。
Grid Engine安装的管理员定义和配置pe(并行环境),所以,不,你不应该指望默认存在一个叫做'threaded'的pe。至于问题的其余部分,我无法提供帮助,因为我有专家管理我使用的集群的幸运位置,所以不必过多地关注自己的本质。 –