Для начала я немного знаком с пакетами doparallel и parallel в R, поэтому, пожалуйста, воздержитесь от предложения этих пакетов без примера кода.
В настоящее время я работаю с моделями регрессии LASSO, созданными с использованием пакета glmnet. Я полагаюсь на функцию cv.glmnet в этих пакетах, чтобы сказать мне, что такое идеальная лямбда... весь этот мусор непочтителен к моему фактическому вопросу, но я надеюсь, что предыстория поможет. Функция cv.glmnet делает то, что я хочу, но занимает слишком много времени. Я хочу сделать параллель.
Моя проблема в том, что пакеты parallel r предназначены для получения списка, а затем применения операции к этому списку, поэтому, когда я пытаюсь передать отполированную функцию, такую как cv.glmnet (даже если она итеративна), я получаю одноядерную обработку единственный набор данных, который я хочу, чтобы cv.glmnet обрабатывал, а не распределял этот процесс по всем ядрам на моем сервере.
Можно ли распределить одно вычисление между несколькими процессорами/ядрами в r (какие пакеты, пример кода и т. д.)? Или можно ли заставить распараллеливающие пакеты, такие как parallel и doparallel, распознавать итеративную структуру функции cv.glmnet, а затем распространять ее для меня? Жду рекомендаций, буду признателен за любую помощь или понимание.
К сожалению, у меня нет разрешения делиться данными, с которыми я работаю. Для воспроизводимого примера см. этот пост, код из ответа представляет собой качество копирования/вставки для генерации данных, регрессии лассо и дает пример использования функции cv.glmnet: https://stats.stackexchange.com/questions/72251/an-example-lasso-regression-using-glmnet-for-binary-outcome