Параллельный cv.glmnet с большой матрицей в windows - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь запустить параллельные модели пуассона cv.glmnet на машине с Windows с 64 ГБ ОЗУ.Мои данные - это матрица размером 20 миллионов строк и 200 строк, размером около 10 ГБ.Я использую makecluster и doParallel, и устанавливаю параллель = TRUE в cv.glmnet.В настоящее время у меня есть две проблемы с этой настройкой:

  1. Распределение данных между различными процессами занимает часы, значительно снижая скорость.Я знаю, что это можно решить с помощью fork на Linux-машинах, но есть ли способ сократить это время на Windows?

  2. Я использую это для нескольких моделей с данными и ответами, поэтому размер объекта меняется каждый раз.Как я могу заранее определить, сколько ядер я могу запустить, прежде чем получит ошибку «недостаточно памяти»?Я особенно озадачен тем, как данные распределяются.Если я буду работать на 4 ядрах, первая rsession будет использовать 30 ГБ памяти, а остальные будут ближе к 10 ГБ.К чему идут эти 30 Гб, и есть ли способ уменьшить их?

...