脚本中的 setenv 不会覆盖提示时设置的值

脚本中的 setenv 不会覆盖提示时设置的值

试图做setenv OMP_NUM_THREADS 8

如果在 shell 提示符下执行setenv OMP_NUM_THREADS 4 此操作则表示成功。如​​果我启动程序,它将在 4 个核心上运行。

但我有一个名为的文件,runme它只是这个

setenv OMP_NUM_THREADS 8
cd /scratch/run1
./crunch_numbers.x

我的crunch_numbers.x程序与 openMP 并行并使用OMP_NUM_THREADS环境变量。

当 runme 脚本运行在 4 个核心而不是 8 个核心上时,问题是 crunch_numbers 。我的脚本中 OMP_NUM_THREADS 的设置不起作用。如何使脚本中的setenv生效?

另外,我的 shell 是 /bin/tcsh。我不打算在 bash shell 中使用它。谢谢。

答案1

如果您更喜欢使用tcsh,您的脚本应该这样说,将其放在开头:

#!/bin/tcsh -f

告诉#!/bin/tcsh内核运行程序而不是#/bin/sh,并且该-f选项提醒tcsh不要重新初始化自身。

进一步阅读:

相关内容