Как устранить постоянные проблемы с производительностью с помощью RcppParallel

#performance #debugging #rcpp #rcppparallel

#Производительность #отладка #rcpp #rcppparallel

Вопрос:

У меня есть код на c , в котором я распараллеливаю некоторые симуляции Монте-Карло, используя Rcpp и RcppParallel . parallelFor Выполнение, как и ожидалось, намного быстрее, чем при использовании непараллельного цикла.

Однако, после запуска кода в течение ночи или двух, после его остановки. Мой компьютер работает очень медленно. Это сохраняется, даже если я завершаю / завершаю все R-процессы и решается только перезагрузкой.

Вопрос: Поскольку проблема появляется только после запуска кода в течение 1-2 дней, я не могу создать MWE. Я также не вижу ничего, что засоряет мой компьютер в диспетчере задач (на самом деле, это обычно показывает, что сам диспетчер задач занимает большую часть процессора). Любые указания на то, с чего начать поиск того, что отвечает за указанную проблему?

Комментарии:

1. Следите за использованием памяти процессов. Может быть, у вас непреднамеренная утечка?

2. это потребовало бы «нового» где-то в моем коде, нет? поскольку я использую только armadillo, RcppParallel, а мой собственный код не содержит никаких «новых» операторов, это кажется маловероятным. Или есть какой-то способ вызвать утечки неявно (я часто передаю матрицы по ссылке между функциями)

3. Да, использование new без удаления является очевидным, но C также может выделять объект из других операций.