Я использую Cilk и пользовательский редуктор, как описано здесь: https://software.intel.com/en-us/node/522608. В их примере они используют редуктор для операции добавления в связанный список.
Теперь я хочу создать вектор редукторов (используя std::vector
); Однако я получаю следующую ошибку во время выполнения:
Reducer should be cache aligned. Please see comments following this assertion for explanation and fixes.
После просмотра комментариев (строка 948 здесь: https://github.com/Nyks45/Toolchain/blob/master/lib/gcc/x86_64-unknown-linux-gnu/5.3.1/include/cilk/reducer.hЯ понял, что мне нужно использовать редукторы «нового стиля», чтобы обойти это, чтобы они не обязательно были выровнены по кешу. Однако я не могу найти никакой документации / примера того, как я могу создать редуктор «нового стиля».
Как мне создать собственный редуктор «нового стиля» для приведенного выше примера связанного списка?
Задача ещё не решена.
Других решений пока нет …