我想编写一个使用并行计算来计算整数的阶乘的程序(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和阶乘计算无法并行完成。那么,是这样吗,还是可以修改以上程序(在C中,使用OPenMP库)以并行计算阶乘?]
我想编写一个使用并行计算(Open MP库)来计算整数的阶乘的程序。显然,下面的程序受比赛条件的影响。 //每次循环迭代...
您可以通过在数组上运行两次来并行执行此操作。第一次计算分产品并保存每个线程的总分产品。在第二遍中,通过上一个线程的总乘积来校正每个元素。这与并行执行累加总和(也称为前缀总和)相似,只是它是并行累加的乘积。
如果它是一个大数,则在拆分乘法时可以进行并行阶乘