1 ポイント 投稿者 GN⁺ 2023-08-19 | 1件のコメント | WhatsAppで共有
  • PythonのGlobal Interpreter Lock(GIL)は、複数スレッドを使用するプログラムの性能向上を妨げる主要な障害だった。
  • 2021年10月、Sam GrossはGILのないPythonの概念実証版を紹介したが、当初は熱狂的な反応を得たものの、1年以上大きな進展はなかった。
  • Python Steering Councilは現在、no-GIL機能を統合する意思を表明している。
  • 2021年半ばに始まったFaster CPythonプロジェクトは、Pythonインタプリタのシングルスレッド性能を向上させることに焦点を当てている。
  • 今年のPyConでは、Faster CPythonチームの2人のメンバーが、インタプリタ性能を向上させるために用いた戦略を発表した。
  • 2023年1月、コア開発者のŁukasz Langaが、Grossが作成したPEP 703(「CPythonでGlobal Interpreter Lockをオプションで使用する」)の最初の版を公開した。
  • Pythonコミュニティは、Python 2から3への混乱した移行を避けようとしている。GILを削除するあらゆる変更は、それに備えていないコードとも互換性がなければならない。
  • 6月14日、Faster CPythonチームはno-GIL機能に関する決定を求める圧力を強めた。
  • 7月28日、評議会メンバーのThomas Woutersは、評議会がPEP 703を受理したと発表したが、受理の詳細はまだ調整中である。
  • 計画では、no-GIL版のインタプリタを導入して不足している構成要素をすべて洗い出し、それらを解決した後、no-GILがPythonの標準かつ最終形になることを目指している。
  • no-GIL版への移行には約5年かかると見込まれており、過去の失敗を繰り返さないという約束がある。
  • この記事では、.NETの並列プログラミングを使って、「驚くほど分割しやすい」データが与えられた場合にfor/foreachループを高速化する方法について論じている。
  • この記事では、Pythonのシングルスレッド性能を維持することの長期的な実行可能性について論じており、避けられないオーバーヘッドや複雑性の増加によって、最終的には性能が低下すると主張する人もいる。
  • この記事は、2つのバージョン間に互換性がなかったPython 2からPython 3への移行を振り返っている。
  • 著者は、Python 3のPython 2非互換の影響は一部の人には予見されていたと主張しており、一般的な見方とは反対だとして、2007年のブログ記事へのリンクを共有している。
  • 著者は、Python 2からPython 3への移行から学んだ教訓の重要性を強調し、将来同様の問題を避けるためにそれを重視している。
  • この記事は、Python 2からPython 3への移行の困難を予見した人々の先見性を認める形で締めくくられている。

1件のコメント

 
GN⁺ 2023-08-19
Hacker Newsのコメント
  • グローバルインタープリタロック(GIL)の削除と、より高速なCPythonプロジェクトに関する記事の議論。
  • 一部のコメント投稿者は、記事がGIL削除の利点を十分に強調せず、むしろ「反GIL」側に偏っていると考えています。
  • Sam Grossによるno-GILプロジェクトへの取り組みは、その高い品質と性能向上をもたらしている点で称賛されています。
  • コミュニティはこのプロジェクトに大きな関心を示しており、運営委員会はこのプロジェクトに関連する提案であるPEP 703を受け入れる予定です。
  • 一部のコメント投稿者は、GILの削除がマルチスレッドのPythonコードに悪影響を与える可能性があるとの懸念を表明しています。
  • テストモードでプロジェクトを進めるという決定は妥当に見えるものの、潜在的なバグや困難が発生した場合には、より多くのリソースが必要になるという懸念があります。
  • 一部のコメント投稿者は、GIL削除は性能ペナルティを招き、他の潜在的な改善点を奪う可能性があるため、誤りだと考えています。
  • 他の人々は、シングルスレッド性能を優先し、メモリ共有のための明確なメカニズムを備えた仮想プロセスを追加することを提案しています。
  • Sam Grossによるプロジェクト推進は称賛されており、長く険しい道のりではあるものの、no-GIL Pythonへの道は前向きな進展と見なされています。
  • 既存コードベースの正確性を保証することや、GIL/no-GILをコンパイル時スイッチにすることによる保守コスト増大への懸念があります。
  • Pythonコミュニティはその透明性と優れたガバナンスで称賛されていますが、Pythonから得ている価値を踏まえ、テクノロジー業界からのさらなる支援を求める声もあります。
  • 一部のコメント投稿者は、このプロジェクトの結果としてシングルスレッドコードが15〜20%遅くなる可能性を受け入れられるのか疑問視しています。