- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 R 包,其中包含 C-within-R 函数,名为 myFun。我想在我的并行计算中将其称为 myFun。这个 myFun 在我的 Mac 上本身运行良好,但是当通过并行计算函数 sfClusterApplyLB 调用它时,它显示出奇怪的行为:我的 Mac 显示加载轮并且 R 几乎卡住。一段时间后,R 停止卡住,sfClusterApplyLB 返回并行化结果。我真的很想避免这种卡住状态,因为当它卡住时我什至无法向上/向下滚动 R 控制台!
为了说明这一点,我有一个小示例代码。
我有一个小的 C 代码,它循环 100 次,同时每 20 秒打印出迭代次数并在每次迭代时休眠 1 秒:
# include <R.h>
# include <Rinternals.h>
# include <Rmath.h>
# include <R_ext/Linpack.h>
# include <unistd.h>
SEXP myC (SEXP j)
{
for (int i = 0; i < 100; i++)
{
R_FlushConsole();
R_ProcessEvents();
R_CheckUserInterrupt();
sleep(1); // sleep one second at each iteration. this sleep is
// replaced by something in my code
if (i%20==0) Rprintf("\v%d iterations are done...",i);
}
return (R_NilValue);
}
我创建了一个临时 R 包“myRpack”,其中包含此 myC 函数及其 R 包装函数 myFun,定义如下:
myFun <- function(x)
{
.Call("myC",
as.integer(x),
"myRpack")
}
“myRpack”是通过终端中的命令 R CMD INSTALL myRpack 安装到我的 Mac 上的。
这个函数 myCfun 在独立运行时工作正常。看看,
library(myRpack)
myFun(1)
现在,我想使用 snowfall 包并行计算这个 myFun。这是用于此目的的并行计算的 R 代码:
library("snowfall")
sfInit(parallel=TRUE,cpus=3,type="SOCK")
x <- 1 : 100
res.list <- sfClusterApplyLB(x,myFun)
然后 R 卡住了!
附言我前段时间在执行C-within-R函数(没有并行计算)时遇到了这个问题。我问这个问题Rcpp: Mac shows loading wheel and almost freeze .当时的解决方案是添加行
R_FlushConsole();
R_ProcessEvents();
R_CheckUserInterrupt();
在我的 C 文件中(我也在我的代码中这样做)。然而,这个解决方案在并行计算环境中没有帮助......
如有任何帮助,我将不胜感激。
PSS即使我将 myC 函数定义为:
# include <R.h>
# include <Rinternals.h>
# include <Rmath.h>
# include <R_ext/Linpack.h>
# include <unistd.h>
SEXP myC (SEXP j)
{
const int input=INTEGER(j)[0];
Rprintf("\n input %d",input);
for (int i = 0; i < 100; i++)
{
R_FlushConsole();
R_ProcessEvents();
R_CheckUserInterrupt();
sleep(1); // sleep one second at each iteration. this sleep is
// replaced by something in my code
if (i%20==0) Rprintf("\v%d iterations are done...",i);
}
return (R_NilValue);
}
问题存在。
最佳答案
我遇到了同样的问题,并偶然发现了一种解决方法,它可能适用于您的情况,也可能无效。
tl;dr:我意识到我正在运行的脚本会在终端的 R 实例中正确执行(每个实例一次) —后续 source()
ings 将挂起)。
更多背景知识,对于面临相同问题的任何其他人:我遇到它调用函数 gbm.step()
dismo并行打包。我正在使用 doParallel 和 foreach 包来并行化它。 `gbm.step() 函数是一个 C 函数来拟合提升回归树模型,当我并行运行它时,它会卡住(经检查,大部分 CPU 使用是系统,而不是用户)。
我刚开始在 Mavericks 上遇到这个问题,所以我想知道它是否与 Mavericks 的 compressed memory 有关或类似的东西。
(我的最终解决方法是开始在 Linux 服务器上运行此代码,所以请物有所值。)
关于c - 使用降雪包在 R 中使用 C-within-R 函数进行并行计算。问题 : Mac shows loading wheels and almost freezes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23020228/
我有一个扩展程序,我已经拆掉了裸机,它使自己处于不正确的状态,当它折叠时它会说“显示更少”。 这有两种情况 我使用“显示更多”展开扩展,然后离开屏幕。我打开另一个应用程序,然后返回到扩展程序。扩展的扩
为什么这些不相等? show $ if someCondition then someInt else some double 和 if someCondition then show someInt
下面给出的代码可以编译,ok。 data Car p q r = Car {company :: p , model :: q
是否可以在表结构中的“显示 0 到 0 个条目中的 0 个条目”旁边显示“显示条目”下拉列表。我想在底部显示“显示条目”下拉列表以及分页并显示 0 到 0 个条目,共 0 个条目。 提前致谢!!! 图
我不明白当你这样做一连串 .show() 时会发生什么。我也没有编写这段代码,也不知道如何弄清楚这里发生了什么。因此就有了这个问题。 // Remove favorite category
$(document).ready(function(){ $('html').addClass('js'); var contactForm = {
因此,在实现上一个问题的 jQuery 代码后,我注意到以下内容,每当人们添加位于显示较少/显示更多菜单中的产品时,系统会刷新页面,因为它会重新计算价格,因此也会刷新页面。但是当发生这种情况时,菜单会
我已经在 Windows 上设置了 mongodb 64bits。我成功运行了服务器和客户端。 但是当我输入时: show dbs 输出是 local 0.000GB 为什么? show dbs 应
正如标题所说,我有兴趣使用 Show a在我有 Show (a,b) 的情况下. GADT 很容易出现这个问题,如下所示: data PairOrNot a where Pair :: (b,c)
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
我找不到关于 Readline 选项 show-all-if-ambiguous 和 show-all-if-unmodified 之间区别的明确解释,以及是否它们影响不同的事物或相互排斥。关于这个主
我是 BeautifulSoup 的新手,我遇到了一些我不明白的问题,我认为这个问题可能尚未得到解答,但在这种情况下,我找到的答案都没有帮助我。 我需要访问 div 的内部以检索网站的词汇表条目,但是
我已经为 iOS 10 实现了新的小部件,并使用以下代码为其设置高度: @available(iOSApplicationExtension 10.0, *) func widgetActiveDis
克隆远程 git 存储库并发出 git show --show-signature 后,它说签名是好的。然后我更改了一些文件并测试了相同的命令,它仍然说签名是好的。 上面的命令到底检查了什么?验证克隆
我陷入了这个问题,而且我对 Haskell 很陌生,我试图用以下代码完成第一个欧拉问题: main = putStrLn . show . sum $ [3,6..1000]:[5,10..1000]
我有一个独立的 Android 和 iOS 应用程序。 目前正在 Android 上测试推送通知。 我已经使用以下通知键设置了我的 app.json "notification":{ "i
我所说的示例:http://jsfiddle.net/bsnxp/1/ 如果你检查源 .show().clone() display 是 inline-block (它应该是什么)并且 .clone(
我正在使用下面的 jQuery 代码来显示/隐藏网页上的额外文本 jQuery.fn.shorten = function(settings) { var config = { showC
我有一个带有 ng-show 的 div。这个 div 是我创建的自定义指令的包装器。 HTML JS function myDirective() { function doS
我是一名优秀的程序员,十分优秀!