Iはbatches of input pairs
に、multiple cores
を使用して、model
オブジェクトの同じコピーに、model.wv.most_similar_cosmul
を呼び出したいです。Gensim word2vec/doc2vecマルチスレッド並列クエリ
multiprocessing
モジュールにはmodel
の複数のコピーが必要ですが、model
はRAMが30GB以上であるためRAMが多すぎます。
私はクエリのペアを評価しようとしました。最初のラウンドでは12時間かかりました。より多くのラウンドが来るかもしれません。そのため、私はスレッド化ソリューションを探しています。私はPythonがGlobal Interpreter Lock
号を持っていることを理解しています。
提案がありますか?あなたのテキストベクトルモデルは、多くのプロセスが同じオブジェクト・イン・メモリを共有できるようにメモリと変わらないかもしれない仕事である後multiprocessing
を使用してプロセスをオフにフォーク
? 'マルチプロセッシング'はLinux上で 'fork'を使用するので、データは共有され、書き込みアクセス時にしかコピーされません。 – BlackJack
@BlackJackそれは変です。 'Python'は、コードセグメントが書き込みアクセスを必要とするかどうかを事前に知っていますか?私はそれがわからない場合、フォーク時に各子供のためにオブジェクトをコピーしなければならないと思った。 – Mai
Pythonは、オペレーティングシステムが認識しません。これは一般的にはPythonオブジェクトやPythonとは関係ありませんが、オペレーティングシステムレベルのプロセスやメモリページがあります。 – BlackJack