Я пытаюсь параллелизировать часть более крупной программы, используя стандартную библиотеку 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
Как параллелизировать сумму по произвольному столбцу вектора векторов с использованием стандартных политик выполнения би ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как параллелизировать асинхронные звонки в ожидании назначения имущества?
Anonymous » » в форуме Javascript - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
В хранилище векторов застряло количество файлов in_progress или хранилище векторов пусто
Anonymous » » в форуме Python - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-
-
-
В хранилище векторов застряло количество файлов in_progress или хранилище векторов пусто
Anonymous » » в форуме Python - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-