Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Makefile忽略命令export OMP\u NUM\u THREADS_C++_Parallel Processing_Makefile_Openmp - Fatal编程技术网

C++ Makefile忽略命令export OMP\u NUM\u THREADS

C++ Makefile忽略命令export OMP\u NUM\u THREADS,c++,parallel-processing,makefile,openmp,C++,Parallel Processing,Makefile,Openmp,我用OpenMP编译并运行C++程序,下面的生成文件 all: g++ -std=c++0x -O2 -fopenmp main.cpp body.cpp -o test export OMP_NUM_THREADS=4 ./test 变量OMP_NUM_THREADS将被忽略,而如果我在终端中手动发出三个命令(以相同的顺序),则会考虑该变量,程序将以所需的节点数运行。从终端运行所有操作的效果是OMP_NU

我用OpenMP编译并运行C++程序,下面的生成文件

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编程的nooby简介的链接/文档/视频有好的建议

将变量赋值和导出指令从目标部件(“全部”)移动到定义部件,如下所示:

OMP_NUM_THREADS=4
export OMP_NUM_THREADS

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

配方中的每一行都在自己的外壳中运行。因此,
export
不会影响
/test
行的shell会话。使用
env-OMP\u-NUM\u-THREADS=4./test
更好的方法是将其范围扩展到
/test
行,使用
OMP\u-NUM\u-THREADS=4./test
或类似的方法。