#1. はじめに
研究中にJuliaを少し触ってみたので環境構築から実際にプログラムを走らせるまでの手順を書き記す.
#2. 環境構築
こちらの記事を参考に環境構築を行う.
##2.1. インストール
以下のパッケージをそれぞれ公式サイトからダウンロード,インストールする.
VSCode上でJuliaをJupyterで実行したい場合,VSCodeはInsiders版を利用する必要がある点に注意する.
- Julia 1.6.4 (64-bit) (https://julialang.org/downloads/)
- Visual Studio Code Insiders 1.64.0(x64) (https://code.visualstudio.com/insiders/)
##2.2. 環境変数の設定
- タスクバーの[ここに入力して検索]に[環境変数]と入力し[環境変数を編集]をクリック
- ユーザー環境変数の[Path]を選択し,編集をクリック
- 新規をクリックし,JuliaとVSCodeのPathをそれぞれ追加
-
インストールの際,インストール先をデフォルトに設定した場合のPathはそれぞれ以下の通りになる.
C:\Users\ユーザー名\AppData\Local\Programs\Julia-1.6.4\bin C:\Users\ユーザー名\AppData\Local\Programs\Microsoft VS Code Insiders\bin
-
インストール先を他に設定した場合は,指定先のPathを入力する必要がある
-
##2.3. VSCodeの設定
- VSCodeを起動し,
Ctrl+Shift+X
でExtensionsを開く. - JuliaとJupyterをそれぞれ検索し,インストールする.
- Juliaの拡張機能にPathを通す.
-
インストールの際,インストール先をデフォルトに設定した場合のPathはそれぞれ以下の通りになる.
C:\Users\ユーザー名\AppData\Local\Programs\Julia-1.6.4\bin\julia
-
##2.4. 動作確認
- Juliaが正しくインストールされているか確認する.
-
Ctrl+@
でTerminalを開く. -
julia --version
と入力し,インストールしたJuliaのバージョンが表示されるのを確認する.
-
- 次にVSCode上でJupyter Notebookが正常に動作するか確認する.
-
Terminalで
julia
と入力し,REPLを起動する. -
import Pkg; Pkg.add("IJulia")
と入力し,IJuliaをインストールする. -
Ctrl+Shift+P
でコマンドパレットを実行し,Preferences: Open Settings (JSON)
を選択する. -
settings.json
に以下を追記する.settings.json{ "jupyter.experiments.opuOutFrom": ["NativeNotebookEditor"] }
-
Ctrl+Shift+P
でコマンドパレットを実行し,Jupyter: Create New Jupyter Notebook
を選択する. -
右上の
Select Kernelをクリックし,
Julia 1.6.4`を選択する.
-
#3. 速度比較
- Juliaの特徴として高速な動作が挙げられるが,本当に速いのかPythonと比べてみた.
- 今回はバブルソートの実行時間で比較してみた.条件は1~10000までの数字から50000個の数字を重複ありで無作為に抽出した配列をソートしたときの実行時間を計測.
##3.1. 使用コード
- 使用したコードはそれぞれ以下の通りになっている.
###3.1.1. Julia
function BubbleSort(data)
for i = 1:length(data)-1,j = length(data):-1:i+1
if data[j-1] > data[j]
temp = data[j]
data[j] = data[j-1]
data[j-1] = temp
end
end
end
data = rand(1:10000,50000)
@time BubbleSort(data)
###3.1.2 Python
import numpy as np
import time
def BubbleSort(data):
for i in range(len(data)):
for j in range(len(data)-1, i, -1):
if data[j-1] > data[j]:
temp = data[j]
data[j] = data[j-1]
data[j-1] = temp
data = np.random.choice(np.arange(1,10000),50000)
start = time.time()
BubbleSort(data)
calc_time = time.time() - start
print("{} seconds".format(calc_time))
##3.2 結果
- 実行結果はそれぞれ以下の通りになった.
###3.2.3 まとめ
今回の結果からJuliaはPythonに比べ明らかに高速であることが分かった.処理にもよると思うが今回のケースでは約180倍Juliaが速いという結果になった.これから先Pythonだと計算時間がかかってしまうような処理を扱う場合,Juliaで代用するのもいいかもしれない.
#4. おわりに
今回Juliaを少し触ってみた.JuliaでYOLOも触ってみたので機会があれば書いてみたいと思う.