How to output a message in snowfall?

后端 未结 1 1933
傲寒
傲寒 2021-02-15 17:03

I am conducting a simulation study using snowfall package on Windows 7.

I like to print out a message for every 10 runs to main R console to monitor the progress, but i

1条回答
  •  情歌与酒
    2021-02-15 17:54

    Check ?sfCat and find the line where it says:

    sfCat is a debugging function printing a message on all slaves (which appear in the logfiles).

    This tells us that we need to enable logging in the call to sfInit (argument slaveOutfile). Then, each call to sfCat() will dump stuff to the log file you specified. It took me a while to figure that out as well ;-)

    Code Example

    if (!require("snowfall")) {
        install.packages("snowfall")
        require("snowfall")
    }
    
    sfInit(parallel=TRUE, cpus=4, slaveOutfile="test.txt")
    sfLibrary("snowfall", character.only=TRUE)
    
    res <- sfClusterApplyLB(1:100, function(x) {
        sfCat(paste("Iteration ", x), sep="\n")
    })
    sfStop()
    

    Output of ./test.txt

    [...]
    
    Calling a snowfall function without calling 'sfInit' first or after sfStop().
    'sfInit()' is called now.
    snowfall 1.84 initialized: sequential execution, one CPU.
    
    Iteration  4
    Type: EXEC 
    Iteration  92
    Type: EXEC 
    Iteration  94
    Type: EXEC 
    Iteration  96
    Type: EXEC 
    Iteration  98
    Type: EXEC 
    Iteration  100
    ype: EXEC 
    Iteration  29
    Type: EXEC 
    Iteration  31
    Type: EXEC 
    Iteration  33
    Type: EXEC 
    Iteration  35
    Type: EXEC 
    Iteration  37
    Type: EXEC 
    Iteration  39
    Type: EXEC 
    Iteration  41
    Type: EXEC 
    Iteration  43
    Type: EXEC 
    Iteration  45
    Type: EXEC 
    Iteration  47
    Type: EXEC 
    Iteration  49
    Type: EXEC 
    Iteration  51
    Type: EXEC 
    Iteration  53
    Type: EXEC 
    Iteration  55
    Type: EXEC 
    Iteration  57
    Type: EXEC 
    Iteration  59
    Type: EXEC 
    Iteration  61
    Type: EXEC 
    Iteration  63
    Type: EXEC 
    Iteration  65
    Type: EXEC 
    Iteration  67
    Type: EXEC 
    Iteration  69
    Type: EXEC 
    Iteration  71
    Type: EXEC 
    Iteration  73
    Type: EXEC 
    Iteration  75
    Type: EXEC 
    Iteration  77
    Type: EXEC 
    Iteration  79
    Type: EXEC 
    Iteration  81
    Type: EXEC 
    Iteration  83
    Type: EXEC 
    Iteration  85
    Type: EXEC 
    Iteration  87
    Type: EXEC 
    Iteration  89
    Type: EXEC 
    Iteration  91
    Type: EXEC 
    Iteration  93
    Type: EXEC 
    Iteration  95
    Type: EXEC 
    Iteration  97
    Type: EXEC 
    Iteration  99
     EXEC 
    Iteration  74
    Type: EXEC 
    Iteration  76
    Type: EXEC 
    Iteration  78
    Type: EXEC 
    Iteration  80
    Type: EXEC 
    Iteration  82
    Type: EXEC 
    Iteration  84
    Type: EXEC 
    Iteration  86
    Type: EXEC 
    Iteration  88
    Type: EXEC 
    Iteration  90
    

    Own question

    Does anyone have a clue how to "control" the specific things that go to the log file? E.g., what would be nice is to include information about which worker finished which job etc.

    0 讨论(0)
提交回复
热议问题