最低限系備忘録
-
Julia速いと言われるけど、CPU1コアしか使っていないのを見ると損している気分。なんとかしたい。
-
Rubyの
parallel
のmap
みたいに、お手軽並列実行をやる。
前準備
実行時にプログレスバーをみたいので、ProgressMeter.jl をインストールしておく。
Pkg.add("ProgressMeter")
addprocess
で使用するコア数を指定する。
using Distributed
Distributed.addprocs(15)
子プロセスに持っていくパッケージに全部 @everywhere
をつける。たとえば
@everywhere using DataFrames
@everywhere using Statistics
@everywhere using CSV
@everywhere using ProgressMeter
using Colors
using Glob
...
子プロセスに持っていくfunctionにも全部 @everywhere
をつける。
@everywhere function f(x,y)
x + y
end
並列実行
pmap
もしくは progress_pmap
を使う。Rubyから来た人なので、こういう書き方があるのは助かる。
result = progress_pmap(cats) do cat
...
end
htop
を開いてjuliaが本当にマルチコアで動いているか確認。