我正在尝试编写康威生活游戏的平行版本。我可以将所有内容编译并正确运行,但看不到任何加速。我有一个模拟人生课程,我想分成4代,可以并行完成。
`future<vector<vector<int> > > first_quarter = async(launch::async, [&]{
return GameOfLife_parallel::SimulateLife(
board, 0, (life_cycles/4));});
future<vector<vector<int> > > second_quarter = async(launch::async, [&]{
return GameOfLife_parallel::SimulateLife(
new_board = first_quarter.get(), (life_cycles/4),(life_cycles/2));});`
这是基本思想,我试图将世代划分为4个独立的线程。我认为问题在于,对于每个连续的季度,我都需要在上一次迭代中调用get(),这实际上使得并行可以忽略不计。无论如何,还是我可以看到明显的加速?