Std :: уменьшить с помощью std :: effration :: par, кажется, ничего не делаетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: уменьшить с помощью std :: effration :: par, кажется, ничего не делает

Сообщение Anonymous »

Надеюсь, у вас все хорошо. Я очень сомневаюсь, что мой код более оптимизирован, особенно учитывая тот факт, что я использую std :: accumulauling в моем многопоточном коде. Я подозреваю, что что-то не так с моему использованию std :: drecid .
Я также использовал очень длинный вектор в коде, поэтому накладные расходы STD :: CODE не должны быть существенным фактором. »

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 

void accum(std::vector& arr, size_t start, size_t end,
std::vector& sum, size_t index) {
sum[index] = std::accumulate(arr.begin() + start, arr.begin() + end, 0LL);
}

int main() {
// Initialization
std::vector arr{};
size_t arr_size = 1'000'000'000;
for (size_t i{}; i < arr_size; i++) {
arr.push_back(i % 1000);
}

// First Method, Multithread
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79643809/stdreduce-with-stdexecutionpar-seems-to-do-nothing[/url]
Ответить

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

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

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

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

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