Makefile忽略命令export OMP_NUM_THREADS

时间:2015-12-09 10:55:27

标签: c++ parallel-processing makefile openmp

我正在使用openMP编译和运行C ++程序,使用以下makefile

all:        
            g++ -std=c++0x -O2 -fopenmp main.cpp body.cpp -o test
            export OMP_NUM_THREADS=4
            ./test

忽略变量OMP_NUM_THREADS,而如果我在终端中手动给出三个命令(按相同顺序),则考虑变量并且程序以所需数量的节点运行。从终端运行所有内容都会导致OMP_NUM_THREAD变量是之前手动设置的值。在程序本身中,变量是不变的,因此程序只运行可用节点的数量。

非常感谢您的帮助!

聚苯乙烯。有人对链接/文档/视频有一个很好的提示,以便对bash编程进行精彩的介绍吗?

1 个答案:

答案 0 :(得分:1)

将变量赋值和export指令从目标部分(“all”)移动到定义部分,如下所示:

OMP_NUM_THREADS=4
export OMP_NUM_THREADS

all:        
            g++ -std=c++0x -O2 -fopenmp main.cpp body.cpp -o test
            ./test