具有36个核的R比具有8个核的R慢得多

具有36个核的R比具有8个核的R慢得多,r,amazon-ec2,parallel-processing,benchmarking,R,Amazon Ec2,Parallel Processing,Benchmarking,右边是EC2实例的结果,有36个内核和64GB内存,而左边是我的笔记本电脑,有8个内核和8GB内存 我不熟悉在AWS EC2实例上运行R,所以我可能需要配置我的R以利用EC2实例的原始计算能力 有人能告诉我怎么做,或者我有什么遗漏吗 谢谢 我在这里找到了更好的答案 对不必要的反对票相当失望 我们经常听说,如果您的代码大量使用 向量/矩阵运算您将看到显著的性能 改进 从CRAN下载的预编译R发行版使用 线性代数的参考BLAS/LAPACK实现 在操作方面,这些实现是为了稳定和交叉而构建的 平台兼

右边是EC2实例的结果,有36个内核和64GB内存,而左边是我的笔记本电脑,有8个内核和8GB内存

我不熟悉在AWS EC2实例上运行R,所以我可能需要配置我的R以利用EC2实例的原始计算能力

有人能告诉我怎么做,或者我有什么遗漏吗


谢谢

我在这里找到了更好的答案

对不必要的反对票相当失望

我们经常听说,如果您的代码大量使用 向量/矩阵运算您将看到显著的性能 改进

从CRAN下载的预编译R发行版使用 线性代数的参考BLAS/LAPACK实现 在操作方面,这些实现是为了稳定和交叉而构建的 平台兼容,但未针对性能进行优化。大多数R 程序员使用这些默认库,并且不知道 有优化的库可用,切换到这些库可能会有很大的影响 显著的性能改进


您在那里提交的代码没有并行化。R只使用一个核心。您应该了解R中的并行化(或者您需要使用内部并行化的包,或者您需要自己编写并行化的代码)。但即使代码被并行化,并行化开销仍然会降低速度,因为每个任务基本上不需要时间。您的笔记本电脑max turbo可能比AWS实例更高,并且您可能没有L3缓存或内存带宽的竞争对手。此外,四核笔记本电脑比大型Xeon具有更好的单线程内存带宽和延迟,因此缓存未命中的成本更低。(IDK,如果您的基准测试进行了足够的迭代,以充分预热和分摊启动缓慢度。)您还没有给出笔记本电脑的规格(例如i7-6???MQ在多少GHz),但大Xeon通常对单线程吞吐量并不令人惊讶。您好,谢谢您的有见地的评论。您会推荐一些其他AWS EC2实例,它们最适合R的单线程内存行为吗?@PeterCordes笔记本电脑是i5-8350U CPU@1.70GHz,4核,8个逻辑处理器。你知道其他EC2实例对R(非并行计算)有什么好处吗?用纳秒的测量值运行基准并不是一个好的比较。如果这个答案与上面显示的性能差异有关,我会非常惊讶。取对数与BLAS/LAPACK无关,后者用于线性代数…@BenBolker,这个例子仅仅是出于可复制的原因。从那以后,我学习了并行包和BLAS/LAPACK。两者都有助于回答我的问题。