マルチプロセッシングプールサイズ-cpu_countまたはcpu_count / 2?

アレックスI

かなり大きなawsインスタンス(48または96 vCPU)でバッチデータ処理を行うPythonスクリプトを実行しています。multiprocessing.Pool()はうまく機能します:ワーカーはメインプロセスとの通信が最小限です(ファイルパスを取得し、True / Falseを返します)。I / Oとメモリは制限されていないようです。

パフォーマンスはさまざまで、プールサイズ= vCPUの数、vCPU / 2の数、vCPU * 2〜4の倍数が最適な場合があります。これらはさまざまな種類のジョブ、さまざまなインスタンス用であるため、すべてのベンチマークを行うのは困難です。

使用するプールのサイズに関する経験則はありますか?

PS multiprocessing.cpu_count()は、vCPUの数と等しいと思われる数を返します。それが一貫している場合は、cpu_countの妥当な倍数を選択し、そのままにしておきます。

amiasato

すでに理解しているタスクに応じて、従うことができる多くの経験則があります

  • 物理コアの
  • 論理コアの
  • 物理コアまたは論理コアから1を引いた(おそらくロジックと制御用に1つのコアを予約)

物理コアではなく論理コアをカウントしないようにするには、psutilライブラリを使用することをお勧めします。

import psutil
psutil.cpu_count(logical=False)

最終的に何を使用するかについては、数値を多用するアプリケーションでは、物理コアの数を使用する傾向があります。一部のBLAS実装はデフォルトでマルチスレッドを使用するため、データ並列パイプラインのスケーラビリティが大幅に低下する可能性があることに注意してください。使用MKL_NUM_THREADS=1またはOPENBLAS_NUM_THREADS=1(あなたのBLASのバックエンドに依存する)環境変数としてバッチ処理を実行するたびに、あなたは準線形スピードアップが物理コアの数をWRTが必要です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

関数へのマルチプロセッシング、またはサイクルの2倍。Python 3

分類Dev

Pythonマルチプロセッシングを使用した2つのプロセス間でのモジュールの転送

分類Dev

Python-マルチプロセッシングエラー 'プロセスを2回開始できません'

分類Dev

Pythonマルチプロセッシング-プロセスの終了(プロセスを2回開始することはできません)

分類Dev

Pythonマルチプロセッシングマネージャーリストエラー:[Errno2]そのようなファイルまたはディレクトリはありません

分類Dev

壊れたパイプ:マルチプロセッシングプールからのマップを使用

分類Dev

マルチプロセッシング:cpu.countより多くのプロセス

分類Dev

マルチプロセッシングまたはマルチスレッドアプリケーションでCPU時間を予約する

分類Dev

無限に設定した場合のPythonマルチプロセッシングキューの上限は32768(2 ^ 15)

分類Dev

ハイパースレッディングを備えたマルチコアCPUのプロセッサ数

分類Dev

2つのforループのマルチプロセッシング

分類Dev

テクスチャマッピングプロセスの後に2つの.objファイルをマージする方法は?

分類Dev

Pythonのマルチプロセッシングモジュールが2つのデータ型しかサポートしないのはなぜですか?

分類Dev

2レベルのマルチイデックスシリーズをデータフレームに再グループ化して、2番目のレベルのインデックスが名前になるようにしますか?

分類Dev

プログラムでグーグルマップv2タイルをキャッシュ/ダウンロードする方法は?

分類Dev

シグナルプロセッサSIGUSR1とSIGUSR2をインストールするにはどうすればよいですか?

分類Dev

Pythonのマルチプロセッシング/pool.mapにはチャンクサイズは関係ありませんか?

分類Dev

マルチプロセッシングを使用してスクリプトを実行するpython2サブプロセスから出力を取得するにはどうすればよいですか?

分類Dev

サブプロセッシング機能を備えたマルチプロセッシング

分類Dev

2つのローカルIISExpressサイト間のセッションをキャプチャするようにFiddlerを構成しますか?

分類Dev

TypeError:__ init __()は1つの位置引数を取りますが、2つが与えられました(Pytesseractを使用したPythonマルチプロセッシング)

分類Dev

Pythonロギングはマルチプロセッシングをサポートしていますか?

分類Dev

カーネル ドライバー (StartService) を開始すると、プロセッサー 0 の L2 キャッシュ バンク 6 エラーによるマシン チェック例外により、0x124 ブルースクリーンが表示されます。

分類Dev

Pythonマルチプロセッシング:大きなチャンクサイズが遅いのはなぜですか?

分類Dev

ファイル内の行を読み取るためのマルチプロセッシングプール

分類Dev

デュアルプロセッサを搭載したマシンは、2つの個別のサーバーとして機能できますか?

分類Dev

残念ながら、アプリケーションはアンドロイド用のグーグルマップAPIv2の使用を停止しました

分類Dev

Pythonでのマルチプロセッシングを使用したForループ

分類Dev

プールを使用したPythonでのマルチプロセッシング

Related 関連記事

  1. 1

    関数へのマルチプロセッシング、またはサイクルの2倍。Python 3

  2. 2

    Pythonマルチプロセッシングを使用した2つのプロセス間でのモジュールの転送

  3. 3

    Python-マルチプロセッシングエラー 'プロセスを2回開始できません'

  4. 4

    Pythonマルチプロセッシング-プロセスの終了(プロセスを2回開始することはできません)

  5. 5

    Pythonマルチプロセッシングマネージャーリストエラー:[Errno2]そのようなファイルまたはディレクトリはありません

  6. 6

    壊れたパイプ:マルチプロセッシングプールからのマップを使用

  7. 7

    マルチプロセッシング:cpu.countより多くのプロセス

  8. 8

    マルチプロセッシングまたはマルチスレッドアプリケーションでCPU時間を予約する

  9. 9

    無限に設定した場合のPythonマルチプロセッシングキューの上限は32768(2 ^ 15)

  10. 10

    ハイパースレッディングを備えたマルチコアCPUのプロセッサ数

  11. 11

    2つのforループのマルチプロセッシング

  12. 12

    テクスチャマッピングプロセスの後に2つの.objファイルをマージする方法は?

  13. 13

    Pythonのマルチプロセッシングモジュールが2つのデータ型しかサポートしないのはなぜですか?

  14. 14

    2レベルのマルチイデックスシリーズをデータフレームに再グループ化して、2番目のレベルのインデックスが名前になるようにしますか?

  15. 15

    プログラムでグーグルマップv2タイルをキャッシュ/ダウンロードする方法は?

  16. 16

    シグナルプロセッサSIGUSR1とSIGUSR2をインストールするにはどうすればよいですか?

  17. 17

    Pythonのマルチプロセッシング/pool.mapにはチャンクサイズは関係ありませんか?

  18. 18

    マルチプロセッシングを使用してスクリプトを実行するpython2サブプロセスから出力を取得するにはどうすればよいですか?

  19. 19

    サブプロセッシング機能を備えたマルチプロセッシング

  20. 20

    2つのローカルIISExpressサイト間のセッションをキャプチャするようにFiddlerを構成しますか?

  21. 21

    TypeError:__ init __()は1つの位置引数を取りますが、2つが与えられました(Pytesseractを使用したPythonマルチプロセッシング)

  22. 22

    Pythonロギングはマルチプロセッシングをサポートしていますか?

  23. 23

    カーネル ドライバー (StartService) を開始すると、プロセッサー 0 の L2 キャッシュ バンク 6 エラーによるマシン チェック例外により、0x124 ブルースクリーンが表示されます。

  24. 24

    Pythonマルチプロセッシング:大きなチャンクサイズが遅いのはなぜですか?

  25. 25

    ファイル内の行を読み取るためのマルチプロセッシングプール

  26. 26

    デュアルプロセッサを搭載したマシンは、2つの個別のサーバーとして機能できますか?

  27. 27

    残念ながら、アプリケーションはアンドロイド用のグーグルマップAPIv2の使用を停止しました

  28. 28

    Pythonでのマルチプロセッシングを使用したForループ

  29. 29

    プールを使用したPythonでのマルチプロセッシング

ホットタグ

アーカイブ