1

私はPythonで、特定の入力ビデオのすべてのフレームを取得し、各フレームに対して何らかの処理を行うプログラムを作成しています。私はこのプログラムをマシンのクラスターで実行しており、MPIを使用して単一のフレームを処理する責任を各プロセスに持たせることにより、このプログラムを並列化したいと考えています。

入力ビデオのフレームを読み取るためにcv2を使用しています。cv2は、入力ビデオのフレームを一度に1つずつ取得する関数グラブを提供します。フレームのリストを一度に取得するために使用できる別の関数はありますか?これらのフレームに対してスキャッター操作を実行して個々のプロセスに分散させ、最後にギャザーを使用して、現在処理されているすべてのフレームを結合したいと思います。各フレームを一度に1つずつ取得すると、プログラム全体がシリアル化されているように見えます。

4

1 に答える 1

1

私は2つの可能なシナリオについて考えています:

1)各フレームの実際の処理とは対照的に、各フレームの取得はかなり軽い操作です。この場合、グラブ部分の「シリアル化」は実際には問題ではありません。

また

2)クラスター内の各ホストは、特定のフレームのセットを取得する責任があります。したがって、「フレームを分散する」代わりに、「フレーム番号を分散する」ことができ、ホストがその役割を果たします。

于 2012-11-19T20:34:46.260 に答える