並列計算を個人のPCで行って計算速度が上昇するか、また容易に並列計算ができるかについて伺いたいです。特に知りたいことは
(1)プロセッサによらず並列計算をすると速くなるものか?どのプロセッサが速くなりやすいとかありますか?
(2)初心者でもとっつきやすい並列計算ができるソフト、ライブラリは何か?(いくつか候補をあげてそれぞれの利点を説明して下さると有り難いです)
(3)計算がどれくらい速くなるか?
以下状況と質問内容を具体的に説明します。
現在私の利用可能なプロセッサがCoreDuoのノートPC1つ、Core2Duoのデスクトップが1つです。(後者は学校にあるものなので、勝手にノートとつないで両方で計算させることができるかは不明ですが。。。)(1)についてはこのプロセッサではどうかを特に教えて頂きたいです。
今現在数値的にやらなくていはいけない処理は、行列の積、逆行列、および固有値を求めることです。行列が複素数であり、疎でもないですし、かなり行列のサイズが大きい(100×100以上にはなる)ので困ってます。
将来的にはモンテカルロ法にもお世話になるので、「行列演算」「モンテカルロ」について並列計算でどれくらい速くなるか(3)で教えて下さると助かります。
何卒よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Linux(CentOS 5)で計算機ネットワーク
http://www.rcs.arch.t.u-tokyo.ac.jp/kusuhara/tip …
http://www.cs.hiroshima-u.ac.jp/~yasuaki/dokuwik …
以上は、悪いけど、直ぐには無理だと思います。
Linux を知らなければ、一年くらいかかるか??
金をかければ、出来るかも知れません。中途半端な金額ではない。
http://www.intel.co.jp/jp/software/products/inde …
Xeon,Itanium ならもっと良いかも知れない。
しかし、この辺は知りません。そんな金はないので
だから、こつこつLinux をやっています。
初心者で簡単な方法があるのなら、私も知りたい。
No.2
- 回答日時:
x毎に固有の処理を行うのであれば、xをパラメータ
(範囲指定でも)として、複数ジョブを走らせる、
並列して同じプログラムを別の値で走らせたら、
CPUのコアが複数あれば、並列で処理してくれるで
しょう。これが最も単純で、最も効果があると
思えます。
ただし、同時に走らせるジョブ数をコア数以上にす
ると逆効果になるかもしれません。コア数マイナス
1個のジョブ数が望ましいですね。
プログラム内で並列処理するのは、コストが掛かる
し、効果が期待できるようになる前に、スカラで
処理が終わってしまうかもしれないという代物で
しょう。
No.1
- 回答日時:
結論を先に書くとPCでは無理と思います。
やはりスーパーコンピュータ。スーパーコン
ピュータ用のコンパイラが必要でしょう。
コンパイラは、スーパーコンピュータのハー
ド特質が分かっているし、また、プログラマ
もスーパーコンピュータ毎のハード的特質を
把握する必要があります。
スーパーコンピュータによっては繰り返し演
算が128回で最も性能が出るものや、256回で
最も性能が出るものなど、色々です。多くの
性能に影響する要素があり、意味の無いピー
ク性能を引出すだけのテストプログラムでさえ
ピーク性能を引出せる人は、そうは居ません。
また、ベクトル演算を行うためには一般的に
コスト(性能的にマイナス)があります。
専用マシンでなければそのコストはとても
回収できません。専用マシンでも、演算アル
ゴリズムが悪ければ、コスト割れしてしまい、
スカラ演算より遅くなるケースもあります。
PCごときでは、素直にスカラ演算に徹するこ
とですね。そして運用で性能を求めるのがいい
でしょう。例えば、途中結果が実は毎回同じ
値であれば、計算結果を保持し、そこから条件
に応じた計算を行うとか・・・アイデア次第で
す。
また、CPUはパイプ処理されているでしょうから、
パイプ処理の性能上のマイナスは条件分岐です。
条件分岐が必要なものはまとめて行い、単純繰り
返しをなるべく多く演算できるようにするのは
同じCPU100%でも、計算量が変わるでしょう。
ここでいうパイプ処理はスーパーコンピュータの
1方式のパイプとは違い、汎用機用のパイプ処理
です。
Tasukeさん、色々教えて頂いてありがとうございます。やはり並列計算ともなると奥が深いんですね。。。
ただ説明不足だったかもしれませんが、私が今やろうとしているプログラムでは簡単に言うと、「M(値xに依存)の逆行列を求めて、行列K(定数行列なので初めに1回定義)との積を計算して、その固有値を求める」これを色々なxについてのループ(1000回以上)。
なので、自分の手で並列化すること自体が非常に簡単なプログラムと思えるのですが、どうでしょうか?
くどいようで本当に申し訳ありません。。。。
Tasukeさんに限らずどなたでも教えてくださると大変助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- 哲学 AIと人間の思考の違い 12 2023/02/04 12:21
- その他(コンピューター・テクノロジー) レポート 現代の情報科学における課題点を以下の中から少なくとも2つ選び、論ぜよ。 1 2023/01/22 10:12
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- その他(自然科学) 論文のまとめに関して(小論文)添削お願いします。 6 2023/07/16 14:24
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- 計算機科学 科学計算においてワークステーションを使うのはなぜ? 7 2023/02/16 19:21
- 数学 確率の計算式と答えを教えて欲しいです。 オンラインゲームでキューブというシステムがあり、キューブを一 2 2022/12/30 01:07
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- 電気・ガス・水道業 複数の積算消費電力計での配線方法 1 2022/04/04 11:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
プログラム上のCPU稼働率低減に...
-
SQLの速度をあげるには・・・
-
Excel VBAにて、2GB超の点群デ...
-
If Not c Is Nothing Then ~延...
-
Excel VBA データ削除の高速化
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
Timerを使用しての強制待機
-
実行時のCPU使用率を増やしたい
-
逆ポーランド記法における単項...
-
絶対パスの取得について
-
ナップザック問題?をエクセル...
-
C言語 再帰処理のメリットとデ...
-
WebBrowserの読み込み待ちの処...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
Windows10でDOSゲーム
-
explorer.exeが異様にメモリを食う
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
Excel VBAにて、2GB超の点群デ...
-
VBでの簡易電卓の作成(減算方...
-
C言語:関数を使うメリットとデ...
-
テキストファイルの空行をスキ...
-
プログラム上のCPU稼働率低減に...
-
Excel(VBA)でSetTimer関数を使...
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
プログラム 擬似コードとはどん...
-
基本情報技術者試験詳しい方へ...
-
ノットイコールを教えて下さい
-
符号付きにすべきか、符号なし...
-
C言語 時刻差分の算出方法
-
実行時のCPU使用率を増やしたい
おすすめ情報