Pythonでデータを並列処理する方法を教えてください
Pythonでデータの並列処理を実現する方法がいくつかあります。以下はそのうちの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()
- 並行処理
- 同時実行のフューチャ
- スレッドプールエグゼキュータ
- 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モジュールは使い勝手の良い、高レイヤーインターフェイスを提供します。どちらの方法でもデータの並列処理を実現できますが、どちらを採用するかはニーズと環境によって異なります。