如果我选择使用OpenMP是正确的,请给我输入。这是我的用例。
我们有一个Windows C ++软件,它对一组输入执行相同的大型复杂计算(每个都是独立的,可以由一个线程独立完成,我计划使用OpenMP)。这种情况的发生方式是循环遍历输入(使用for
循环)并使用输入作为参数调用函数(执行复杂计算)。计划使用#pragma omp parallel for
并行化for
循环。对于某些输入,我们可能决定不计算整个事物,因此根据一些标准从中间函数返回(对于某些线程,中间要求退出)。
另外,OpenMP有哪些缺点?为什么有人不使用OpenMP?我们可以在商业软件中使用它吗?