mclapply with big объекты - «сериализация слишком велика для хранения в необработанном векторе»

У меня постоянно возникают проблемы с многоядерным пакетом и большими объектами. Основная идея заключается в том, что я использую функцию Bioconductor ( readBamGappedAlignments ) для чтения больших объектов. У меня есть символьный вектор имен файлов, и я использовал mclapply , чтобы перебирать файлы и считывать их в список. Функция выглядит примерно так:

objects <- mclapply(files, function(x) {
  on.exit(message(sprintf("Completed: %s", x)))
  message(sprintf("Started: '%s'", x))
  readBamGappedAlignments(x)
}, mc.cores=10)

Однако я продолжаю получать следующую ошибку: Ошибка: сериализация слишком велика для сохранения в необработанном векторе . Однако кажется, что я могу читать те же файлы в одиночку без этой ошибки. Я нашел упоминание об этой проблеме здесь , без разрешения.

Любые предложения по параллельному решению приветствуются - это нужно делать параллельно. Я мог бы смотреть в сторону снега, но у меня есть очень мощный сервер с 15 процессорами, 8 ядрами каждый и 256 ГБ памяти, на котором я могу это делать. Я предпочитаю делать это на этой машине по ядрам, а не использовать один из наших кластеров.

13
задан Vince 25 April 2011 в 04:04
поделиться