Pythonでデータを並列処理する方法を教えてください

Pythonでデータの並列処理を実現する方法がいくつかあります。以下はそのうちの2つの一般的な方法です。

  1. マルチプロセッシング
  2. マルチプロセッシング
import multiprocessing

def process_data(data):
    # 处理数据的函数
    result = ...
    return result

def main():
    data = ...
    num_processes = multiprocessing.cpu_count()  # 获取CPU核心数
    pool = multiprocessing.Pool(num_processes)
    results = pool.map(process_data, data)  # 使用多个进程并行处理数据
    pool.close()
    pool.join()
    # 处理结果
    ...

if __name__ == "__main__":
    main()
  1. 並行処理
  2. 同時実行のフューチャ
  3. スレッドプールエグゼキュータ
  4. ProcessPoolExecutor
import concurrent.futures

def process_data(data):
    # 处理数据的函数
    result = ...
    return result

def main():
    data = ...
    with concurrent.futures.ProcessPoolExecutor() as executor:  # 创建进程池
        results = executor.map(process_data, data)  # 使用多个进程并行处理数据
    # 处理结果
    ...

if __name__ == "__main__":
    main()

マルチプロセッシングモジュールはより柔軟にプロセス間通信とデータ共有を扱うことができる低レイヤーの制御を提供しますが、concurrent.futuresモジュールは使い勝手の良い、高レイヤーインターフェイスを提供します。どちらの方法でもデータの並列処理を実現できますが、どちらを採用するかはニーズと環境によって異なります。

bannerAds