c1 と c2 の 2 台のコンピューターがあります。c1 は 2 コアの CPU で、c2 は 4 コアの CPU です。そこで、これら 2 台のコンピューターを 6 つのワーカーを使用してセロリに接続し、いくつかのタスクを実行します。ただし、c1 で 6 ワーカーのマルチプロセッシングを使用すると、セロリのすべてのワーカーがマルチプロセッシングで遅くなるように見えますか? 何故ですか?では、マルチプロセッシングに対するセロリの利点は何ですか?
例えば:
私は機能を持っています:
def readFromHBase(inputData):
...
return data
セロリとマルチプロセッシングを使用して、100000 個のサンプルから 1000 個のファイルを読み取りました。
セロリでは、上記のように、2 台のコンピューター c1 と c2 にまたがる 6 つのワーカーを設定しました。1000 個のファイルがすべて取得されるまで、すべてのワーカーが 10 個のファイルを読み取ります。
マルチプロセッシングでも同じことを行いましたが、c1 だけで 6 ワーカー プールを設定しました。1000 個のファイルがすべて取得されるまで、すべてのワーカーは 10 個のファイルを読み取ります。
結果は、マルチプロセッシングのすべてのワーカーは、セロリよりも時間がかからないことを示しています。これはどのように起こりますか?