Не получен стандартный вывод внутри цикла foreach

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

Прежде чем я превратил эту операцию в цикл foreach, я записывал отладочные сообщения, используя messages(), Тем не менее, так как я перешел на использование foreach а также %dopar%Я заметил, что цикл "гаснет": он делает то, что должен, но я не получаю никакого вывода. (Я должен отметить, что этот цикл записан в сценарий, который я вызываю из оболочки с Rscript.)

Я предполагаю, что это как-то связано с тем, что doParallel раскручивает другие потоки - может быть, эти потоки больше не знают, куда выводить стандартный вывод? Мысли?

1 ответ

Решение

Если вы хотите выводить из цикла параллельного foreach, просто используйте опцию outfile как в этом коде.

Другие вопросы по тегам