对于我的日常工作,我的任务是建立一个计算机系统来对一个大型字符串数据库进行计算。我已经建立了概念验证,但没有优化硬件和软件环境的底层知识。我希望在这方面得到一些指导。
设置:
- 包含字符串的数据库中的 100,000 条记录
- 我将执行字符串相似度计算以查找近似重复项
- 即每个字符串对每个其他字符串,所以约 50 亿次计算
- 我使用 SQLite3 作为数据库,使用 1000 个样本行在 Ruby 中编写了概念证明
- 整个工作应该在几天内完成——越快越好,但收益会递减。这是一次性通行证,所以如果桌面设置可以在几天内完成,我不需要超级计算机
我在寻找什么:
- 如果我正在构建一个自定义盒子来运行这项工作(以及未来可能具有类似性质的工作),我应该专注于优化哪些硬件?即我应该把有限的预算花在速度非常快的 GPU 上吗?中央处理器?大量内存?我对 Ruby 的了解不够低,无法知道此类操作的瓶颈在哪里
- 我错过了更好的方法吗?至少在我能证明这种方法适用于这种运行方式之前,我不会批准购买任何主要的软件或昂贵的硬件。但是任何人都可以提出一种更有效的检测不精确重复的方法吗?