glmmTMB 分段错误
glmmTMB segmentation fault
我的模型是这样的:
m1 <- glmmTMB(counts ~ fixed1*fixed2 + (1|random/nested_random)
+ offset(log_total_counts), data = long_data_frame,
verbose=FALSE,family="nbinom2")
这是 long_data_frame 的 115 行中的前六行:
fixed1 fixed2 random nested_random counts log_tot_reads_orig
0 0 1 1 643 12.89582
1 8 2 6 585 13.67509
2 25 3 11 846 13.94209
3 75 4 16 755 13.93056
4 0 5 21 1428 13.65672
6 8 6 26 1566 13.64421
模型 运行 在我的 Mac 笔记本电脑 (OS 10.13.4) 上完成。但是,我需要将此分析移植到本地集群,因为我需要这些 glmmTMB 测试的多个 300,000 运行s。因此,我使用
在集群上安装了 glmmTMB
install.packages('package_name', dependencies=TRUE)
我运行时没有抱怨:
library(glmmTMB)
但是当我 运行 集群上模型的一个单独示例时,出现以下错误:
*** caught segfault ***
address (nil), cause 'memory not mapped'
Traceback:
1: retape(set.defaults = TRUE)
2: MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB")
3: eval(substitute(expr), data, enclos = parent.frame())
4: eval(substitute(expr), data, enclos = parent.frame())
5: with.default(TMBStruc, MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB"))
6: with(TMBStruc, MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB"))
7: fitTMB(TMBStruc)
8: glmmTMB(copy ~ week * conc + (1 | pool/cell) + offset(log_tot_reads_orig), data = subset(copy_raw_sub_l, copy_raw_sub_l$id == i), verbose = FALSE, family = "nbinom2")
Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
这里是集群的一些信息:
Sys.info()
sysname release
"Linux" "2.6.32-696.18.7.el6.x86_64"
version nodename
"#1 SMP Thu Jan 4 17:31:22 UTC 2018" "login2"
machine login
"x86_64" "bob"
user effective_user
"bob" "bob"
这是关于 glmmTMB 的信息:
installed.packages('glmmTMB')
Package LibPath Version Priority Depends Imports LinkingTo Suggests
Enhances License License_is_FOSS License_restricts_use OS_type Archs
MD5sum NeedsCompilation Built
"MD5sum Needs Compilation Built"看起来不对?我猜这几乎可以肯定是我集群环境的问题?我将非常感谢有关如何解决此问题的建议,或有关可以在集群中修改或升级的内容的指示,然后我可以将其建议给我的本地管理员。非常感谢!
我出色的集群管理员在 GitHub 上向 glmmTMB 提交了关于此问题的报告:
https://github.com/glmmTMB/glmmTMB/issues/369
我们被告知,这个问题显然之前已经处理过:
https://github.com/glmmTMB/glmmTMB/issues/232
我的集群管理员建议的解决方案是创建一个名为
的文件
$HOME/.R/Makevars
内容如下:
CXX = g++
CXXSTD = -std=c++11
CXXFLAGS =-m64 -O3 -fPIC
然后我运行:
install.packages("TMB",dependencies=TRUE,type="source")
我收到以下错误消息:
ERROR: failed to lock directory ‘path/R/x86_64-pc-linux-gnu-library/3.5’ for modifying
Try removing ‘path/R/x86_64-pc-linux-gnu-library/3.5/00LOCK-TMB’
我按照建议删除了恶意目录。然后我再一次 运行:
install.packages("TMB",dependencies=TRUE,type="source")
之后是:
install.packages("glmmTMB",dependencies=TRUE,type="source")
然后我运行:
library(glmmTMB)
和运行问题中描述的模型。胜利的喜悦淹没了我的感官,因为屏幕上的协变量和对数似然 运行 与我幸福的泪水同时出现。
我的模型是这样的:
m1 <- glmmTMB(counts ~ fixed1*fixed2 + (1|random/nested_random)
+ offset(log_total_counts), data = long_data_frame,
verbose=FALSE,family="nbinom2")
这是 long_data_frame 的 115 行中的前六行:
fixed1 fixed2 random nested_random counts log_tot_reads_orig
0 0 1 1 643 12.89582
1 8 2 6 585 13.67509
2 25 3 11 846 13.94209
3 75 4 16 755 13.93056
4 0 5 21 1428 13.65672
6 8 6 26 1566 13.64421
模型 运行 在我的 Mac 笔记本电脑 (OS 10.13.4) 上完成。但是,我需要将此分析移植到本地集群,因为我需要这些 glmmTMB 测试的多个 300,000 运行s。因此,我使用
在集群上安装了 glmmTMBinstall.packages('package_name', dependencies=TRUE)
我运行时没有抱怨:
library(glmmTMB)
但是当我 运行 集群上模型的一个单独示例时,出现以下错误:
*** caught segfault ***
address (nil), cause 'memory not mapped'
Traceback:
1: retape(set.defaults = TRUE)
2: MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB")
3: eval(substitute(expr), data, enclos = parent.frame())
4: eval(substitute(expr), data, enclos = parent.frame())
5: with.default(TMBStruc, MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB"))
6: with(TMBStruc, MakeADFun(data.tmb, parameters, map = mapArg, random = randomArg, profile = NULL, silent = !verbose, DLL = "glmmTMB"))
7: fitTMB(TMBStruc)
8: glmmTMB(copy ~ week * conc + (1 | pool/cell) + offset(log_tot_reads_orig), data = subset(copy_raw_sub_l, copy_raw_sub_l$id == i), verbose = FALSE, family = "nbinom2")
Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
这里是集群的一些信息:
Sys.info()
sysname release
"Linux" "2.6.32-696.18.7.el6.x86_64"
version nodename
"#1 SMP Thu Jan 4 17:31:22 UTC 2018" "login2"
machine login
"x86_64" "bob"
user effective_user
"bob" "bob"
这是关于 glmmTMB 的信息:
installed.packages('glmmTMB')
Package LibPath Version Priority Depends Imports LinkingTo Suggests
Enhances License License_is_FOSS License_restricts_use OS_type Archs
MD5sum NeedsCompilation Built
"MD5sum Needs Compilation Built"看起来不对?我猜这几乎可以肯定是我集群环境的问题?我将非常感谢有关如何解决此问题的建议,或有关可以在集群中修改或升级的内容的指示,然后我可以将其建议给我的本地管理员。非常感谢!
我出色的集群管理员在 GitHub 上向 glmmTMB 提交了关于此问题的报告:
https://github.com/glmmTMB/glmmTMB/issues/369
我们被告知,这个问题显然之前已经处理过:
https://github.com/glmmTMB/glmmTMB/issues/232
我的集群管理员建议的解决方案是创建一个名为
的文件$HOME/.R/Makevars
内容如下:
CXX = g++
CXXSTD = -std=c++11
CXXFLAGS =-m64 -O3 -fPIC
然后我运行:
install.packages("TMB",dependencies=TRUE,type="source")
我收到以下错误消息:
ERROR: failed to lock directory ‘path/R/x86_64-pc-linux-gnu-library/3.5’ for modifying
Try removing ‘path/R/x86_64-pc-linux-gnu-library/3.5/00LOCK-TMB’
我按照建议删除了恶意目录。然后我再一次 运行:
install.packages("TMB",dependencies=TRUE,type="source")
之后是:
install.packages("glmmTMB",dependencies=TRUE,type="source")
然后我运行:
library(glmmTMB)
和运行问题中描述的模型。胜利的喜悦淹没了我的感官,因为屏幕上的协变量和对数似然 运行 与我幸福的泪水同时出现。