Не получен стандартный вывод внутри цикла foreach
Я использую doParallel
сделать довольно длинную параллельную обработку с foreach
, Вместо большинства примеров, которые я вижу, где в цикл подается интенсивный вычислительный, но вводящий свет код, я использую foreach
координировать одновременную обработку ряда больших независимых наборов данных. Так что внутри цикла я использую метаданные для чтения файла с диска, работы с ним и обратной записи.
Прежде чем я превратил эту операцию в цикл foreach, я записывал отладочные сообщения, используя messages()
, Тем не менее, так как я перешел на использование foreach
а также %dopar%
Я заметил, что цикл "гаснет": он делает то, что должен, но я не получаю никакого вывода. (Я должен отметить, что этот цикл записан в сценарий, который я вызываю из оболочки с Rscript
.)
Я предполагаю, что это как-то связано с тем, что doParallel
раскручивает другие потоки - может быть, эти потоки больше не знают, куда выводить стандартный вывод? Мысли?
1 ответ
Если вы хотите выводить из цикла параллельного foreach, просто используйте опцию outfile
как в этом коде.