non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

子供に円周率の質問をされ、ビュホンの針を思い出しjuliaのコードを修正してマルチCPUで動かした

こんばんは。ブラックウィドーを奥さんと長男が観て、次男と自分はゴジラvsコングを観た@kjunichiです。

背景

長男が円周率について質問して来たので、モンテカルロ法を思い出し、それからビュホンの針を思い出し、Juliaでの実装がないかを調べた。

Juliaによるビュホンの針の実装

以下を見つけた。

https://storage.ey.md/Technology%20Related/PDFs%20and%20Books/Getting%20started%20with%20Julia%20Programming%20Language%20by%20Ivo%20Balbaert.pdf

@paralleは使えない!?

Juliaでマルチコアを使う記述方法がどうやら変更があったようで

use Distributed

を宣言して、

@parallel

@distributed

に書き換えるだけで動いた。

ベンチマーク

今年作ってビデオカードが買えずにいる仕事でも使ってる自作PCと、有り金全部注ぎ込んで買った8コアのMacBook Proで 試した。

自作PC

大枚叩いて買った8コアのMacBook Pro

@time buffon_par(10000000000)
32.051117 seconds (2.57 k allocations: 107.734 KiB)

おわりに

どうやら、見つけたコードは書籍の中のコードだった様だが、書籍も新しい版が出ているようで、こちらは、 @distributedに変更されていた。

確率的に求めるということで、数学ガール乱択アルゴリズムを思い出した。