gpt4 book ai didi

c++ - 多次并行调用一个函数

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:20 25 4
gpt4 key购买 nike

我想多次调用具有不同 arg 值的函数。为了加快执行速度,我想在不考虑其实现的情况下调用该函数。

在一个循环中,我将 arg 传递给函数并立即调用它我的程序不应该等待函数执行并再次循环,相反它不应该考虑函数还没有完成它应该继续的第一个循环并一次又一次地调用该函数,直到循环结束。

如何使用 fork 和 threads 来做到这一点,哪个更快,代码框架会有帮助?假设我的函数是 void foo(arg1,arg2)

最佳答案

如果它是一种计算密集型方法,那么为每次调用生成一个线程/进程并不是一个好主意(事实上,这绝不是一个好主意!)。

您可以使用 openmp 高效地并行化 for 循环:

#pragma omp parallel for
for(int i = 0; i < N; i++)
{
int arg1 = ...
int arg2 = ...
foo(arg1, arg2);
}

这将根据可用 CPU 内核的数量创建多个线程,然后在它们之间拆分迭代。您可以使用 schedule 子句进一步调整调度。

关于c++ - 多次并行调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10217719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com