私は、redisデータベースへのRインターフェースと、foreachのdoRedis並列バックエンドをいじってみました。このツールをより適切に適用するために、いくつか質問があります。
- doMC、doSMP、doSnowなどはすべて、同じコンピューター上でワーカープロセスを呼び出し、リストから要素と適用する関数を渡して、結果を収集することで機能しているようです。doMCの場合、ワーカーはメモリを共有します。ただし、データベースがこれと同じ機能をどのように提供できるかについては、少し混乱しています。
- doRedisジョブキューにスレーブコンピューターを追加すると(このビデオのように)、doredisデータベース全体がスレーブコンピューターに送信されますか?または、各スレーブは特定の瞬間に必要なデータ(つまり、リストの1つの要素と適用する関数)だけです。
- 追加のデータと関数をdoRedisジョブキューに明示的に渡すにはどうすればよいですか?各スレーブはその計算を実行する必要がありますか?
- doRedisとforeachを使用する場合、他の並列バックエンドに適用されない可能性のある追加の「落とし穴」はありますか?
これは多くの質問であることを私は知っていますが、並列処理がどのように機能するかについての私の限られた理解がそれを実装する私の能力を妨げている状況に遭遇しています。たとえば、最近、大規模なデータベースで計算を並列化しようとしましたが、データベース全体をクラスター上の各ノードに渡すことに気づきました。この操作により、並列化によって得られた利点が完全に失われました。
ありがとうございました!