我想编写一个程序,使用并行计算(Open MP库)来计算一个整数的阶乘。
显然,下面的程序存在竞争条件。
// Each loop iteration writes a value that a different iteration reads.
#pragma omp parallel for
for (i=2; i < 10; i++)
{
factorial[i] = i * factorial[i-1];
}
我在某个地方读到,pow和阶乘计算无论如何都不能并行处理。那么,这是真的吗?或者上面的程序(使用OPenMP库,在C语言中)可以被修改为并行计算阶乘?