因此,我尝试使用OMP_NUM_THREADS更改 openMP 中线程的值。当我在提示中键入export OMP_NUM_THREADS=value 时,它工作正常,它会更改线程数,但是当我尝试在 makefile 中执行此操作时,它不起作用。我的生成文件:
run:
export OMP_NUM_THREADS=4
./cowichan_openmp vecdiff >> out
Run Code Online (Sandbox Code Playgroud)
配方的每一行都在单独的 shell 中运行。因此,在这种情况下,您正在运行一个 shell、 setting OMP_NUM_THREADS,然后退出该 shell 并运行另一个(没有该变量)。
您可以将变量定义和调用cowichan_openmp放在同一行:
run:
OMP_NUM_THREADS=4 ./cowichan_openmp vecdiff >> out
Run Code Online (Sandbox Code Playgroud)