バージョンアップ情報
Julia情報
Juliaとは
Juliaは、動的汎用プログラミング言語でありながら、科学技術分野などの大規模数値計算において従来の動的言語に比べ格段に早い速度でコードを実行可能であるという特徴を持っています。2009年に開発が開始され、2012年にオープンソースをとして公開されました。開発者によると、Juliaと言う名前には特別の意味はなく、単にかわいい名前というだけであるということです。
Juliaの特徴であるコードの実行速度は、オプティマイズされていないPythonのコードやRの数倍の速さであるとされており、C言語のコードに引けを取らない実行速度を出すコードを記述することも可能とされています。動的プログラミング言語でありながら、スタティックなC言語に迫る速度でコードを実行できるポイントの1つは、LLVMを使って実装されたJITコンパイラを備えている点が挙げられます。
Juliaは、すでに多方面で実際のシステムを開発するのに使われていますが、Juliaの名前を一躍有名にしたのは、2015年のニューヨーク連邦準備銀行によるJuliaを使ったアメリカ合衆国経済のモデル化で、それまで使用していたMATLABによる実装よりも10倍の速度になったとされています(*1)。
主な特徴
実装 |
C、 C++、 scheme |
---|---|
パラダイム |
マルチパラダイム、マルチディスパッチ、メタプログラミング |
タイプシステム |
ダイナミック(スタティックな言語のように、変数に型指定することも可能) |
スレッドによる並列実行 |
グリーンスレッドにより、OSネイティブのスレッドに頼らずに並列実行環境を提供 |
パッケージマネージャー |
ビルトインのパッケージマネージャーを提供。Pkgコマンドでパッケージ管理が可能 |
対話実行環境 |
ビルトインのREPL |
モジュールシステム |
モジュールによる名前空間の切り分け、using、importキーワードによりmodule(package)をロード |
豊富な型 |
豊富なビルトインの型(Type)が提供されている。数値型は128bitまで対応。ユーザ独自の型は、Structキーワードで定義可能で、ビルトインの型と同等の速度 |
エラーハンドリング |
try-catch、finally、error、throw |
ジェネリックファンクション |
マルチディスパッチは別の型の引数を取る同名関数を定義することで可能。Juliaではそれぞれをmethodと呼ぶ。 |
メタプログラミング |
Lispライクなmacroに加え、他の豊富なメタプログラミング機能によりメタプログラミングを可能としている。 |
他言語の呼び出し |
FFIを介さず、ネイティブ機能でC言語、Fortranの関数呼び出しが可能。 |
他言語からの呼び出し |
C/C++から、Juliaコードを呼び出すことが可能( |
Unicodeサポート |
UTF-8を含むネイティブでのUnicodeの完全サポート |
開発環境 |
テキストエディタ(Emacs,Vim, Sublime Text) |
ユースケース
Juliaのユースケースとしては、以下のようなものがあります。
- 機械学習/AI
- データサイエンスと可視化
- ウェブ開発
- グラフィックス
- 並列コンピューティング
- ロボティクス
- 科学的コンピューティング
- オーディオ開発
動作環境
※v1.6.7現在
macOS |
10.10+ |
x86-64 (64-bit) |
---|---|---|
11.4+ |
ARMv8(64-bit) |
|
10.6+️ |
I686(32-bit)/x6-64(64-bit) |
|
Windows |
10+ |
x86-64 (64-bit) |
i686 (32-bit) |
||
CUDA 10.1 |
Nvidia CUDA(64-bit) |
|
Linux(Glibc) |
2.6.24+ |
x86-64 (64-bit) |
i686 (32-bit) |
||
ARMv7 (32-bit) |
||
ARMv8 (64-bit) |
||
x86-64 musl libc |
||
PowerPC (64-bit) |
||
CUDA 10.1 |
Nvidia CUDA (64-bit) |
|
ROCM |
AMD ROCM (64-bit) |
|
oneAPI |
Intel oneAPI (64-bit) |
|
Linux(Musl) |
2.6.39+ |
X86-64(64-bit) |
FreeBSD |
12.0+ |
x86-64 (64-bit) |
i686 (32-bit) |
Juliaのライセンス
Juliaは、MITライセンスの元に公開されているオープンソースの言語です。MITライセンスのソフトウェアは無償で再配布、商用利用などが可能となっており、他のオープンソースライセンスに比べ制限が極めて緩いライセンスになります。
関連技術
- Python(NumPy, SciPy)
- R言語
- C言語
- Fortran
- Common Lisp
- Scheme
- MATLAB
- Mathematica
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。