我正在使用
注意:我不想在R中打印(
我的第一个方向: 我在R中使用
备选方向: 我还在使用redis将信息写入缓存,然后由连接到redis数据库的其他人使用。但我没有找到与redis的C接口。我不想使用Lua。我找到的最接近的是Writing a Custom Redis Command In C - Part 2。
但我认为我的需求要简单得多。 有什么想法吗?
更新:这就是我希望这个过程理想情况下的工作方式。
.C
从R调用一个C函数。这是一个将运行几分钟的模拟,每隔几次迭代,我想将一些进展信息发送给R。也就是说,我不想等待C函数完成后再一次性将所有信息发送到R。注意:我不想在R中打印(
Rprintf
可以做到这一点)。但我想将这样的信息传递给R。并且如果包括了R.h
,使用error
会将错误传递给R,但我对异常处理不感兴趣。我的第一个方向: 我在R中使用
futile.logger
来记录这些内容。最好能够将此类信息传递给调用R函数使用的同一记录器,但我在网上找不到任何示例。备选方向: 我还在使用redis将信息写入缓存,然后由连接到redis数据库的其他人使用。但我没有找到与redis的C接口。我不想使用Lua。我找到的最接近的是Writing a Custom Redis Command In C - Part 2。
但我认为我的需求要简单得多。 有什么想法吗?
更新:这就是我希望这个过程理想情况下的工作方式。
# PART 1: webserver calls R function
# the R call
res = .C("montecarlo_sampler.c", as.matrix(inputData), as.matrix(ouputData), as.integer(iterations))
// PART 2: the C function
void montecarlo_sampler( double *inputData, double *outputData, int *iterations){
// do some preprocessing
int iter =1;
while(iter<1000000){
if(iter % 1000 == 0) {
// summarize output from last 1000 iterations
// dump summary data to a logger or redis
}
// do usual sampling stuff in C
}
}
PART 3:
// listening on the django side
// polls redis every few seconds to see if update has reached.
// sends summary output for visualization to client