私はPythonが初めてで、処理を並行してスケーリングしようとしています。特定の数のタプルを含むファイルがあり、それぞれの最後の列に特定の値があります。このファイル データを分割し、関数を各チャンクに並列に適用したいと考えています。しかし、問題は、最後の列の値に基づいてデータをチャンクに分割し、各チャンクに関数を適用することです。たとえば、最後の列には、一部のタプルには「a」、一部には「b」、一部には「c」が含まれる場合があります。その場合、3 つのチャンクを取得して並列処理する必要があります。最後の列の一意の値の数はデータセットによって変わる可能性があるため、それに応じて CPU を使用する必要があります。
Q1: 私が今まで試みたのは、ファイルを読み取り、そのレコードに基づいて辞書を作成することでした。したがって、基本的に、上記のキーと値のペアが 3 つ、1 つはキーとして 'a' を持ち、すべてのレコードは値として 'a' を持ち、 'b' と 'c' も同様です。マルチプロセッシングでチャンクサイズを利用できますが、ここではサイズではなく、キーに基づいているため、どうすればこれを達成できますか?
Q2: 上記のチャンクを処理した後、すべてをまとめて出力する必要があります。順序は関係ありません。出力全体を使用してさらに処理する必要があります。これらすべてのプロセスが完了するまでメイン プログラムを待機させるにはどうすればよいですか?
さらに入力が必要な場合はお知らせください。ありがとう。