Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
是否可以使用cmake实现多核?_Cmake_Multicore - Fatal编程技术网

是否可以使用cmake实现多核?

是否可以使用cmake实现多核?,cmake,multicore,Cmake,Multicore,我正在做一些cv算法代码,这是非常昂贵的计算。并且原始代码没有应用多核或多线程技术。是否可以使用cmake重新编译它并使其能够使用多核 亲切问候, Patrickcmake只是一个构建生成器(例如,它接受一个通用的makefile并生成一个特定于平台的makefile)。没有。你没有指定语言,所以我假设是C。你想要的是openMP,MPI,或者使用pthreads来分割东西。为了得到更好的答案,您可能需要发布代码的代表性示例(也称为MCVE)。选择一两个“热点”。也就是说,代码的某些部分是密集的

我正在做一些cv算法代码,这是非常昂贵的计算。并且原始代码没有应用多核或多线程技术。是否可以使用cmake重新编译它并使其能够使用多核

亲切问候,


Patrick

cmake
只是一个构建生成器(例如,它接受一个通用的makefile并生成一个特定于平台的makefile)。没有。你没有指定语言,所以我假设是C。你想要的是
openMP
MPI
,或者使用
pthreads
来分割东西。为了得到更好的答案,您可能需要发布代码的代表性示例(也称为MCVE)。选择一两个“热点”。也就是说,代码的某些部分是密集的,但您认为可以从并行中受益,并且有可能实现并行(即,查看每个步骤中的数据依赖关系),谢谢。我知道pthreads可以用于多线程,但是重写源代码对我来说是一项艰巨的工作。实际上,使用cmake进行并行处理的想法是受计算机体系结构粗糙的启发,编译器可以进行一些并行优化。再一次,
cmake
只是一个构建工具。您需要的是
openMP
。您只需在循环上方插入一个特殊的编译器指令。这告诉
gcc
为您并行化它。它将通过根据需要创建线程(对您不可见)来为您实现这一点。根本没有源代码重写。(例如)在
for
循环上面,只需添加
#pragma omp parallel for
和presto,就可以了。谢谢,我会试试
openMP
。当我环顾四周时,我也遇到了
openCV
。如果这是有用的,我认为它与
openMP
cmake
配合得很好,它只是一个构建生成器(例如,它接受一个通用的makefile并生成一个特定于平台的makefile)。没有。你没有指定语言,所以我假设是C。你想要的是
openMP
MPI
,或者使用
pthreads
来分割东西。为了得到更好的答案,您可能需要发布代码的代表性示例(也称为MCVE)。选择一两个“热点”。也就是说,代码的某些部分是密集的,但您认为可以从并行中受益,并且有可能实现并行(即,查看每个步骤中的数据依赖关系),谢谢。我知道pthreads可以用于多线程,但是重写源代码对我来说是一项艰巨的工作。实际上,使用cmake进行并行处理的想法是受计算机体系结构粗糙的启发,编译器可以进行一些并行优化。再一次,
cmake
只是一个构建工具。您需要的是
openMP
。您只需在循环上方插入一个特殊的编译器指令。这告诉
gcc
为您并行化它。它将通过根据需要创建线程(对您不可见)来为您实现这一点。根本没有源代码重写。(例如)在
for
循环上面,只需添加
#pragma omp parallel for
和presto,就可以了。谢谢,我会试试
openMP
。当我环顾四周时,我也遇到了
openCV
。如果这是有用的,我认为它与
openMP