Как я могу `распечатать` или` кошка` при использовании параллельного

Если я вызываю функцию, используяparSapply затем ,printmessage или жеcat заявления внутри этой функции неКажется, вывод на консоль.

Мой процесс занимает очень много времени, поэтому мне нужен какой-то способ увидеть прогресс и получить результаты, как они сделаны. Существуют ли какие-либо специальные команды, которые позволили бы мне печатать на консоли из параллельного процесса?

Пример:

library(parallel)

oneloop = function(x) {
  for(i in 1:50) {
    a = rnorm(100000)
    a = sort(a)
  }
  print(x)
  message(x)
  cat(x)
}

cl 
 Corone23 мая 2013 г., 17:22
Спасибо, изменили, чтобы включить это
 Tyler Rinker23 мая 2013 г., 17:26
делаетflush.console иметь эффект?
 Ben24 мая 2013 г., 06:36
Тесно связанные вопросы и ответыA:stackoverflow.com/q/10903787/1036500
 Corone23 мая 2013 г., 17:30
@TylerRinker, хорошая идея, но нет, не имеет значения. Я думаю, что выходные данные для рабочих процессов не должны быть захвачены ... ... так что вопрос может быть "Вы можете перенаправить рабочий стандарт на основной стандартный вывод?, но я'м спекулировать сейчас.

Ответы на вопрос(2)

я используюmakeCluster сoutfile в Windows с пакетом doParallel версии 1.0.8. Я'я могу хвостoutfile используя простую команду Powershellpowershell Get-Content c:/path/to/log/mylog.txt -wait, Работает для меня.

Решение Вопроса

С помощьюoutfile парам вmakeCluster вы можете перенаправить вывод в файл, а затем проверить этот файл, чтобы увидеть, как ваша программа продвигается.

Интересно, что на машине с Linux она установлена в"" выводит на консоль, но это неу меня не работает на машине с Windows. Вывод файла работает на обоих.

 JMT2080AD14 дек. 2017 г., 20:05
Использование настроекoutfile = "" у меня печать в терминал работает с использованием emacs и ESS в Windows.
 Ben24 мая 2013 г., 06:45
Немного другой подход к получению файла журнала прогресса при использовании%dopar% подробно описано здесь:viksalgorithms.blogspot.com/2012/02/...
 MichaelChirico03 мая 2016 г., 21:49
Это'Странно, насколько плохо это задокументировано. Мне пришлось изучать исходный код в течение добрых 15 минут, прежде чем я нашел именно то, чтоoutfile делает (в основном добавляется к команде, отправляемой на терминал какOUT= outfile). Отправка на терминал с"" согласуется, например, сwrite.table, который принимает соединение"" означатьstdout
 Steve Weston12 окт. 2013 г., 18:13
outfile="" Безразлично»на Windows работает с Rgui, но с Rterm.

Ваш ответ на вопрос