
拓海先生、お忙しいところ失礼します。先日部下から「確率的プログラミングという論文を読め」と言われまして、何をどう聞けばいいのか分かりません。要するに、我が社の現場で役立つ技術なのでしょうか。
\n
\n

素晴らしい着眼点ですね!大丈夫、一緒に整理すれば必ずできますよ。端的に言うと、この論文は確率的プログラムを既存のコンパイラとOS機能で効率よく動かす「作り方」を示したものですよ。
\n
\n

うーん、確率的プログラムという言葉自体がよく分かりません。難しい数理の話になるのではと身構えてしまいます。結局、投資対効果の観点でどう判断すればいいですか。
\n
\n

いい質問です。専門用語は後でかみ砕いて説明しますが、要点は3つです。1) 既存のコンパイラとOSの仕組みで動かせる点、2) 並列化やスケールの取りやすさ、3) ハードウェアやシステムの最適化余地が開く点です。これによって開発コストと実行効率のバランスを評価できますよ。
\n
\n

これって要するに、今あるコンピュータの仕組みをうまく使って、確率を扱うソフトを速く、安く動かせるようにしたということですか?私としては現場で試せるかが知りたいのですが。
\n
\n

その通りです。具体的には、probabilistic Cという「中間言語」を提案し、それを通常のCコンパイラでコンパイルして動かす仕組みです。身近な例で言えば、既製の自動車に特別な追加部品を付けてコストを抑えつつ性能を出すようなものですよ。現場導入は段階的に評価できます。
\n
\n

段階的評価というと、まずは小さなモデルで試してから拡張するということでしょうか。具体的にはどのくらいの工数で動かせますか。
\n
\n

良い着眼点ですね!導入の具体手順も3点で示します。1) 既存の確率モデルをprobabilistic Cで書き直して小さく評価する。2) POSIX(Portable Operating System Interface)というOSレベルの標準機能を使い、並列実行やプロセスのフォークでスピードを出す。3) 実行プロファイルを見て、必要ならハードウェアやコンパイラの最適化を検討する。これなら工数を抑えつつ段階的に投資判断できるんです。
\n
\n

なるほど、肝はOSの機能を使う点ですね。最後にもう一度だけ要点を整理していただけますか。投資対効果の説明を社長にする必要があるものでして。
\n
\n

素晴らしい着眼点ですね!要点を3つでまとめます。1) probabilistic Cは既存コンパイラとOS機能で動くため、専用実装より初期コストが抑えられる。2) フォークや共有メモリといったPOSIXの仕組みで並列化が容易になり、実行効率が向上する。3) システムやハードウェアの最適化を追加で行えば、大規模運用でも費用対効果を改善できる。これで会議資料に使える説明ができますよ。大丈夫、一緒にやれば必ずできますよ。
\n
\n

分かりました。要するに「既存のコンパイラとOSの力を借りて、確率的処理を安く早く回すための設計で、段階的に投資判断できる」ということですね。ありがとうございました、拓海先生。自分の言葉で説明できそうです。
\n
\n


