RCPP Параллельные вычисления в списке Ress MalresC++

Программы на C++. Форум разработчиков
Anonymous
RCPP Параллельные вычисления в списке Ress Malres

Сообщение Anonymous »

У меня есть Rcpp :: list больших разреженных матриц, передаваемых из R. Я хотел бы работать над этим списком матриц параллельно, не делая копий. В частности, несколько потоков будут извлекать отдельные подмножества столбцов каждой записи матрицы в списке и использовать их для дальнейших вычислений. Нам не нужен доступ к списку или его матрицам. Мы будем только читать. (Например, я попытался использовать Rcpp :: as (list ). Cols (Columns) для извлечения желаемых столбцов из матрицы i^th Sparse из списка, но R сообщает о предупреждениях о дисбалансе стека, когда делаем это параллельно, но все еще дает мне ожидаемые результаты при повторных запусках кода.) < /p>
Мне нравится идея использования указателей, предложенных Этот плакат, для параллельной операции RCPP в списках плотных матриц Arma :: Mat Тип: безопасно ли доступ (только для чтения) R в рамках списка RCPP :: из параллелизированного цикла OpenMP с помощью STD: STD: : Vector ? В частности, нам нужен способ извлечь указатели для каждой матрицы в списке (что приведенное выше пост выполняет через numericmatrix ), а затем инициализируйте arma :: sp_mat путем повторного использования памяти (что вышеуказанное сообщение через Arma :: Mat Advanced Constructor; Зеркало это именно для случая Arma :: sp_mat ).

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-matrices

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