1 ポイント 投稿者 GN⁺ 2024-09-18 | 3件のコメント | WhatsAppで共有
  • Java向けの高性能な埋め込み可能 Python 3 ランタイム
  • Javaから直接 Python パッケージをロードして利用可能
  • 最新の Python AI およびデータサイエンスパッケージと互換性あり
  • Graal JIT コンパイラにより、ネイティブコード並みの速度で Python を実行可能
  • Jython ユーザー向けにアップグレードパスを提供
  • Javaから Python スクリプトを使って Java クラスやフレームワークと相互作用可能
  • GraalVM Native Image を使って Python アプリケーションを単一バイナリとしてパッケージ化可能

GN⁺の要約

  • GraalPy は、Java 上で Python を高性能に実行できるランタイムを提供する
  • Jython ユーザーに、モダンな Python 機能を使えるアップグレードパスを提供する
  • GraalVM のポリグロットインターフェースにより、Python のデータサイエンスライブラリを Java アプリケーションへ容易に統合できる
  • Python と Java の相互運用性を高め、開発者に柔軟性を提供する
  • 類似の機能を提供するプロジェクトとしては、Jython と Py4J がある

3件のコメント

 
GN⁺ 2024-09-18
Hacker Newsの意見
  • GraalPyとJDK8を比較したベンチマーク結果を共有

    • JDK8はGraalPython EE 22.3 Hotspotより約2.4倍高速
    • JDK8はCPython 3.11より41倍高速
    • GraalPythonはCPythonより約17倍高速で、PyPyより約2倍高速
    • Graal Enterprise Edition (EE) は Community Edition (CE) より約1.31倍高速
  • GraalVMで大規模プロジェクトを実行しようとしたが、いくつか問題が発生

    • MaturinがGraalインタープリタをサポートしておらず、Py03パッケージは使用不可
    • uvは実行できず、osパッケージではforkexecveが欠落
    • Graalでは人気ライブラリに多くのパッチを適用する必要がある
    • 大規模プロジェクトでGraalを使うのは、リスクが高いため難しい
  • GraalVMがJava(またはScala)の関数をブリッジなしで直接呼び出せるなら、Sparkを使うプログラムで有用だろうという意見

  • Pythonの興味深い点は、MLツールチェーン、CUDA、Metal/MLX、pytorch、tensorflow、LLMエンコーダ/デコーダなどとの統合

    • GraalVMがこうしたコードを意味のある形で実行できるのか疑問
  • ClojureでJava/Python統合をすでに実装した事例あり

    • Chris Neurnbergerとlibpython-cljのおかげで実現
  • DuckDBは現時点ではサポートされていないが、Pandasとmatplotlibはサポート済み

    • DuckDBとPolarsがサポートされれば、多くのデータ作業に役立つだろうという意見
  • GraalPyがPython 3.11をターゲットにしていることを発見

    • GILへの言及はなかった
    • Pythonユーザーならクイックスタートのリンクをクリックしないよう警告
  • GraalPyのユースケースに疑問を呈する声

    • なぜGraalPyを使うべきなのか理解できないという意見
  • GraalPyはGraalVMでしか動かないのか、それとも他のJVM実装でも可能なのかという質問

 
ahwjdekf 2024-09-29

今やっているプロジェクトは、pythonnumpypandas で実装したものを java でやってくれという、あきれたプロジェクトです。今、最初から全部作り直しています。本当にありえないです。GraalPy で pandasnumpy がきちんとサポートされるなら、こんな無駄なことをしなくて済むかもしれませんね。ところが Windows 環境では Visual Studio への依存があるんですね。c++ のコンパイル環境のために。あと、発想はとても良いし便利なのですが、あまりにも巨大なエコシステムをどうやって失敗せずに完成させられるのか。少し心配でもありますし、本当に安定して信頼して使えるようになるのか疑問でもありますね。そうなってくれればいいのですが。

 
ahwjdekf 2024-10-01

もう少し確認してみたところ、私の理解に誤りがあったようです。gcc や vs への依存関係は、native image を使用する場合にのみ必要なのですね。