2023/03/15 発売の『実践Julia入門』のサンプルコード。
本GitHubリポジトリでは『実践Julia入門』(以降 本書)に掲載されているサンプルプログラムを収録しています。
本リポジトリは以下のような構成となっています。
notebooks/instantiate.ipynb:プロジェクト環境の依存パッケージをインストールする(最初に1回実行)Chapter1/~Chapter13/:本書の対応する各章のコードを収録したディレクトリChapterX-Y..ipynb:本書の各節(X-Y.)ごとのサンプルコードを収録したノートブックファイル- その他のファイル(
~.jl/~.txt等):上記ノートブック内で参照されているファイル
src/instantiate.jl:プロジェクト環境の依存パッケージをインストールする(最初に1回実行)Chapter1/~Chapter13/:本書の対応する各章のコードを収録したディレクトリChapterX-Y..jl:本書の各節(X-Y.)ごとのサンプルコードを収録したソースファイル- その他のファイル(
~.jl/~.txt等):上記ソースファイル内で参照されているファイル
JuliaBook2023Samples.jl:ダミーファイル(デフォルトのモジュールファイル)
Project.toml:本書全体のプロジェクト環境を表す設定ファイル
※ src ディレクトリ内の各 ChapterX-Y..jl ファイルは、notebooks ディレクトリ内の対応する ChapterX-Y..ipynb ファイルを jupytext というツールを利用して変換したものであり、REPL にコピー&ペーストして実行(もしくは対応するエディタで選択→実行等)することを想定したものです。
本リポジトリをクローンし、src ディレクトリ内の各 ChapterX-Y..jl ファイルをテキストエディタで開いて、REPL にコードをコピー&ペーストして実行してください。
対応するエディタ(IDE)なら、コードを範囲選択(もしくはコード上にカーソルを配置)して Ctrl+Enter 等でも実行できます。
ただし、行頭が「?」/「;」/「]」で始まっているものは、Julia REPL の対応するモードのためのコードとなっているため、そのままでは動作しません(エラーにならないように前後の行に #=~=# を設置(複数行コメント)してコメントアウトしてあります)。これらのコードは以下の表の要領で実行してください。
| コード例 | 対応するモード | 操作説明 |
|---|---|---|
?«関数名等» |
ヘルプモード | ? をタイプしてから «関数名等» をタイプ |
;«コマンド等» |
シェルモード | ; をタイプしてから «コマンド等» をタイプ |
]«コマンド等» |
パッケージモード | ] をタイプしてから «コマンド等» をタイプ |
なお Julia REPL 起動時に、リポジトリをクローンしたディレクトリ内で julia --project=@. として起動すると、本サンプルコードのプロジェクト環境を活性化した状態で起動できます。その場合最初にパッケージモードで(=] をタイプしてから)instantiate コマンドを実行すると、本書の依存パッケージがインストールされます(最初の1回だけでOKです)。
(『プロジェクト環境』については、本書の「第10章 パッケージマネージャ」を参照してください)
また一部のコードはマルチスレッド機能を有効にしないと期待通りに動作しません。その場合は julia -t 4 --project=@. のように -t N オプションを指定して Julia REPL を起動してください。
(『マルチスレッド』についての詳細は、本書の「第9章 並行・並列処理」を参照してください)
本リポジトリをそのままクローンし、JupyterLab(Jupyter Notebook)環境で notebooks リポジトリ内を開いてください。
クローンしたら最初に instantiate.ipynb を実行してください。
一部のノートブックは、マルチスレッドが有効になっていないと期待通りに動作しません。マルチスレッド対応の IJulia カーネルを追加して動作確認してください(方法は本書の「第1章 1-4. Julia を JupyterLab で使用する」を参照してください)。
手元に Julia や JupyterLab の環境がなくても、オンラインで用意されているプレイグラウンドである MyBinder 上で全てのサンプルプログラム(ノートブック)を動作させることができます。
本 README に設置した ボタンをクリックしてください。
しばらくするとクラウド上のプレイグラウンド環境が起動するので、各章の各ノートブックを開いてください。
ただし、以下の制約があります。
- 一定時間経過すると強制終了します(起動しっぱなしにはできません)。
- マルチスレッドのサンプルは期待通りに動作しません(シングルコアしか割り当てられない仕様となっています)。
本リポジトリの notebooks は Amazon SageMaker Studio Lab(以下 Studio Lab と略記)でも動作します。
すでにアカウントをお持ちの方は以下の手順に従ってください。
- 公式に用意されている サンプルリポジトリ の手順(Juliaのインストール)に従って、Studio Lab のお使いの環境に Julia をインストールする。
- ※ Julia のバージョン番号が古いままなので、現時点の最新版に変更すると良いです(例:
~/x64/1.7/julia-1.7.1-linux-x86_64.tar.gzの記述箇所を~/x64/1.9/julia-1.9.0-linux-x86_64.tar.gzにする)。
- ※ Julia のバージョン番号が古いままなので、現時点の最新版に変更すると良いです(例:
- 本 README に設置した
ボタン(
notebooks/instantiate.ipynbへのリンクになっています)をクリックする。 - 指示に従ってお使いの環境に「リポジトリを丸ごとクローン」する(「ノートブックだけコピーする」の方を選択しないでください!)
- お使いの Studio Lab 環境で
instantiate.ipynbが開けたら、それをそのまま実行する。 - 各章の各ノートブックを開く。
一部のノートブックは、マルチスレッドが有効になっていないと期待通りに動作しません。マルチスレッド対応の IJulia カーネルを追加して動作確認してください(方法は本書の「第1章 1-4. Julia を JupyterLab で使用する」を参照してください)。
アカウントの申し込みは、公式の アカウント作成フォーム から行ってください。