森理 麟(moririring)のプログラマブログ

ゲームプログラマ森理 麟がのプログラムの話題を中心に書くブログです。

クッキーツイートの高速化 その16 一行書き換え、驚くべき速さ #CookieToEat

←驚きの白さに驚いたことない
それではマルチコアの説明です。

マルチコアプログラミングを組みたいのであればVisual C# 2010を使うことをお勧めします。

2010であればExpress Edtionで問題ありません。

2008以下でもそれほど難しいわけではないですが、2010の手軽さはもう抜群です。


どれぐらい簡単かというと、ただループを置き換えるだけです。

これだけで、もうビックリするぐらい早く出来ます。

個人的には初めてJITコンパイル使った時ぐらいの衝撃でした。

え?もう終わり?まさかでしょ?と信じられませんでした。言ったらそれぐらい速くなります。

//このループを
for (int i = 0; i <= 10; i++){処理}
↓
//このように置き換える。
Parallel.For(0, 10, i =>{処理});


もちろんコア数に依存するので、どのパソコンでも速くなるわけではないです。

ただ、ここ数年で買ったパソコンであれば、恐らく数倍になります。

実際、森理が3年前に買ったノートパソコンでも結構速くなりました。

特に高速化をしたわけでもないのに、この速さは本当に病みつきになります。


マルチコアはたまに機嫌が悪い時があって、あまり速くならない時があります。

初回起動なんかで起きやすい感じです。

ただ、やはりソース実装レベルでは、置き換えだけでは済まないケースもあります。

次はそれを取り上げていきます。