-
12-12-2019 - |
题
这些是我在Linux机器上编译r的配置标志。我已经尝试了很多,这似乎在绿色的执行时间下切断了12秒,以获得更大的数据集。本质上我与这些选项从2.087到1.48秒。
./configure CFLAGS="-O3 -g -std=gnu99" CXXFLAGS="-O3 -g" FFLAGS="-O2 -g" LDFLAGS="-Bdirect,--hash-stype=both,-Wl,-O1" --enable-R-shlib --without-x --with-cairo --with-libpng --with-jpeglib
.
更新1
脚本尚未进行优化。另一个组实际上是在脚本上工作,我们已经提出了使用应用功能,但不确定这在时代的差异如何。
配置文件的顶部看起来像这样。大多数这些功能将稍后将使用应用功能进行优化,但是现在它是两个机器上的苹果标记苹果的台式。
"eval.with.vis" 8.66 100.00 0.12 1.39
"source" 8.66 100.00 0.00 0.00
"[" 5.38 62.12 0.16 1.85
"GenerateQCC" 5.30 61.20 0.00 0.00
"[.data.frame" 5.20 60.05 2.40 27.71
"ZoneCalculation" 5.12 59.12 0.02 0.23
"cbind" 3.22 37.18 0.34 3.93
"[[" 2.26 26.10 0.38 4.39
"[[.data.frame" 1.88 21.71 0.82 9.47
.
我的第一个怀疑,我将很快测试并与我的调查结果更新是KVM Linux虚拟化是责备。此脚本非常内存密集,并且由于大量的阵列操作,并且r副本通过复制(当然必须是Malloc),这可能会导致问题。由于VM没有直接访问内存控制器,并且必须与其他VM共享它,这可能会导致问题很可能。我今天晚些时候将获得一个原料的机器,并将使用我的调查结果进行更新。
谢谢所有人的快速更新。
更新2
我们最初认为性能问题的原因是由VM超线穿线引起的,但是这一结果是不正确的,并且性能在裸金属机上相对相同。
我们稍后意识到Windows笔记本电脑使用32位版本的R来计算。这使我们尝试64位版本的R,结果比32位比32位相同相同的脚本。这导致了我对64位可能比32位版本的r?
慢的问题如何〜140%。我们所看到的是32
Windows 32位执行时间48秒 Windows 64位执行时间2.33秒。
Linux 64位执行时间2.15秒。 Linux 32位执行时间<正在进行>(在RHEL 6.3 x86_64上构建了32位版本,但没有看到性能改进,我将重新加载32位版本的RHEL 6.3)
我发现了这个链接,但它只解释了在某个64位机器上击中的15-20%。
抱歉我不能在法律上发布脚本。解决方案 3
问题已解决,并且它是由非优化的blas库引起的。
本文很有帮助。使用阿特拉斯是一个很好的帮助。