Как параллелизировать сумму по произвольному столбцу вектора векторов с использованием стандартных политик выполнения биC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как параллелизировать сумму по произвольному столбцу вектора векторов с использованием стандартных политик выполнения би

Сообщение Anonymous »

Я пытаюсь параллелизировать часть более крупной программы, используя стандартную библиотеку C ++ и ее политики выполнения. Оригинальная программа использует STD :: Accumulate для вычисления сумм по столбцам 2D векторов (векторы векторов), но, поскольку std :: accumulate не принимает политики выполнения, я пытаюсь найти параллелизируемую альтернативу. Я совершенно новичок в C ++, но из того, что я собрал из ссылки C ++, они должны работать довольно аналогично. Тем не менее, мой код не компилируется после внесения этого изменения. Почему модифицированный код не работает и как я могу его исправить? Есть ли лучший способ параллелизировать сумму по столбцу 2D -вектора (вектор векторов) с использованием стандартной библиотеки C ++? Реализация должна работать как для процессора, так и для графического процессора.#include
#include
#include
#include

int main(int argc, char *argv[])
{
std::vector vec = {{1,2,3}, {4,5,6}, {7,8,9}};

// working sequential version of sum over second column of vec
double res = std::accumulate(vec.begin(), vec.end(), 0.0, [&](auto sum, auto b) { return sum + b[1]; });

std::cout

Подробнее здесь: https://stackoverflow.com/questions/795 ... rs-using-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»