Неспособность ускорить использование будущего класса и потоков C ++ - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь написать параллельную версию игры жизни Конвея.Я могу заставить все компилироваться и работать правильно, но я не вижу никакого ускорения.У меня есть симуляционный класс жизни, который я хочу разделить на 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 () на предыдущей итерации, что делает параллель незначительной.Есть ли где-нибудь вокруг этого или как-нибудь еще, где я могу видеть значительное ускорение?

...