gpt4 book ai didi

ruby - 计算大型字符串数据集最快的设置是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:24:52 26 4
gpt4 key购买 nike

在我的日常工作中,我的任务是设置计算机系统以对大型字符串数据库运行计算。我已经建立了概念验证,但不具备优化硬件和软件环境的低级知识。我希望在这方面得到一些指导。

设置:

  • 数据库中包含字符串的 100,000 条记录
  • 我将执行字符串相似度计算以查找近似重复项
    • 即每个字符串与其他每个字符串相对,所以大约 50 亿次计算
  • 我使用 SQLite3 作为数据库,使用 1000 个示例行,用 Ruby 编写了概念验证
  • 整个作业应在几天内完成 - 越快越好,但 yield 递减。这是一次性通行证,所以如果桌面设置可以在几天内完成,我不需要 super 计算机

我在找什么:

  • 如果我正在构建一个自定义盒子来运行这项工作(以及 future 可能的类似性质的工作),我应该重点优化哪些硬件? IE。我应该将有限的预算花在速度非常快的 GPU 上吗?中央处理器?大量内存?我对 Ruby 的了解程度不够低,无法知道此类操作的瓶颈在哪里
  • 我是否缺少更好的方法?我不会获得任何重大软件或昂贵硬件采购的批准,至少在我可以证明此方法适用于此运行之前。但是谁能建议一种更有效的方法来检测不精确的重复项?

最佳答案

首先,现在 100,000 个字符串并不能算作大型数据集,所以不要太担心硬件问题。以下是我以前的工作(与搜索和机器翻译相关)和目前我一直处理数十万到数百万 XML 记录的工作的一些建议:

  • 你需要内存。很多。
  • 正如 Soren 所说,您要确保您的算法是好的。
  • 明智地选择您的数据库。例如 Postgres 具有出色的 string functions直接在数据库中做某些事情会非常快。我说过你想要很多 RAM 吗?
  • 您的工作听起来很容易分成较小的子任务,这些子任务可以并行处理。如果确实如此,您可能需要查看 MapReduce .在之前的工作中,我们有非常好的工作站(4 核,8 GB RAM),这些工作站从未关闭过,所以我们将其中一些变成了一个 Hadoop 集群,可以做一些有用的事情。由于这些机器无论如何都无法满足日常工作使用,因此用户甚至没有注意到。将某些东西变成 MapReduce 作业通常并不难,另一个优势是您可以在将来为类似任务保留设置。
  • 至于 Ruby 特定的瓶颈,MRI 中最大的瓶颈通常是垃圾收集,由于其停止世界的特性,它非常慢。当我们定期分析时,这会成为一个问题。查看原因文章 The fully upturned bin有关 Ruby GC 的详细信息。如果您打算使用 Ruby,您可能想将 MRI 与 JRuby 进行比较,根据我使用后者和 JVisualVM 等分析器的经验,如果 JRuby 表现更好,我不会感到惊讶。

关于ruby - 计算大型字符串数据集最快的设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785951/

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