Skip to Content
高性能 Python、第 3 版
book

高性能 Python、第 3 版

by Micha Gorelick, Ian Ozsvald
May 2025
Intermediate to advanced
524 pages
8h 30m
Japanese
O'Reilly Media, Inc.
Content preview from 高性能 Python、第 3 版

第10章 マルチプロセッシング・モジュール マルチプロセッシング・モジュール

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

CPython はデフォルトではマルチCPUを使わない。これはPythonがシングルコアの時代に設計されたからでもあるし、並列化を効率的に行うのが実はかなり難しいからでもある。Pythonはそれを行うためのツールを与えてはくれるが、私たち自身の選択に委ねられている。とはいえ、マルチコアマシンで1つのCPUだけを使って長時間処理をするのはつらいので、この章ではマシンのすべてのコアを一度に使う方法を検討する。

先ほどCPythonについて触れたが、これは私たち全員が使っている一般的な実装である。Python言語にはマルチコアシステムを使うことを止めるものはない。CPythonの実装はマルチコアを効率的に使うことができないが、将来の実装はこの制限に縛られないかもしれない。

ノートPCでは6コアが一般的で、96コアのデスクトップ構成もある。もしあなたの仕事が、それほど多くのエンジニアリングを必要とせずに、複数のCPUで動作するように分割できるのであれば、これは賢明な方向性である。

Pythonを使ってCPUのセット上で問題を並列化すると、nコアで最大n倍(ntimes)のスピードアップが期待できる。クアッドコアのマシンを持っていて、4つのコアすべてをタスクに使うことができれば、元の実行時間の4分の1で実行できるかもしれない。4倍以上のスピードアップが見られる可能性は低く、実際には3倍から4倍のスピードアップが見られるだろう。

プロセスが追加されるたびに通信オーバーヘッドが増え、使用可能なRAMが減少するため、n倍のスピードアップが得られることはほとんどない。 どの問題を解くかにもよるが、通信オーバーヘッドが非常に大きくなり、大幅な速度低下が見られることさえある。この種の問題は、並列プログラミングの複雑さの原因であることが多く、 、通常はアルゴリズムの変更が必要になる。 これが、並列プログラミングがしばしば芸術とみなされる理由である。

アムダールの法則( )をご存じない方は、背景を読み取っておく価値がある。この法則は、コードのごく一部しか並列実行できない場合、CPUをどれだけ投入しても、全体としてはそれほど速く実行できないことを示している。たとえ実行時間の大部分を並列実行できたとしても、全体的な処理を高速化するために効率的に使用できるCPUの数には限りがある。

multiprocessing モジュール を使えば、プロセスベースやスレッドベースの並列処理を使ったり、キュー上で作業を分担したり、プロセス間でデータを共有したりできる。このモジュールは、主にシングルマシンのマルチコア並列処理に焦点を当てている(マルチマシン並列処理には、より優れたオプションがある)。非常に一般的な使い方は、CPUに負荷のかかる問題に対して、プロセスセット上でタスクを並列化することである。OpenMP ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

Publisher Resources

ISBN: 9798341651951