Julia Info JP

Julia resources for Japanese speakers

View project on GitHub

Julia Info JP

ここはJulia言語の情報をまとめた非公式ページです。 PRして情報を追記してください。

Juliaとは?

Julia は2018年にバージョン1が公開されたオープンソースの科学技術計算言語で、 Fortranの様に高速でかつPythonの様に生産性の高い言語です。 Julia は様々な分野において活用が始まっています。

なぜ僕らはJuliaを作ったか

よくある誤解

  1. Q. インタプリタ言語なら遅いのでは?
    A. Julia はコンパイル言語で、C/C++ のコンパイラClangと同じ技術(LLVM)で実行時コンパイルされます。
  2. Q. 初心者には難しい?
    A. 文法はシンプルで、REPL・Pluto・VS Code 拡張など学習環境も充実しています。最初は Python のように書けますが、高速化のコツ(関数化・グローバル変数を避ける・型安定)を少しずつ覚えると実力を発揮し、C言語レベルの速度も出ます。
  3. Q. マイナーな言語ではないの?
    A. まだ若い言語ですが、科学技術計算・データサイエンス・最適化・HPC で採用が広がっています。パッケージエコシステムも成熟が進み、他言語資産(C/Fortran/Python)とも容易に連携できます。
  4. Q. 強い型付けなのか、動的型付けなのか。
    A. Julia は「動的型付け」かつ「強い型付け」です。変数の型は実行時に決まり、暗黙の危険な型変換は行いません。一方で多重ディスパッチとパラメトリック型により、必要に応じて型注釈や制約を付けて安全かつ高性能に書けます(型安定なコードは JIT により高速化されます)。
  5. Q. パッケージが少なくて結局Pythonに戻るのでは?
    A. 主要分野(数値解析・最適化・機械学習・可視化・データ処理など)は実用パッケージが揃っており、必要なら PyCall/PythonCall や ccall で Python や C/Fortran の資産もそのまま使えます。
  6. Q. GPU や HPC が苦手では?
    A. マルチスレッド・分散計算に加え、CUDA/AMD/Intel/Apple など各GPU向けのエコシステムがあり、単一言語で高水準から低水準カーネルまで記述・最適化できます。既存の C/C++/Fortran カーネルとの連携も容易です。
  7. Q. 機械学習/数値計算/大規模並列化/数学が1つの言語でできるというのは信じがたい、(何か)だめなんじゃないの?嘘じゃない?
    A. Julia は LLVM/JIT と多重ディスパッチにより、高水準のまま低レベル最適化まで一貫して書ける設計です。数値計算(LinearAlgebra/SciML)、機械学習(Flux/Lux)、最適化(JuMP)、大規模並列・HPC(Threads/Distributed/MPI.jl、CUDA/AMDGPU/oneAPI/Metal)を単一言語でカバーできます。足りない所は C/Fortran/Python をオーバーヘッドなしで呼べるので、「1つで全部」は本当です。

はじめかた

  1. Julia のインストール

    • ↓ 公式サイトから OS 別インストーラをダウンロード
  2. ターミナルで julia を起動

    julia> 1 + 2
    3
    
  3. パッケージを試す

    julia> using Pkg; Pkg.add("Plots")
    julia> using Plots; plot(sin, 0, 2π)
    
  4. VS Code 拡張機能 Julia を入れると REPL・Lint・デバッグが快適。
  5. Pluto.jl でノートブック環境 → julia> import Pluto; Pluto.run()
  6. GoogleColab/Jupyter でもJulia が使えます。

🔗 もっと詳しく: Julia Documentation → Getting Started

公式サイト

マニュアル

年間行事(国際)

  • JuliaCon Global
    全世界のJuliaユーザーが集う国際研究会
  • JuliaHEP
    高エネルギー物理の全世界のJuliaユーザーの集まり、研究会もある。

日本での国内イベント

アカデミック系

エンジニア系

団体

ワーキンググループ

スパコンにいれるためのマニュアル

日本語の教科書等