Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.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 并行调用函数是否足以使其并行执行?_C_Multithreading_Performance_Parallel Processing_Openmp - Fatal编程技术网

C 并行调用函数是否足以使其并行执行?

C 并行调用函数是否足以使其并行执行?,c,multithreading,performance,parallel-processing,openmp,C,Multithreading,Performance,Parallel Processing,Openmp,假设我有一段代码,如下面所示(当然,这不是要执行的,只是一个示例来尝试理解这个概念,因为我的问题是一个常识问题) 我知道这意味着我的函数将被调用多次(取决于我的计算机的默认线程数量),但是,这些多次是并行执行的,还是我应该执行以下操作: int main() { #pragma omp parallel myfunction(); return 1; } #pragma omp parallel myfunction(){ //do some work } 要并行执行函数,请执行以下操作:

假设我有一段代码,如下面所示(当然,这不是要执行的,只是一个示例来尝试理解这个概念,因为我的问题是一个常识问题)

我知道这意味着我的函数将被调用多次(取决于我的计算机的默认线程数量),但是,这些多次是并行执行的,还是我应该执行以下操作:

int main()
{
#pragma omp parallel 
myfunction();
return 1;
}

#pragma omp parallel
myfunction(){
//do some work
}

要并行执行函数,请执行以下操作:

int main()
{
   #pragma omp parallel 
   myfunction();
   return 1;
}

myfunction(){
//do some work
}

OpenMP杂注被添加到代码块中,其中还可以包括方法调用。它们不会添加到方法签名中。

要并行执行函数,请执行以下操作:

int main()
{
   #pragma omp parallel 
   myfunction();
   return 1;
}

myfunction(){
//do some work
}
OpenMP杂注被添加到代码块中,其中还可以包括方法调用。它们不会添加到方法签名中