问题标签 [condor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
condor - HTCondor 根据 Idle 更改 NUM_CPUS?
我想根据是否有人在机器上工作来更改 CPU 计数。不想抢占手册中定义的工作。只需执行以下操作:
上述命令失败:(KeyboardIdle < 10) is not a valid if condition because complex conditionals are not supported
。
任何方式我可以实现这个还是NUM_CPUS
一个固定变量?
根据 Greg 的回答,我的 condor_config 的最底部如下
理论上只允许启动 8 个作业,但运行时condor_status myMachine
我得到:
有什么想法吗?
python - 从多核分布式处理到多核节点分布式处理
背景
serial_procedure.py
在 python 中,我最近学习了如何通过使用我的笔记本电脑的 4 个内核使用multiprocessing
产生模块的包来加速带有模块名称的串行过程multicore_procedure.py
。
问题
现在,我将使用一个有 3 个节点且每个节点有 4 个核心的计算机集群。multicore_procedure.py
我将如何通过在集群的 3*4 核心上并行化来加快速度?
更具体的要求
鉴于我在编程和软件工程方面的知识非常少,我希望有一些明确的 Python 示例脚本可用于 slurm 和 condor 资源管理软件系统。目标是自动检测可用的 3*4=12 内核并编写统一代码。
更多信息
示例模块serial_procdure.py
并multicore_procedure.py
在下面提供。请注意,在每次迭代ell中,都会进行密集计算,从而产生一个标记为total的值。随机段落被写入标签total下的给定文件名。并行进程不应将段落混合在一起,但所有进程应写入同一文件。
我尝试使用 mpi4py 包来实现 mpi,但我似乎没有正确理解它,因为结果性能类似于 serial_procedure.py。
串行程序
多核程序
condor - 为 HTCondor 上的作业重试生成单独的 stdout/stderr 文件
如果作业意外失败,HTCondor 允许重试作业。但是,这样做会导致失败作业的标准输出和标准错误文件在重试时被作业覆盖。这妨碍了调试以找出某些作业失败的原因。
有没有办法指定作业的每次尝试都应该有输出?
演示问题的示例配置脚本和可执行文件:
通常_crash.sh:
运行时,此作业通常会失败几次,但一旦成功,来自失败作业的所有标准输出和标准错误都会被覆盖。
windows - Windows 服务用户帐户无法访问证书存储
背景
我有一个带有两个用户帐户(condor_usr1 和 condor_usr2)的 Windows 7 VM,用于源代码编译。condor_usr[1|2] 帐户是管理员组的成员。我有一个 HTCondor 主 VM,它定期接收作业并分配每个作业在 condor_usr[1|2] 帐户之一上运行。Win7 VM 上的 condor 服务作为本地系统帐户运行,但正在执行的作业实际上作为 condor_usr[1|2] 帐户运行。
我有一个新的要求来签署编译的可执行文件。我已将带有私钥的证书导入到 Windows 证书存储中的 Current User\Personal 密钥存储中。
问题
如果我作为 condor_usr 帐户之一登录到 Win7 VM(例如通过远程桌面),那么作为该帐户运行的编译将成功签署可执行文件,但作为另一个帐户运行的编译将无法签署可执行文件。例如,如果我以 condor_usr2 登录,那么在 condor_usr2 下运行的编译将成功签名,而在 condor_usr1 下运行的编译将无法签名。如果我注销,两个帐户都无法签名。
我收到的具体错误是:
开启一些审计日志,发现以下日志与签名失败同时发生。
目标
无论编译运行在哪个帐户上,并且不需要用户登录,都可以成功地对编译后的可执行文件进行签名。
到目前为止我的想法
- 正在编译的代码/项目是 Visual Studio 2017 解决方案。
- 签名方法是 ClickOnce 清单签名(VS2017 项目中的一个选项)。
- 启动编译作业时,该作业使用登录类型 2(交互式登录)作为 condor_usr[1|2] 登录。 https://ss64.com/nt/syntax-logon-types.html
我尝试过的事情
除非另有说明,否则这些操作无效并已恢复。
- 将 condor_usr 帐户添加到 Cryptographic Operators 组。
- 将带有私钥的证书导入本地计算机\个人密钥存储。
- 用于
PsExec -h make.bat
获取账户的提升令牌。 https://docs.microsoft.com/en-us/sysinternals/downloads/psexec - 我认为用户帐户控制 (UAC) 可能会阻止系统帐户和/或 condor_usr 帐户访问证书存储区(或证书存储区中的私钥),但 UAC 已在 Win7 VM 上禁用。
- 我将原始的 .pfx 证书文件放在 VS2017 解决方案中,并以它而不是密钥库中的证书为目标。这没有任何效果,这让我相信问题是某种签名权限,而不是(或者可能是除了)围绕实际证书存储的纯粹权限。
- 我尝试在通过远程桌面登录时开始工作,然后在工作到达签名部分之前退出远程桌面会话(实际注销,而不是断开连接)。签名失败。
condor - HTCondor Scatter Gather
我正在开发一个项目,我需要将视频分辨率从 1080p 降低到 720p。这部分使用命令“ffmpeg -I inputVideo.mp4 -r 60 -s hd720 outputVideo.mp4”非常简单。
现在,想法是使用 HTCondor,所以每个Resource接收视频的一部分(Scatter),降低它的质量,然后返回它,所以最后所有部分可以放在一起制作完整的视频 720p(Gather)。问题是,每个节点都返回自己的段,所以我怎样才能使返回是总结视频。我想使用一个 .dag 文件,所以在执行之后,它会运行一个脚本来合并它们,但是,根据我从每个节点上运行的文档而不是在所有段所在的地方,是客户,我猜。
所以我想问一下,你有什么建议让我可以合并输出的视频文件。
submit - File.sub 的输入和输出的 HTCondor 问题
我是 Condor 的初学者,想问一个问题:我想使用这个.sub
文件提交一份工作:
我想将包含在目录中的一些库(例如 Factory.h 等)作为输入文件传递,TMVA
我希望将其作为输出文件TMVA-top.root
和目录Likelihood_Classification
,但是这样工作最终会在HOLD
,我读到这意味着存在文件中有一些错误.sub
。我究竟做错了什么?
condor - CondorHT - 六个空闲的 Procs 都在不断地创建快照。怎么了?
我继承了一个处理云指标的 CondorHT 集群。一个主控制器节点。六个工作节点。集群完美运行了几个月,然后突然中断。集群通常需要 1 到 2 小时才能完成,但现在永远不会完成,并且会在午夜通过每日 cron 关闭而关闭/切断。
主节点上的 CollectorLog 使用指示正在发生某些活动的消息进行更新。消息大约每 20 秒到达一条。
主节点和工作节点上的 ProcLog 大约每 20 秒更新一条消息。“没有任何方法可以确定进程 xxxx 属于受监控的系列……正在拍摄快照……快照已完成。”
主节点上的 condor_status 将所有进程显示为 IDLE。
我该如何调试呢?
condor - How does one send an email after the submission job is done in condor?
I was trying to use the email option after running a condor job. I tried this:
but it failed. Why? How do I put it in the submission file?
This didn't help either:
https://research.cs.wisc.edu/htcondor/manual/v7.6/condor_submit.html
regardless I want it in the job.sub
script regardless.
Edit:
I put the notify user at the end. Now I do not see errors in the condor logs but I am not receiving an e-mail. So it means condor parsed my filed correctly after having Queue
be at the end but it's not sending emails. Anyone know why?
python - 通过从 HTCondor 作业运行的 python 脚本执行 bash 命令
我有一个 Python 脚本,它最后通过subprocess.Popen()
. 当我启动终端时,我总是移动到 quickFit 目录,source setup.sh
因此我可以从任何地方运行该可执行文件。然后我尝试在 HTCondor 作业中运行此脚本,但它出错了。我的外壳是 zsh。这是一个例子:
测试.py:
测试子:
运行test.py
会产生预期的行为:quickFit 命令运行并显示选项列表和可能的参数(-h 用于帮助)。quickfit -h
这与我从终端运行时的行为完全相同。
但是,运行condor_submit test.sub
会导致作业提前结束,并且 err.txt 文件会通知我非零退出状态 127:/bin/sh: quickFit: command not found
我已经尝试chmod -R 777 *
了 quickFit 目录中的所有内容,因为我认为它与权限有关,但没有奏效。
我也尝试过(在 python 中)将目录更改为 quickFit 目录并重新采购 setup.sh,但这带来了更多问题。
最后我尝试添加getenv = True
到.sub
导致以下错误的文件:quickFit: error while loading shared libraries: libquickFit.so: cannot open shared object file: No such file or directory