并行调用函数是否足以让它并行执行?
Does calling a function in parallel enough to have it execute in parallel?
假设我有一段代码如下(当然,这并不意味着要执行,只是一个示例来尝试理解这个概念,因为我的问题是一个常识性问题)
int main()
{
#pragma omp parallel
myfunction();
return 1;
}
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
}
我知道这意味着我的函数将被调用多次(取决于我计算机的默认线程数),但是,这些多次是并行执行的,还是我应该做类似的事情:
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 编译指示被添加到代码块中,其中还可以包含方法调用。它们不会添加到方法签名中。