🍒

JupyterでマルチスレッドのJuliaを使う

2024/12/22に公開

IJulia.jlのカーネルはデフォルトではシングルスレッドです. マルチスレッドを使いたい人は下記をお試しください.

IJulia.jlのインストール

まだJupyter Notebook/Labをインストールしていない人はimport Pkg; Pkg.add("IJulia")IJulia.jlを追加しましょう. 詳しい手順は下記の記事で解説しています.

https://zenn.dev/ohno/articles/5ad94fb39a3948#jupyter-notebook

マルチスレッドカーネルの追加

どこで見たアイディアなのか忘れてしまいましたが, ググるとこちらのページに同じコードがあります. 下記のコマンドで, 自動的に最大のスレッド数を指定したJuliaカーネルを追加できます. スレッド数を指定したい場合はこちらのページを参考にしてください.

追加方法
using IJulia
installkernel("Julia (Multi-threads)", "--threads=auto")

追加した後はいつも通りJupyter Labを起動します.

起動方法
using IJulia; jupyterlab(detached=true)

並列化されたカーネルが追加されていることが確認できます.

スレッド数は次のように確認できます.

スレッド数の確認
Threads.nthreads()

追伸

julia -t 4julia -t auto で起動するとREPL上でもスレッド並列が使えます.

4スレッド
julia -t 4
julia> Threads.nthreads()
4
スレッド数の自動決定
julia -t auto
julia> Threads.nthreads()
8

追伸

スレッド並列で実際に速くなる例を用意しました.

https://gist.github.com/ohno/9a9e9358f8f86fc303f5e4acbd75fb47

Discussion