私の日常業務では、文字列の大規模なデータベースで計算を実行するためのコンピューター システムのセットアップを任されています。概念実証を確立しましたが、ハードウェアおよびソフトウェア環境を最適化するための低レベルの知識がありません。この点についてのガイダンスを期待していました。
設定:
- 文字列を含むデータベース内の 100,000 レコード
- 文字列類似度計算を実行して、おおよその重複を探します
- つまり、各文字列が他のすべての文字列に対して行われるため、約 50 億回の計算が行われます
- 1000サンプル行を使用してSQLite3をデータベースとしてRubyで概念実証を書きました
- ジョブ全体は数日以内に実行されるはずです - 速いほど良いですが、収益は減少します. これは 1 回限りのパスなので、デスクトップ セットアップで数日以内に実行できる場合は、スーパーコンピューターは必要ありません。
私が探しているもの:
- このジョブ (および同様の性質の潜在的な将来のジョブ) を実行するカスタム ボックスを構築している場合、どのハードウェアの最適化に重点を置く必要がありますか? つまり、限られた予算を非常に高速な GPU に費やすべきでしょうか? CPU?大量の RAM ? このタイプの操作のボトルネックがどこにあるかを知るのに十分なレベルの Ruby を知りません。
- より良いアプローチがありませんか?ソフトウェアや高価なハードウェアの大規模な購入の承認は得られません。少なくとも、この方法がこのランスルーで機能することを証明できるまでは。しかし、誰かが不正確な重複を検出するより効率的な方法を提案できますか?