13:24:43)追加された行はこの色です。削除された行はこの色です。//--------------------------------------------------------------------------------//少ない知識ですが、恩返しと思いページを立ち上げています。//加筆修正、大歓迎です。markovchainmontecarlo(2015/09)//--------------------------------------------------------------------------------&color(red){&size(30){並列計算(snowfall)};};~~マルチコアが主流となってきているので、並列計算のパッケージである「snowfall」を紹介します。[#jc285812]計算速度を向上させたいが、煩わしいことはなるべく避けたい。~そのような方にとって、並列計算パッケージ「snowfall」は一つの方法かもしれません。~~本記事は、以下の方を想定しています。~-[[Rコード最適化のコツと実例集]]を読んで、ベクトル化等出来ることはは既に行っている。使い方は分かっている。~-モンテカルロシミュレーションなどの繰り返しを大量に行う必要がある。~レベルとしては以下の方~-Rの強みであるベクトル化は意識しなくても行っている。family]よりも速度が速いことを知っている。バイトコンパイラー]]も知っていて、必要な関数には適用できる。&color(red){このレベル};高速化の手段はいくつかありますので、適切な方法を用いてください。「Rcpp」パッケージを利用すると爆速になります。(C言語を学ぶ必要があるため、「ちょっと試そうかな」という場合には向きません)-CUDA対応のグラフィックボードを持っている。gputools等を使用すると並列計算が速くなる可能性があります。[#bbda15a6]並列化できる割合によって、理論上の性能向上の限界が変わってきます。([[アムダールの法則:https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A0%E3%83%80%E3%83%BC%E3%83%AB%E3%81%AE%E6%B3%95%E5%89%87]]を参照)~並列化できるタスクが90%ある場合性能向上の限界は10倍、半分しかない場合は2倍となります。~ここで並列化できないタスクとは各workerとの通信などを指します。~なお、&color(red){かえって遅くなる};場合もあります。[#zaa1454b]並列計算を中断した場合は、必ずworkerを[sfStop()]で一度終了させてください。~終了しないと、意図としない結果が返ってきます。#やっぱり返る結果は意図としない結果。0.200**コア数を知りたい。[#w237cd57]以下のコードで取得できます。~なお、ハイパースレッディングを備えたCPUではスレッド数が取得されます。>#parallelのdetectCoresを使用して取得します。ページを立ち上げました。修正加筆、大歓迎です。mokadaこのページに掲載されている情報に関する責任はすべてページ作成者あるいは投稿者にあり、Wiki管理者とは一切関係ありません。