表題の通り、マルチコアCPUを仮想的にシングルコアに統合して扱える様にするソフトウェアを探しています。
有料ソフトでもご存知であれば情報を教えてください。
求める要件
1.統合した単一コアは、CPU本来の単一コア性能の1.5倍以上であること
→例えば2.6GHz*4のCPUから2コアを統合した場合は、4GHz以上の性能を持つ単一コアになる。
2.統合した単一コアに向ける処理の順序が狂わないこと。
→例えばABCDという命令を順番に発行したとして、その結果がACBDの様にならないこと。
理屈的に難しい事は知っておりますが、もし存在していれば教えてください。
No.1
- 回答日時:
理屈的に難しいのではなく
理屈的に不可能なんではないかと思います。
直前の演算の出力を次の演算の入力とする場合は同時には演算できないので、
そういった命令が延々と続くケースでは、結局のところ1コア以上の速さでは
動けないんではないかと思います。
いつでも必ず1.5倍以上ということではなく、
特定のデモプログラムで1.5倍以上、ということであれば、要件2.しだいでは
不可能ではない、のかもしれませんが。
No.2
- 回答日時:
少なくとも現時点では不可能だと思います。
それが実現するって事は、「アプリがマルチスレッドプログラミングしてなくてもマルチコア対応」って事ですけど、現時点のOSでその機能を持ち合わせているものはありません。そこまでディスパッチャはかしこくないです。
回答ありがとうございます。
>> それが実現するって事は、「アプリがマルチスレッドプログラミングしてなくてもマルチコア対応」って事ですけど
そうなりますね。
例えばになりますが、returnがなく互いにメモリ内容に干渉し合わない関数の命令であれば、もしかして分割できたりしないかなーと軽く考えておりますが、それ以外に関してはまったく想定ができないです。
No.3
- 回答日時:
技術的に不可能だと思います。
そもそも、そうゆうことができるのであればマルチコアにする必要はなかった。なぜマルチコアが主流になったかといえば、CPUの発熱や消費電力などが原因で動作周波数が頭打ちになったり、4GHz以上にしたらかえってリアクタンスの遅延が無視できなくなって非効率になったり、回路の限界がきたからなどなど。だからこそ、解決策としてマルチコアが発展してきたのであって、対称型マルチプロセッシングとかの技術も登場したのです。
そもそも、現行のCPUコアはそれぞれが独立して互いに影響を与えないよう設計されています。キャッシュも、それぞれのコアに独立してキャッシュメモリがあります。だからこそ並列計算ができるのです。
それをあえて無視して、かつ計算結果の順序も狂わないようにとなると2次キャッシュ→1次キャッシュ→CPUコア1と処理した後、また戻ってコア2のキャッシュから入らないといけなくなります。これではシングルコアと同じです。データの移動による遅延や発熱、消費電力等も含めればシングルコアよりひどい状況になるかもしれません。それぞれのコアが単体で動くので動作周波数が倍々になるなんてこともありません。
OS側もそんな機能サポートしてないですから、作るならプログラマーがOSの機能を無視してすべて独自のソフトウェアを作る必要がありますが、メリットよりデメリットの方が圧倒的に多いことへ労力は割きたくないでしょう。
PS3ではヘテロジニアスマルチコアのCellプロセッサが搭載されています。ホモジニアスマルチコアの欠点の1つであるシングルコア性能の低下問題は今後改善されていくかもしれませんが、それまではマルチコア非対応のソフトウェアをフル活用したいのならソングルコアのPCを購入した方がいいでしょう。ただ、そうなると複数のスレッドを動かすとき処理が重くなっていきますが。
参考までに。
回答ありがとうございます。
はい、オリジナルの命令群を単純に割り当てるとそう(非効率に)なると思います。
干渉しない命令を分割し、処理の再スケジューリングを行って、
結果、実行速度が高まる夢のようなソフトがもしあればなぁと思った次第です。
既に過去の遺産とはいえ、
マルチコア非対応のソフトウェアはまだまだ存在(新規開発、保守も含めて)しており、
それに対応するソフトウェアがもしかしたら出てきているかも、という思いがありました。
シングルコアCPUは大分型落ちしてしまっているので、現在でしたら4.2GHz*4など、
単一コアが高クロックのマルチコアCPUを購入して対応するのが現実的かもしれませんね。
No.4ベストアンサー
- 回答日時:
バイナリしか無いのでしたら皆さんが書かれているように、多分存在しないと思います。
実行前にバイナリを並列化できるように自動的に書き直してということでしたら、原理的にはできそうに思いますが、実用的かどうかは疑問があります。
CやFortranのソースコードがあれば、多くの市販コンパイラに備わっている自動並列化機能をつかえば、そこそこの速さにはなってくれます。また、OpenMP対応のライブラリに変えれば速くはなってくれます。これらの機能には、私も結構お世話になっています。ループを多用してる数値計算などのプログラムではプログラムを書き換えることなくそこそこの効果があります。
2についてですが、
どのレベルで順番を入れ替えないというこということでしょうか。
仮にマシン語レベルだとしますと、CPUが読み込むのはその通りですが実行は読み込んだ通りにやっているとは限りません。基本的には正しい結果が得られる範囲で、速度が速くなるようにハードウエアで実行順を入れ替えています。
コンパイラでも同じように命令の入れ替えをおこなうことがよく有ります。いずれにしても、内部的に入れ替えているだけで、外から見える入出力などは入れ替えることはありません。
回答ありがとうございます。
情報不足で申し訳ないです。バリナリしかない物を対象にしています。
(ソースがあるものは自分で書き直せば良いので)
2については、誤解しそうな書き方ですみませんでした。
ACBDの例は「先の処理に依存する計算の処理結果が変わらないこと」を表現したかったものです。
私自身も開発者なので、コンパイラの命令最適化辺りまでのことは存じています。
今考えると、この質問は「最適化なし&シングルスレッドのPEを元にして、内部命令を最適化&マルチスレッド化させ、実行速度をあげる方法」の回答でも満たせたのですが、そうなると意味合いが変わってきてしまうので一旦閉じさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Bluestacks内でダウンロードし...
-
スクリーンセーバーの作り方
-
GPIB制御
-
アプリのプログラムを見るには...
-
インテル マネジメント エンジ...
-
65536は2の何乗なのでしょうか?
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
VBAで仕様書は書きますか?
-
正しい五十音順について
-
C++ で、「)」が必要 というエ...
-
変化させるセルが変化しない
-
アルゴリズムとプロトコールの違い
-
0除算して、落ちるプログラムと...
-
エクセル以外で麻雀の成績を管...
-
[ EXCEL VBA ] 図形を読み込む...
-
変数の値が勝手に変化する原因
-
WORD印刷できるがEXCE...
-
JCLの基本について教えてください
-
VBAにてメール作成した際、一部...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Bluestacks内でダウンロードし...
-
バッチファイルでUSB挿入時に実行
-
アプリのプログラムを見るには...
-
GPIB制御
-
インテル マネジメント エンジ...
-
iTunesがノートンにブロックさ...
-
brotherのマシニングセンタとP...
-
例外アプリケーションエラーを...
-
自分の声が遅れて聞こえてくる...
-
マルチTIFを一枚のTIFに...
-
BIOSとドライバの違い。
-
Socket通信だけでSQL Serverに...
-
InstallShield ってプログラム...
-
マルチコアCPUをシングル化
-
MpcStarのアンインストール
-
みつも郎でエラーが出るのですが…
-
「フラグをたてる」とは?
-
BIOS.binをバイナリエディタで...
-
PVを稼ぐための自動リロードの...
-
cgiをひらくアプリケーション
おすすめ情報