gpt4 book ai didi

R - 高性能 Amazon EC2 比 i7 慢?

转载 作者:行者123 更新时间:2023-12-01 02:10:25 25 4
gpt4 key购买 nike

我正在处理一个大型数据集,并尝试将其卸载到 Amazon EC2 以进行更快的处理。

数据从两个表开始 - 6.5M x 6 和 11K x 15。然后我将它们合并到一个 6.5M x 20 表中。

这是我的 R 代码:

library(data.table)
library(dplyr)

download.file("http://d396qusza40orc.cloudfront.net/exdata%2Fdata%2FNEI_data.zip", "data.zip")

unzip("data.zip")

data <- readRDS("summarySCC_PM25.rds")
scckey <- readRDS("Source_Classification_Code.rds")

system.time(data <- data %>% inner_join(scckey))

在我的家用笔记本电脑(i7 1.9GHZ、8GB RAM、SSD)上,这是我的输出
   user  system elapsed 
226.91 0.36 228.39

在 Amazon EC2 c4.8xlarge(36 个 vCPU、132 个 EPU、60GB RAM、EBS 存储)上
   user  system elapsed 
302.016 0.396 302.422

在 Amazon EC2 c3.8large(32 个 vCPU、108 个 EPU、60GB RAM、SSD 存储)上
   user  system elapsed 
374.839 0.367 375.178

两个 EC2 系统怎么会比我自己的笔记本电脑慢?尤其是 c4.8large 似乎是亚马逊提供的最强大的计算解决方案。

难道我做错了什么?

编辑:

我检查了监控系统 - 看起来加入运行的 CPU 使用率为 3-5%。这似乎很低 - 在我的笔记本电脑上它运行在 30-40% 左右。

编辑:

根据建议,我尝试了 data.tablemerge()
3.8xlarge @ ~1% CPU 利用率:
system.time(datamerge <- merge(data, scckey, by = "SCC"))
user system elapsed
193.012 0.658 193.654

4.8xlarge @ ~2% CPU 利用率:
system.time(datamerge <- merge(data, scckey, by = "SCC"))
user system elapsed
162.829 0.822 163.638

笔记本电脑:

最初需要 5 分钟以上,所以我重新启动了 R。
system.time(datamerge <- merge(data, scckey, by = "SCC"))
user system elapsed
133.45 1.34 135.81

这显然是一个更有效的功能,但我仍然以可观的优势击败了最好的 Amazon EC2 机器。

编辑:
scckey[data]将此操作的时间减少到 在我的笔记本电脑上不到 1 秒 .我仍然很好奇如何更好地利用 EC2。

最佳答案

并不是说我是 Amazon EC2 的专家,但它可能使用商品服务器作为基础硬件平台。在这种情况下,“商品”是指 x86 CPU,它与您的笔记本电脑具有相同的基本架构。根据您的笔记本电脑的强大功能,它甚至可能比您的 EC2 实例中的内核具有更高的时钟速度。

EC2 为您提供的是可扩展性,这意味着比本地拥有更多的内核和内存。但是您必须编写代码才能利用这些内核;这意味着它必须在执行中并行化。我很确定 data.table与几乎所有 R 包一样是单线程的,因此获得更多内核不会让事情变得更快。此外,如果您的数据已经适合您的内存,那么获得更多不会产生显着的 yield 。

关于R - 高性能 Amazon EC2 比 i7 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29870825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com