R plot 生成完全空白的 PNG
R plot generates completely blank PNG
我在 Beowulf 计算集群上 运行 运行一个 R 脚本,每当脚本 运行 在其中一个计算节点上运行时,它都会生成一个空白的 PNG。 运行 在头节点上工作正常。
为了尝试诊断问题,我将脚本简化为:
#!/usr/bin/env Rscript
the_plot <- function()
{
x <- seq(0, 1, length.out = 100)
y <- pbeta(x, 1, 10)
plot(
x,
y,
xlab = "False Positive Rate",
ylab = "Average true positive rate",
type = "l"
)
}
png(file='plot_test.png', width=400, height=300, type='cairo')
par(family='sans', cex=1, mar=c(5,5,1,1))
the_plot()
dev.off()
当我在头节点上 运行 时,它会生成一条曲线、轴和标签。在计算节点上,标签没有出现,所以可能是字体问题。
我以前遇到过同样症状的问题,加上这样的错误消息:
Fontconfig error: Cannot load default config file
我发现 stata.com's support page 上描述的错误,我通过将 /etc/fonts
映射到计算节点来消除它。错误消息消失了,但绘图仍然是空白,所以可能还有另一个文件夹需要映射。
我安装了 strace
并在头节点上成功 运行 时跟踪了脚本正在加载的文件。我还跟踪了它在计算节点上 运行 失败的情况。
strace -r -o strace.txt ./plot_test.R
bpsh 0 strace -r -o strace_n0.txt ./plot_test.R
从文件中清除大量噪音并比较两者后,我发现脚本正在加载 /usr/lib64/libcairo.so.2
、/usr/share/fonts
和 /var/cache/fontconfig
。 None 映射到计算节点。
将文件夹映射到计算节点是通过 /etc/exports
和 /etc/beowulf/fstab
控制的,如 Scyld documentation 中所述。映射所有这些文件夹后,绘图就起作用了。
我在 Beowulf 计算集群上 运行 运行一个 R 脚本,每当脚本 运行 在其中一个计算节点上运行时,它都会生成一个空白的 PNG。 运行 在头节点上工作正常。
为了尝试诊断问题,我将脚本简化为:
#!/usr/bin/env Rscript
the_plot <- function()
{
x <- seq(0, 1, length.out = 100)
y <- pbeta(x, 1, 10)
plot(
x,
y,
xlab = "False Positive Rate",
ylab = "Average true positive rate",
type = "l"
)
}
png(file='plot_test.png', width=400, height=300, type='cairo')
par(family='sans', cex=1, mar=c(5,5,1,1))
the_plot()
dev.off()
当我在头节点上 运行 时,它会生成一条曲线、轴和标签。在计算节点上,标签没有出现,所以可能是字体问题。
我以前遇到过同样症状的问题,加上这样的错误消息:
Fontconfig error: Cannot load default config file
我发现 stata.com's support page 上描述的错误,我通过将 /etc/fonts
映射到计算节点来消除它。错误消息消失了,但绘图仍然是空白,所以可能还有另一个文件夹需要映射。
我安装了 strace
并在头节点上成功 运行 时跟踪了脚本正在加载的文件。我还跟踪了它在计算节点上 运行 失败的情况。
strace -r -o strace.txt ./plot_test.R
bpsh 0 strace -r -o strace_n0.txt ./plot_test.R
从文件中清除大量噪音并比较两者后,我发现脚本正在加载 /usr/lib64/libcairo.so.2
、/usr/share/fonts
和 /var/cache/fontconfig
。 None 映射到计算节点。
将文件夹映射到计算节点是通过 /etc/exports
和 /etc/beowulf/fstab
控制的,如 Scyld documentation 中所述。映射所有这些文件夹后,绘图就起作用了。