假设性问题:
假设您拥有大量数据和离线的算法流程,并且您希望优化硬件。
假设您有50k要处置。
构建内部堆栈的最佳硬件设置是什么,它可以最大化计算能力,并为您提供灵活的内存来存储大型稀疏矩阵?
项目背景:科学研究,在大型数据集上进行机器学习,我希望获得最大的收益。
答案 0 :(得分:6)
50K =无关紧要(除非是政府补助金,否则你必须花钱)。
了解确切问题=无价值。
您希望尽可能快地对稀疏矩阵执行操作。
您将用于编码/解码内存中的稀疏矩阵的算法,您将对它们执行的操作,以及诸如“您是否可以将整个矩阵一次放入内存”等问题 - 将在世界上发挥重要作用。
除了稀疏之外,您对进入这些矩阵的数据了解多少?你知道数据/空数据的比例吗?你知道最大尺寸矩阵有多大,一次你需要多少内存?
您知道可以对矩阵运算执行的任何优化吗?
我所知道的是,对典型PC上的内存数据进行精心编写的散列或二进制搜索 - 可能会胜过大型机上较少的磁盘绑定搜索算法。
您可以越了解自己的数据,您就可以更好地优化自己可以使用的数据。 购买硬件以支持您最后做的事情 - 首先分析并了解数据 ......
答案 1 :(得分:1)
您应该考虑使用GPU加速器。与CPU和大规模线程和数据并行相比,它具有非常高的flops / $,它们非常适合于大型,密集,数据并行的任务。支持商品CUDA的GPU可以有超过TFLOPS的500 GFLOPS ......非常令人印象深刻。 SHOC基准测试套件中有一些用于GPU的稀疏矩阵内容,我100%确定GPU还有其他稀疏线性代数包/应用程序/示例。在GPU上实现一些MapReduce类型的东西甚至有一些非常成功的尝试 - 所以如果你认为你可能想要进入那个,那么GPU也很有希望。
答案 2 :(得分:1)
完全最大的Apple Mac Pro $ 20,090.95和一把非常好的椅子,价格为$ 2k。或者20K美元的椅子和1万美元的笔记本电脑。
答案 3 :(得分:0)
检查ScalableInformatics.com,他们专注于这个市场。
答案 4 :(得分:0)
对于这样的问题,这不是一个非常好的地方。首先,5万美元的硬件是相当小的,没有分配系统,比较价格和供应商,争论所有,安装操作系统和库,准备平台软件,等等,是一个坏主意。如果你需要投入2万美元的工资时间来完成所有设置,那么你的电网总价格只需7万美元。
在多种机器类型,网格平台上尝试使用亚马逊的EC2,并了解您的基础架构瓶颈,这样做更明智,更具成本效益。我认为你对HPC,机器学习和稀疏矩阵都很陌生。相信我:不要试图提前猜测你的瓶颈,并专注于获得有关基础设施如何形成的经验见解。
如果你在第一次猜测你的需求时会花费5万美元,那么你将在“学费”上花费更多,而且不会获得更好的教育 - 只是价格更高。
建议:在EC2上花费3千美元,剩余的47,000美元将更加智能化。
(更新) 建议2:不要浪费时间比较EC2与Rackspace相比。使用EC2作为基线。大多数其他人不适合HPC。即使您确实找到了竞争对手,花在掌握EC2上的学费也会带来红利,因为它是比较的合理基准。此外,重点是租用整台机器,但考虑使用共享机器,以了解在同一服务器上竞争资源时某些工作是否会运行良好。
(更新) 建议3:基于彼得答案的上述评论:@Josee:你在关于块对角化的正确道路上。如果它可以被块对角化,那么你可以在CPU上花费更多而在RAM上花费更少。如果它不是那么可对角化,那么你在CPU上花费更少的RAM。如果您的数据具有足够高的行或列密度,那么您可能需要更大的L2或L3缓存大小。它甚至取决于你是在做更多的XX'还是X'X。此外,你做更多的读或写吗?磁盘缓存在这里可以提供很多帮助。最后,SSD很棒,但你多久使用一次内存映射文件?
当您看到瓶颈所在的位置时,系统中的缓存级别数开始变得明显。根据您的数据类型,也许您可以使用GPU,但最好从CPU开始,看看它是如何工作的。 EC2会让你做到这两点。
答案仍然与@Peter说的一样:首先关注数据。