Как я могу использовать openmp для распараллеливания моего кода агрегации?

На самом деле, я хочу сделать агрегацию для таблицы, каждый столбец которой является массивом. Поэтому мне нужно отсканировать таблицу и выполнить агрегацию. Но кажется, что Openmp не поддерживает использование имени массива после директивы сокращения. Как я могу использовать openmp для распараллеливания моего кода агрегации?

0

Решение

Я думаю, что вы столкнулись с двумя отдельными ограничениями в OpenMP, которые мешают вам делать свое дело:

  1. Ваша переменная накопителя суммы — это не простая переменная, а запись массива, которую вы хотите передать в OpenMP «по имени». OpenMP не поддерживает это. Получить значение из массива, записать его в локальную переменную, выполнить сокращение для локальной переменной и записать значение обратно в массив впоследствии.
  2. «Запись» имеет определенный пользователем тип данных. OpenMP также не поддерживает сокращение по сравнению с ними. Таким образом, все 6 членов «Entry», которые вы хотите суммировать, должны стать отдельными локальными переменными. Вы можете передать список из 6 переменных в предложение OpenMP «сокращение».
0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector