将 GNU Parallel 与终端会话中定义的变量结合使用

问题描述 投票:0回答:1

我正在尝试使用 GNU Parallel 并行启动 Octave 脚本。一切正常,但我有一个关于导出变量的问题。在使用 GNU Parallel 之前,我的工作流程是打开终端,执行

export OMP_NUM_THREADS=1
,然后执行我的 Octave 脚本。这样我就为 BLAS 分配了 1 个线程,供 Octave 使用。使用 GNU Parallel 时,在使用 GNU Parallel 之前执行
export OMP_NUM_THREADS=1
是否足够,或者我应该做些什么不同的事情?我读到了有关
env_parallel
的内容,但我不确定我的用例是否需要它,以及如果需要的话如何使用它。

这就是我在没有 GNU Parallel 的情况下所做的事情(打开终端并):

export OMP_NUM_THREADS=1
octave--gui

这就是我现在使用 GNU Parallel 所做的事情(然后打开终端):

export OMP_NUM_THREADS=1
readlink -f ./data/*.csv | parallel "octave validation.m {}"

基本上,我正在尝试使用

validation.m
并行处理目录中的 CSV 文件,并且我想确保 BLAS 仅使用 1 个线程。

linux bash parallel-processing environment-variables gnu-parallel
1个回答
0
投票

export variable=value
会将
variable
设置为
value
并将其标记为导出到子流程。其中包括
parallel
octave
以及您在该 shell 中运行的任何其他内容(除非运行
env
等极端情况来覆盖环境中的其他内容)。

总而言之,导出的变量对于设置它的环境的所有后代都是可见的。

如果您需要更多详细信息,也许可以阅读 Unix 进程模型;但这并不是很复杂。

© www.soinside.com 2019 - 2024. All rights reserved.