如何测量分布式系统的执行时间

数据挖掘 大数据 可扩展性 分散式
2021-09-24 12:34:03

我计划在分布式系统上使用大型数据集进行实验,以评估与之前提案相比的效率提升。

我的机器数量有限,将近十台机器,每台都有 200 GB 的硬盘可用空间。相反,我希望在更多可用节点上进行实验,以便更精确地测量可扩展性。由于我没有,所以我考虑使用商品集群。但是,我不确定使用策略,我需要可靠地测量执行时间。

是否有商品服务可以让我在给定时间只运行我的应用程序?

2个回答

我对你的问题有一些想法。我希望它可以帮助你解决你的问题。

我计划对非常大的数据集进行一些实验,并且我想分配计算。

我的一篇文章中,我对数据科学的评估方法进行了研究使用学习曲线,您可以评估您的实验学习能力多说一点,您将修复商品配置,然后将在相同数量的具有不同数据集大小的机器上运行相同的实验(从小块开始,逐渐增加大小直到达到整个数据集)。

需要指出的是,您应该避免使用不同大小的数据集运行性能测试结果的功率分布为避免,您应谨慎选择步长(步长 = 增量数量)。

我有大约十台机器可用,每台都有 200 GB 的硬盘可用空间。但是,我想在更多的节点上进行实验,以更精确地测量可扩展性。

对于这种类型的问题,我已经直观地搜索和阅读了资料;之后,作为博文发表在文章的最后,我简要地谈到了如何在真实复杂系统上检验你的假设。如果你让我,我想简单谈谈;

首先,为了将数据集作为一个整体运行,应该形成基础需求。最低要求将建立您的基线评估分数,该分数是使用您选择的评估指标的一个/组合,或用于计算的一个/组合方法计算的Running Time = Computation complexity + Communication cost + Synchronization cost

在这些步骤之后,使用评估策略,向您正在进行可扩展性测试的系统添加新元素,例如新节点;同时,对于每次添加,都要测量新系统配置的性能。

需要注意的是,评估策略必须与并行和分布式系统的默认行为一起考虑。例如,我所说的行为的意思是,在某个时间点之后,添加更多内核会自动降低系统性能,而不是由于您的算法特征。这是因为更多的内核需要更多的 RAM、更多的硬盘驱动器等等。换句话说,硬件组件之间存在N-Way关系。作为第二个示例,向分布式系统添加更多节点会以更多的通信和同步成本惩罚您。

最后一步,您将通过数据分析程序或语言绘制带有评估结果的两个不同图表(建议使用 GNU Plot 或 R 编程语言)。打印出这些结果并将其放在您的桌面上,然后开始仔细检查它们。根据您的调查,修改/擦除+重建评估策略并重新进行性能测试。

是否有商品服务可以让我在给定时间只运行我的应用程序?有人用过这样的服务吗?

我对商品服务没有太多的实验,但我可以很容易地说它是否授予取决于您的服务配置。如果您将 Hadoop 配置为您的节点作为唯一服务,Hadoop 将授予您的代码将仅在任何时候运行。

如果您的工作具有足够的并行性,可以让 cpu 的分布式网络有所作为,为什么不尝试在 gpu 上运行它呢?与具有单独软件许可证的大型 CPU 网络相比,这将需要更少的投资,并且仍然提供并行处理,您可以自己进行运行时跟踪。