「Julia」の主な特徴として、「高速性(JITコンパイラ)」「分散処理」「パッケージ(外部ライブラリ連携)」「サポートOS」「サポートIDE」について紹介します。

「Julia」の主な特徴

「Julia」の主な特徴として、「高速性(JITコンパイラ)」「分散処理」「パッケージ(外部ライブラリ連携)」「サポートOS」「サポートIDE」について紹介します。

■関連する比較ページ

「Julia」の主な特徴

■高速性(JITコンパイラ)

Julia最大の特徴は「実行速度の高速性」です。

Juliaの「LLVMベースのJIT(ジャストインタイム)コンパイラ」は、コード実行前に型推論/最適化を行い、その後コードを実行します。型推論の結果、型が決定できる部分では強力な最適化を行い、曖昧性が残る部分では実行時の型に合わせて実行します。

JITコンパイラと言語設計を組み合わせることで、ネイティブコンパイル言語並の高速動作を実現でき、静的コンパイル言語に近いパフォーマンスを発揮できます。

JuliaのコンパイラはPython/Rのような言語に使用されているインタプリタとは異なるため、最初は、Juliaが備えるハイパフォーマンスを実感できないこともあります。そのような場合には、Juliaドキュメントの「パフォーマンスヒント」セクションを参照し、Juliaの仕組みを理解すると、C言語並の高速処理に近づけます。

処理速度

Juliaの処理速度については、
・「Fortran」「C言語」の半分程度の速度
・スクリプト言語最速といわれる「JavaScript」を上回る速度
・「Go」「Java」と良い勝負ができるレベル
・「Python」の数十倍高速
・「R言語」「MATLAB」の数百倍高速
などの報告があがっています。

実行速度比較ベンチマーク

Juliaの公式サイトでは、他言語との相対的パフォーマンス比較として、マイクロベンチマーク結果について紹介されています。

→Julia →Julia Micro-Benchmarks

■分散処理

Juliaは「並列処理」や「分散(クラウド)コンピューティング」も視野に入れて設計が行われています。

ユーザーに特定スタイルの並列処理を課すものではなく、分散計算のための複数のビルディングブロックを提供し、多数の並列スタイルをサポートするための十分な柔軟性を持たせています。

■パッケージ(外部ライブラリ連携)

Juliajは「歴史が浅いためライブラリ数が少ない」という問題について、外部ライブラリ連携でカバーできるようになっています。

CおよびFortran共有ライブラリの外部関数について、ラッパーコードを記述したり、既存コード再コンパイルすることなく呼び出せます。Juliaのインタラクティブなプロンプトから直接外部ライブラリ関数を呼び出して実行できます。

Julia開発者コミュニティは、Juliaのビルトインパッケージマネージャを通じて、多数の外部パッケージを迅速に提供しています。

ポイント

・「C言語」「Fortran」のライブラリをラッパーなしで直接呼び出し可能(Foreign function interfaceに対応)
・Python関数の直接呼び出し(PyCallパッケージを使用)
・C関数を直接呼び出し(ラッパーや特別なAPIは不要)
・「Python」「PyLab」「iPython Notebook」のためのインターフェース
・「浮動小数点数計算」「線型代数学」「高速フーリエ変換」「正規表現照合」などのライブラリを利用可能

Juliaパッケージリスト

多くのパッケージがJuliaパッケージリストに用意されています。

→Julia →Julia Package Listing

■サポートOS

Juliaは、次のプラットフォームで定期的に構築されテストされています。
・公式版:Linux、macOS、Windows
・コミュニティ版:FreeBSD

■サポートIDE

Juliaは「Atom」「Visual Studio Code」「Eclipse」の3つの主要なIDEにサポートされています。

Julia最新TOPICS

【OSS】科学計算処理向けプログラミング言語「Julia」のベスト機械学習ライブラリ5選---「Flux」「Knet」「MLBase.jl」「TensorFlow.jl」「ScikitLearn.jl」(2019年04月10日 10:56)

科学計算処理向けの高水準/動的プログラミング言語「Julia」の便利な機械学習ライブラリを紹介。 「Julia」とは Juliaは「実行速度」と「記述性」の両立を目指したテクニカルコンピューティングのためのハイレベルで高性能な科学技術計算向けプログラミング言語。 「高度なコンパイラ」「分散並列実...

Julia最新CLOSEUPコラム

イベント情報

  • Zabbixカンファレンス2019
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter