non vorrei lavorare

2020年度からの小学校プログラミング教育の必修化を親として迎えるブロガーの書く、子供との日常

子供に円周率の質問をされ、ビュホンの針を思い出し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に変更されていた。

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