Pyston 2JITコンパイラを使用したPythonの実装

開発のXNUMX年間の休止の後、 Pyston2プロジェクトの立ち上げが公開されました。 私は何を開発しましたかPython言語の高性能実装へ LLVMプロジェクトの開発を使用します。

実装 最新のJITコンパイルテクノロジーの使用で際立っています そして、C ++のような従来のシステム言語と同様の高性能を達成することを目指しています。

以前のバージョンのコード ピストン Apacheライセンスの下で配布されました、ただし、Pyston 2コードはまだ利用できず、Ubuntu 18.04および20.04ではすぐに使用できるビルドのみがリリースされます(コードを含むファイルはダウンロードできますが、プロジェクトがまだ閉じられているという情報を含むスタブのみがあります) 。

コードの公開は開発者の計画の一部ですしかし、これは行われます ビジネスモデル形成が完了した後 新会社の、そしてDropboxの財政的支援なしでPystonの開発を続けることが決定されました。

ピストン2について

以前のバージョンとは異なり、 Pyston2は安定しているとマークされています 試用版としてではありません。 パフォーマンスを最適化するために多くの作業が行われ、python-macrobenchmarksテストスイートに合格すると、Pyston2は元のPython3.8よりも約20%高速になりました。

最も顕著なパフォーマンスの向上は、固有のWebアプリケーションワークロードで見られます。 chaos.pyやnbody.pyなどの個別のテストでは、Pyston2はPython3.8より2倍優れています。JITを使用するコストは、メモリ消費量のわずかな増加です。

Pythonプログラミング言語のより高速で互換性の高い実装であるPystonv2をリリースできることを大変うれしく思います。 バージョン2は、マクロベンチマークで標準のPython 20よりも3.8%高速です。 さらに重要なことに、コードの方が高速である可能性があります。 Pyston v2は、サーバーコストを削減し、ユーザーの待ち時間を短縮し、開発者の生産性を向上させることができます。

Pyston v2は簡単に実装できるため、Pythonのパフォーマンスを向上させたい場合は、XNUMX分かけてPystonを試してみることをお勧めします。 そうすることは、プロジェクトをスピードアップする最も簡単な方法のXNUMXつです。

互換性の観点から ネイティブPythonを使用したPystonプロジェクト CPythonの最も互換性のある代替実装として宣伝されています、PystonはメインのCPythonコードベースのフォークであるため。

ピストン すべてのCPython関数をサポートします。 C拡張機能を開発するためのCAPIを含みます。Pystonは元々Dropboxによって開発され、2017年に内部開発を中止することを決定しました。 2020年の初めに、Pystonのトップ開発者は会社を設立し、プロジェクトを完全に再発明し、Pystonでフルタイムで働き始めました。

Pyston 2のパディングに関する技術的な詳細はまだ提供されておらず、DynASM JIT、インラインキャッシング、および一般的なCPythonの最適化についてのみ説明されています。 以前のバージョンのPystonは、最新のJavaScriptエンジンのJITと同様に、一度にXNUMXつのメソッドJITを使用していました。

JITでは、Pythonコードが解析および翻訳されました 中間表現LLVM(IR、中間表現)に。 さらに、IR表現はLLVMオプティマイザーで処理され、実行のためにLLVM JITエンジンに渡され、実行のためにIR表現がマシンコードに変換されました。

動的Python言語のプログラムの変数のタイプに関する情報を取得するために、オブジェクトタイプの確率的予測の手法が使用され、実行中のタイプの正しい選択が明確になりました。

したがって、Pystonは、XNUMXつのブランチ間で実行を絶えず変化させました。予測されたレートが確認されたときの高速と、タイプの不一致の場合に使用される低速です。

ジョブはマルチスレッドモードで実行できますが、 Python言語で、グローバルインタープリターロック(GIL)のない複数のコードスレッドの並列実行を可能にします。

最後に あなたがそれについてもっと知りたいなら、詳細はで確認できます 次のリンク。


記事の内容は、次の原則に準拠しています。 編集倫理。 エラーを報告するには、 ここで.

コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。