我想使用并行编程来加速这个过程。
在该类中,成员函数mainFun中有一个for循环。在每次迭代中,都会调用subFun。如何使用并行调用来并发调用subFun,以充分利用CPU的能力?
非常感谢。
代码如下:
#include <vector>
#include <ppl.h>
using namespace std;
using namespace concurrency;
typedef vector<double> Vector;
typedef vector<Vector> Matrix;
class myClass {
private:
int num;
Matrix a;
public:
myClass(int n) :
num(n), a(num, Vector(2)) {}
Vector subFun(int n) {
Vector b(2, 0);
//body: to be implemented
return b;
}
void mainFun() {
for (int i = 0; i < num; i++) {
//parallel_invoke([&a[i]] { a[i] = subFun(i); });//<-- how to implement parallel_invoke?
}
}
};
int main() {
myClass A(1000);
return 0;
}发布于 2017-05-04 18:52:51
你有没有考虑过多线程?您可以在单独的线程中调用每个函数调用。
https://stackoverflow.com/questions/43780427
复制相似问题