「Python」の実行速度向上を目指した「GIL」の廃止が、一部のエンジニアの間で議論を呼んでいる。なぜPythonへの悪影響が懸念されているのか。
プログラミング言語「Python」のコミュニティーは、CPython(Pythonの標準実装)の処理速度を向上させ、複数のCPUコアをまたがるスレッド処理を実現させるため、新機能や仕様に関する提案文書「PEP 703」を承認した。PEP 703は、一部のエンジニアの間で悪名高い「GIL」(Global Interpreter Lock)の廃止を掲げている。GILは、CPythonがメモリ管理やデータ構造の安全性を確保するために採用している仕組みだ。
ただしGILの廃止は、Pythonユーザーに深刻な問題をもたらす可能性がある。GILの廃止に疑問を呈するPythonエンジニアは、どのような懸念を抱いているのか。
GILの廃止は、幾つかの深刻な問題をもたらす可能性がある。その影響と理由をまとめた。1つ目は次の通り。
現状の仕様だと、原則としてPythonプログラムは一度に1つのスレッド(プログラムの実行単位)のみがCPUを利用できる「シングルスレッド」処理になる。この場合、コンパイラ(ソースコードを機械語に変換するプログラム)設計者は、複数のプロセスが互いの処理終了を待って処理が進まなくなる「デッドロック」や、データの競合を懸念する必要がない。
一方で、一度に複数のスレッドがCPUを利用できる「マルチスレッド」処理を許容し、マルチコアCPU搭載システムで実行することを想定するプログラミング言語は、データやアクセスに対するロックを導入しなければならない。CPUがこうしたロックを処理するには、それなりに時間がかかる。GILを廃止したPythonはロックを導入することになるため、シングルスレッドアプリケーションの実行速度が低下する恐れがある。
PEP 703自体もこの問題を認めており、提案文書には次のように記されている。「本PEPで提案する変更によって、GILを無効にしたPythonでは、実行時のオーバーヘッド(処理の負荷)が大きくなる。つまりシングルスレッドアプリケーションのパフォーマンスが低下する」
次回は、2〜4つ目の理由を紹介する。
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。
なぜ料理の失敗写真がパッケージに? クノールが展開する「ジレニアル世代」向けキャンペーンの真意
調味料ブランドのKnorr(クノール)は季節限定のホリデーマーケティングキャンペーン「#E...
業界トップランナーが語る「イベントDX」 リアルもオンラインも、もっと変われる
コロナ禍を経て、イベントの在り方は大きく変わった。データを駆使してイベントの体験価...