最強.NET開発PCを作るよ(その1) はじめに
最強.NET開発PCを作るよ(その2) メモリ編
の続き
CPU を選定する前に考えたのが、用途です。早い CPU にすればそれに越したことはないのでしょうが、予算の関係やそもそもその CPU の性能を使い切れるのか?という問題もあって、それなりに適切なものにしたいと。
候補に挙がっていたのが
- Core i7 3930K
- Core i7 3770K
- Core i5 3570K
なところです。価格.com などの掲示板で見ると、3930K のほうはオーバークロッカーが使っていたり動画のエンコードで使っていたり。3770K のほうは現状のスタンダードというところで、動画のエンコードには十分という話が書いてあります。
動画のエンコードの場合には、CPU を使いっぱなしになる高速運転状態が特徴です。ですが、Visual Studio などを使った開発 PC の場合には、最大瞬間風速はそれほどいらないのですよ。確かに、OpneCV で顔認証の解析をするとか、テンプレートマッチングをがっつりと書くとか、というのならば動画のエンコード並に CPU 速度が効いてくるのですが、ソフトウェア開発をしているときには、ほとんどがキーボードを打っている時間なので、さほど瞬間風速は高くなくてもよいのです。
結果的に i7-3820 という CPU に落ち着いたのですが、実は i7-3930K と i7-3820 の間にはコア数が異なるという壁があります。6コアと4コアの違いなのです。価格的に2万円も違うので、オーバースペック&オーバー予算ということで、4コアに落ち着いたのですが、ちょっと6コアというのは、プログラマにとって魅力的なんですよね。
■なぜコアが多いほうがいいのか?
ちょっと、このタスクマネージャを見てください。VMWare 上で、2プロセッサを振り分けて VC++ のビルドをしているところです。Windows 7 のタスクマネージャでは、Visual Studio が2プロセッサを使ってビルドをしています。
ホストしている Windows 8 のほうで、ちょうど波があっているところが、この2プロセッサですね。動画のエンコードや Windows 8 上で Visual Studio だけを動かしてる場合は、プロセッサに均等に負荷が割り当てられるので、こういう風にはなりません。
実はプロセッサにプロセスを割り当てるほうが、タスクの切り替えなどが発生しないのでプログラムの実行は早くなるし、プログラムは簡単になるんですよね。C++ AMP などが出てきているので、パラレルのプログラミングも難しくはなくなってきていますが。まあ、そこまで本格的にプログラムで制御しなくても、開発パターンとして、Windows 8 で2枚のモニタを使って開発していれば、
- ひとつのモニタで Visual Studio で組む
- もうひとつのモニタで、Windows ストア アプリを常時稼働
- VMWare でサーバー割り当て
- SQL Server などのデータベース処理
を同時に実行することになります。まあ、さらに私の場合には雑音を消すために、動画が表示されているという GPU を使うパターンも多いのですが、データベース処理と開発環境(Visual Studio)をバッディングさせないというのが CPU のコアを求める理由のひとつです。
なので、2万円ほど予算を積んで、コアを1.5倍(4から6へ)にしたほうが良かったのでは?と思ったりもしますが、まあ、そのあたりは予算的なものもあるし。
そんなわけで i7-3820 に落ち着いたというところです。
ARK | Intel® Core™ i7-3820 Processor (10M Cache, up to 3.80 GHz)
ARK | Intel® Core™ i7-3930K Processor (12M Cache, up to 3.80 GHz)
■AMD はどうなのか?
今回は、無難に Intel を求めましたが、AMD という選択もあります。AMD だと同一の価格帯で8コアいうものもあるので、先の並列で動かすという条件を軽くクリアできます。
その場合には、マザーボードはどれを選べばいいの?ってことになるので、ちょっと私の知識では追いつかないので…そのあたりの選定は両氏に任せるということで。後で聞いてみますか。
お次は、ストレージ関係で SSD, HDD ということで。