问题描述
在面对一个需要对CPU、GPU、RAM、磁盘IO或它们的组合进行大量计算的软件任务时,如何确定最佳的硬件配置是一个复杂的问题。你想要找到一个度量标准,来描述在运行该软件时的最佳机器配置。这个度量标准应该包括以下几点:1) “最低要求”,以及更重要的 2) 上述参数的 “最佳比例”,以确保没有CPU/RAM/GPU空闲,从而获得最佳的性价比、电力消耗和计算时间。尤其是在使用AWS/Google Cloud/其他云服务提供商或HPC环境时,你需要选择这些参数。虽然比较不同种类的CPU(缓存、时钟速度等)或不同种类的RAM并不容易,但是否存在一个”标准”或方法来解决这个问题?如果有,建立这样一个度量标准的方法是什么?
解决方案
在云服务提供商之间,目前并没有一个通用的标准来描述特定计算任务所需的最佳资源配置。这是因为不同的云服务提供商在后台基础设施的管理上可能存在差异,而且云实例的运行方式可能会随时变化。用户只关心是否获得了他们想要的计算能力,不关心后台的运行细节。另外,由于商业保密等原因,云服务提供商可能不愿意透露其精确的基础设施度量指标。
尽管如此,一些云服务提供商在其虚拟实例之间可能会提供一些标准。这些标准是相对于每种实例类型的计算能力而言的。
例如,亚马逊云服务(Amazon Web Services,AWS)使用EC2计算单位(ECU)作为指标,以便比较每个实例的近似计算能力。比较两种实例类型,比如m5.large和m5.xlarge,m5.large的ECU为8,而m5.xlarge的ECU为16。m5.xlarge的计算能力大约是m5.large的两倍,因此价格也是两倍。
然而,对于更一般性的计算能力描述,特别是在不同种类的硬件之间进行比较时,目前尚未有一个广泛适用的标准。不同类型的硬件可能在不同的计算任务上表现出不同的优势,使得建立一个通用的度量标准变得复杂。
虽然存在一些指标,如ECU,用于在云服务提供商内部进行实例类型之间的比较,但在不同提供商之间或在更广泛的硬件比较中,这些指标可能并不适用。
总结
在当前的技术环境下,尚未存在一个通用的标准来描述特定计算任务所需的最佳资源配置。不同的云服务提供商可能会在其内部提供一些指标,用于在其虚拟实例之间进行比较,但在跨提供商之间或在更广泛的硬件比较中,这些指标可能并不具有普适性。选择最佳资源配置仍然需要根据具体的计算任务、硬件性能以及经济成本等因素进行综合考虑和权衡。