01. プログラミング言語 Julia

Julia について

この授業では,プログラミング言語として Julia というものを使う. Julia についての詳しい解説は Julia って何? などを読んでいただくとしよう. 欧米だとスパコンでも使えるようになってきており, 手元の PC からスパコンまで,同じように動かせる速くて強力な近代言語として大変有力だ.

まあ、近代的で使いやすくて分かりやすくて無料で使えて計算がとても速い数値計算用言語、と思っておけばよいだろう.

Julia 利用に便利な jupyter インターフェイス

インストールなどの具体的な話をする前に,Julia の「使い方」の話をしておこう.困惑しないようにね.

まず,Julia などの最近のコンピュータプログラミング言語は,その言語を使うインターフェイス1を自分で選択することができるようになっている. なのでいろんな選択肢があって,チョイスに困るぐらいだ.

そして,この授業では jupyter とよばれる最もよく使われていると思われるインターフェイスを想定して話をすることにする. この jupyter は web ブラウザを介して各種コンピュータプログラミング言語を扱うためのインターフェイスプログラムで,Julia との関係は以下の図のようになる.

このインターフェイスだと,コマンドをタイプし直さなくて良いとか,グラフや動画が直接見られるなど便利なことが多いので,少しずつ慣れて,便利に使えるようになろう.

ちなみに jupyter は Julia とは別のプログラムなので Juliaインストール後に別途インストールが必要だが,インストールは大変簡単だ. インストールについてはすぐ下で解説するのでそこを見よう.

授業で Julia を使うための環境

さてじゃあ次に,どういう環境で Julia を使うかについて話をしよう.

コンピュータプログラミング言語である Julia は原理的にいろいろな環境で使えるが,この授業を受ける学生さんとしては以下のような環境が候補となるだろう. それぞれメリットデメリットがあるので,自分の場合はどれが良いかうまく選んで授業に臨もう.

自分のPC等を授業に持ち込む
Julia を配布している Download Julia を見ると具体的にわかるが,Julia のバイナリは Windows, macOS, Linux, FreeBSD 向けに普通に配布されていて,普通に使われている OS なら Julia が簡単にインストールできることがわかる.

授業に際してノートPC等を持参できるのであればそれに Julia をインストール(すぐ下で解説する)して授業で使うというこの形が,後のためにも一番のオススメだ. Julia のインストールは後回しで良いので,使えるノートPCがあるなら持ってこよう.
計算機室にある阪大教育用計算機を使う
Julia 本体(ver. 1.3.1) + IJulia package(Julia のライブラリのこと)がインストールされていてすぐ使える(他の package はインストールされてない).外部との通信が遅いので package のインストールなどは遅いが, 授業用にこの環境を使ってももちろん問題ない. 使い始める前に少し準備が必要な場合があってそのときの対応作業は下記の通りだ.読んでおこう.

阪大教育用計算機を使う場合の準備:
Julia の package(ライブラリ)の管理は内部的に git, curl といったコマンドを用いて行われる. そのため,firewall の中(たとえば阪大情報教育システムはそうである)では,適切な設定をしないとパッケージをうまく扱えない可能性がある.
そこで,Julia の package 周りでエラーがでる場合は下記の 2つの作業をしよう. なお,エラー云々関係なく,最初に念の為にやっておいても良いだろう.

設定その 1 (for git コマンド)
Windows の メニュー → "Command Prompt" として command prompt を起動し,次の3つのコマンドを実行する.すると,とある設定ファイルが作られて下記の内容が書き込まれ, 以降のgit コマンドは proxy サーバを介して外へつながるようになる.

git config --global http.proxy http://toyonakans.ecs.cmc.osaka-u.ac.jp:3128
git config --global https.proxy http://toyonakans.ecs.cmc.osaka-u.ac.jp:3128
git config --global url."https://".insteadOf git://


設定その 2 (for curl コマンド)
a.おそらく c:\Users(もしくはユーザー)\アカウント名\.julia というディレクトリがあるので,その中に config というディレクトリを作る.
b.上で作ったディレクトリに startup.jl というファイルを作り,以下の2行を書き込んでおく.

ENV["HTTP_PROXY"] = "http://toyonakans.ecs.cmc.osaka-u.ac.jp:3128"
ENV["HTTPS_PROXY"] = "http://toyonakans.ecs.cmc.osaka-u.ac.jp:3128"
CoCalc などの, Julia が使えるwebサービスを利用する
世の中にはプログラミング環境を提供する web サービスが結構存在していて,その中には Julia が使えるものもある. ここで紹介している CoCalc サービスもその一つで,いろいろな制限はあるようだが無料でも使える. 自分がインストール作業をしなくても良いのが嬉しい,という人もいるだろう. もちろん,こういうサービスは楽ができる分,本気で使いたいならば課金を考える必要が出てくるだろう2

Julia をインストールしよう

上にも書いたように,自分の PC に Julia をインストールして使うのがベストだ.半年後,授業が終わってからも Julia を使ってあれこれする機会はあるだろうからね.

ここに自分の PC に Julia をインストールする場合の手順等を書いておこう. 阪大教育用計算機や,web サービスを使う場合はこの作業は不要だ.

Windows の場合
1.最初に,Windows のアカウント名に

  半角アルファベット, 半角数字, 半角ハイフン, 半角ピリオド, 半角アンダースコア

以外の文字を使っていないか確認しよう. というのも,これら以外の文字を使ったアカウント名だと上記の jupyter 環境が使えないのだ.

もしもこれら以外の文字をアカウント名の中で使っている人は,アカウント名をこれらの文字のみからなるように変更するか,新たにこれらの文字だけで書かれるアカウントを別に用意してそちらにログインし直し,下記の作業へ進もう. これらの文字をアカウント名の中に使っていない人は,そのまま次の作業へ進もう.

2.Julia を配布しているDownload Juliaから Windows 向けの最新の installer をダウンロードしよう. おそらく多くの人の Windowsは 64bit だろうから 64bit(installer) とあるものをダウンロードすれば良い. そして,ダウンロードできたらそのファイルをダブルクリックすれば良い.素の Julia がインストールできる.
インストール後に path 設定をしたい等の場合は Platform Specific Instructions for Official Binariesを見ておくとよいだろう.
Mac の場合
Julia を配布しているDownload Juliaから macOS 向けの最新の installer をダウンロードしよう(64bit一択だ). そして,ダウンロードできたらそのファイルを使って他のアプリケーション同様にインストールすれば良い.素の Julia がインストールできる.
symbolic link 等の設定をしたい等の場合は Platform Specific Instructions for Official Binariesを見ておくとよいだろう.
Linux/FreeBSD の場合
Julia を配布しているDownload Juliaから該当する最新の tar.gz ファイルをダウンロードしよう. あとは解凍して,適切な場所に置けば良い.
その後の細かい設定については Platform Specific Instructions for Official Binariesを見ておくとよいだろう.

jupyter をインストールしよう

Julia をインストールした後に,jupyter をインストールしよう. これはいろんなやり方があるが,一番簡単なのは基本的に OS に依存しない以下の方法だろう. 次の手順で一回だけ作業を行えば良いのだ.

1.まず,Julia を起動する.Julia がインストールされているならば,どの OS でもメニューのどこかに Julia があるはずなのでそれを使おう. すると,

といった感じの window が起動するだろう(これは julia の REPL インターフェイス). ただし,window の色は環境依存なのでそこは気にしないように.

2.この Julia の window 中で ] キーを押す. すると,"julia>" というプロンプトが "(v1.5) pkg>" という感じのプロンプトに変わるだろう. これは Julia のパッケージ管理モードに入ったことを意味する.

3.このパッケージ管理モードのまま,

1
add IJulia

と入力する(大文字小文字の区別があるので注意). これは jupyter を使うための "IJulia" というパッケージのインストール作業である. しばらくかかるので待とう.

4.上の作業が終わったら,backspace キーを押す.すると通常モードに戻り "julia>" というプロンプトに戻るはずだ. そうしてから,次の 2つのコマンドを Julia に実行させよう.

1
2
using IJulia
notebook()

すると上の2つ目のコマンド notebook() を実行した時に jupyter 関連のソフトウェア一式をインストールしてくれる. このときインストール方式等について尋ねてくるが,よくわからない場合は y キーを押しておけば良い.

しばらく待つと,作業が終わる. もしかしたら web browser が起動したりもするが,この段階ではいったんその web browser も閉じ,この julia 環境も終了させてしまおう. これで一応,Julia と jupyter が使えるようになったはずだ.

Julia & jupyter を起動/終了するには

さて,これで Julia and jupyter が使えるようになったはずだ. その使い方を最低限書いておこう.

起動の手順
Julia を jupyter インターフェイスで利用するには,基本的には

Julia を起動し,その中で以下の2行を実行させる:
1
2
using IJulia
notebook()
 
という作業で良い.
もしくは,おそらくメニューに Anaconda3 という項目があるだろうから,その中の Jupyter notebook を起動しても良い.
これで web browser が呼び出され,そこに下のような jupyter インターフェイスが表れるはずだ(見えている細かい内容は環境によって異なる).
これは jupyter のホーム画面とでも言うべき画面で,様々なファイル操作等はここを経由して行う.

次に Julia カーネルと接続して Julia を実際に使う画面を起動する. それには,この画面で右上に小さく見えている   New ▼   というボタンを押して,
というメニューを出現させ,例えばここでは "Julia 1.5.2" を選べば良い(このように選択肢が複数ある場合は,Julia で,かつ,なるべくバージョン番号の大きいものを選べば良い).
すると
といった画面が起動する. ここで入力を行うことで,Julia を使う,Julia プログラムを動かす,といったことができる.
終了の手順
実際の使い方の解説の前に,終了する手順を示しておこう.
まず,Julia を使っている画面の左上を見て,
上図の赤い丸がついている部分のアイコンを押し,念の為に現状をセーブしておく.

次に,その上の "File" という部分を押すとメニューが出るので,その一番下の "Close and Halt" を選ぶ.

次に,jupyter のホーム画面に移り, 右上の "Quit" ボタンを押す.これで jupyter インターフェイスが終了する.

あとは Julia 環境を終了させれば良い.

Julia and jupyter を試してみよう

文法云々の堅い話はおいておいて、まあ、まずは触ってみよう.

インストール不要, 無料で Julia をすぐ使える JuliaBox が公開されている

へ飛ぼう.書いてあることの半分ぐらいが今の君たちの環境に合致するだろうから,そうした部分について、jupyter の操作の練習を兼ねてごく簡単に Julia を触ってこよう.
(注: 上の web で言及されている JuliaBox というサービスは現在は廃止されている)

なお,(飛んだ先の web にも書いてあるが) jupyter インターフェイスでは

Shift キーを押しながら Enter キーを押すと,書き込んだことが Julia で実行される.

逆に言うと,単に Enter キーを押しただけだと入力を次の行へ進めるだけで反応が特に無い.驚かないように.

文法等のマニュアル、解説

日本語で書かれた解説が載っている M. Hiroi's Home Page: Julia Language Programming や、英語でよければ 本家のマニュアル あたりをみると詳細な文法の解説があるので、困ったらこれらを読もう.

また、できれば本を一冊買っておくと良い. おすすめは 書籍: Julia 1.0 Programming (2nd ed.) で、英語だけれども大変読み易い.

もう少し試してみる

実際に自分でプログラムを組む前に、もう少し試してみたほうが良いだろう. というわけで、下記の実習をやっておこう.

  実習

  1. 超入門 (すべてを真面目にきちんとやる必要はない)
  2. 魔法の加速法

レポート

最初はレポートの練習として,可能ならばで良いので,下記要領でレポートを出してみよう.

  • e-mail にて,
  • 題名を 2020-numerical-analysis-report-01 として,
  • 教官宛(アドレスは web の "TOP" を見よう)に,
  • 自分の学籍番号と名前を必ず書き込んで,
  • 内容はテキストでも良いし,pdf などの電子ファイルを添付しても良いので,

下記の内容を実行して,結果や解析,感想等をレポートとして提出しよう.

  1. 本資料に沿って自分が授業で使う Julia 環境を選んだときに,Julia のインストールが必要ならばインストールしよう.
  2. 本資料の "Julia and jupyter を試してみよう" に沿ってやってみよう.
  3. 本資料の "もう少し試してみる" に沿ってやってみよう.

  1. 昔はプログラミング言語といえばコマンドラインでコンパイラ/インタープリタを直接呼び出す「コマンド」を直接書き込むスタイルしかなかったので,わかりやすくなってよかった. ↩︎

  2. CoCalc の一番安い料金だと,$35/年 ぐらいだ.安いと言ってよいだろう. ↩︎