計算を勉強しているものです。 Dual coreのマシンを購入し、Visual C++2005でコンパイルしても、CPUの使用率が50%にしかなりません。
二つのCPUを使い切る方法を知っている方教えてください。
よろしくお願いいたします。
答え:
一つのプログラム(プロセス)でCPUを使い切るとしたら、処理を別スレッドに分ける必要がありますね。
次のサンプルはMicrosoft Visual C++ 2005/Win32コンソールアプリです。
実際に実行してみるとThreadの関数を同時に二つのCPUで処理している様子がタスクマネージャーから伺えて面白かったです。
#include "stdafx.h"
#include <process.h>
void Thread(void* param)
{
for (int ii=0; ii<1000000; ii++){
printf("%d\n", ii);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int t1 = _beginthread(Thread, 0, NULL);
int t2 = _beginthread(Thread, 0, NULL);
while(1);
return 0;
}
補足の質問:
ありがとうございました。確かに、100%になりましたが、二つのCPUが勝手に動き、2回実行しています。これを半分づつに分けて実行するようにしたいのですが、どのように書けば良いでしょうか。教えてください。この質問・回答は役に立ちましたか?
答え:
ウイルススキャンしながら、ビデオを再生して下さい。
又は、デフラグしながら、ゲームをする。
等々!
他は答える:
Visual C++2005が2つのCPUを使用してコンパイルするように作られていないので2つのCPUを使い切ることはないと思います。
ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.