HTCondor HPC中AND语句的正确写法及语法错误排查
HTCondor Requirements 逻辑与写法及语法错误修复
问题原因
你使用的/\并非HTCondor支持的逻辑与运算符,这是导致作业提交时出现语法解析错误的直接原因。HTCondor表达式语法中,逻辑与的合法运算符为&&(或关键字AND),和你已知的逻辑或运算符||(或OR)对应。
正确写法
方式1:用&&实现逻辑与
要排除Tesla K40m和NVIDIA A40两种GPU型号,正确的Requirements配置如下:
requirements = (CUDADeviceName != "Tesla K40m") && (CUDADeviceName != "NVIDIA A40")
方式2:逻辑非+逻辑或(等价简洁写法)
你也可以通过取反“匹配任一需排除型号”的条件,实现等价逻辑:
requirements = !(CUDADeviceName == "Tesla K40m" || CUDADeviceName == "NVIDIA A40")
你的错误命令及翻译后的错误信息
执行的提交命令:
(metalearning_gpu) miranda9~/diversity-for-predictive-success-of-meta-learning $ condor_submit job.sub
返回的错误信息翻译:
提交作业中ERROR: 表达式解析错误:
Requirements = ((CUDADeviceName != "Tesla K40m") /\ (CUDADeviceName != "NVIDIA A40")) && (TARGET.Arch == "X86_64") && (TARGET.OpSys == "LINUX") && (TARGET.Disk >= RequestDisk) && (TARGET.Memory >= RequestMemory) && (TARGET.Cpus >= RequestCpus) && (TARGET.gpus >= Requestgpus) && ((TARGET.FileSystemDomain == MY.FileSystemDomain) || (TARGET.HasFileTransfer))
内容的提问来源于stack exchange,提问作者Charlie Parker
相关产品推荐
相关产品推荐

