• ベストアンサー

数値計算向けのPC

大学の研究で数値計算をしなければなりません。 計算に使用するプログラムは市販されているもので、計算に必要な知識やノウハウなどはプログラムを動かしたり計算をしながら覚えていくしかないと考えています。 今悩んでいるのは計算に使用するパソコンです。 いままではノートパソコンで計算をしていましたが、ステップ数を本来必要な計算の1/10に設定した場合でも12時間以上かかってしまうことがわかりました。 そのパソコンはノートパソコンで、仕様はCPUが1.7GHz、メモリが2GBです。 大学等にあるデスクトップパソコンでも計算してみましたが、私の所有するノートパソコンよりもクロック周波数・メモリ共に劣るせいなのか、計算時間がかなりかかってしまいました。 一回の計算に膨大な時間がかかってしまうので、これを解消したいのですが、現在使用できるPCではこれが困難です。 思い切って、数値計算用にPCを新しく購入しようかとも考えてもいるのですが、コンピューター関連の知識が乏しいこともあり、どういったものを購入すればいいのかわかりません。 個人的にはCPUが3GHz程あるノートパソコンがあれば、と考えているのですが・・。 大学やお仕事などで数値計算をされたご経験をお持ちの方で数値計算に適したパソコンや、数値計算向けにパソコンをカスタマイズする方法をご存知の方がいらっしゃいましたら、ご教授ください。 その他、パソコンで長時間計算をする際、留意すべきことなどございましたら是非ご教授いただきたく存じます。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

ご存知とは思いますが、繰返しの数値計算で速度に一番影響するのは、アルゴリズムの見直しでしょう。その次にマシンスペックだったり、アルゴリズム以外のプログラムの工夫だったりでしょうか。 私はマシン以外のところを少しばかり。 アルゴリズムの見直しは、純水に数学の問題として改善可能な場合が多いと思います。求め方の根本的な考え方を変えてみたり、式変形などで繰返しの一回の計算量が少なくて済むようにしてみたりです。あと、ニュートン方とかご存知ですよね。少ない繰返し回数で精度良く求める方法が色々考案されてますので、ご存じでなかったらまた質問して下さい。(私には回答できませんが。笑) プログラムの工夫とは、1回の計算の中で、さらに簡単な計算の繰返しを含んでいるような場合(つまりループの入れ子のことです)、その簡単な計算を仮に100回ループさせるのであれば、ループさせないで同じ計算式を100行書いたりすると高速化出来たりします。言語によっては計算式を細かく分けるより、1つの式が長くなっても式の数を少なくしたほうが速くなるとか色々あります。この辺はパズルの要領で試行錯誤するしかないでしょう。 以上ご存知でしたら、また既に検討済みでしたら、すみません。

korochama
質問者

補足

回答ありがとうございます。 ニュートン法は一応知っているという程度です。 なにせ、数値計算に関してもど素人なもので・・。 PCのスペックばかり気にしていましたが、計算方法やソースコードなどを見直す必要がありそうですね。 試行錯誤するしかないということですが、これについては最近痛感しています。 回り道はしたくないですが、なんとかいろいろ工夫してみます。

その他の回答 (4)

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.4

3DCGだとレンダリングに12時間とか珍しく無いんですけどね >パソコンで長時間計算をする際、留意すべきこと 廃熱と騒音 CPUが平常使用時に比べて発熱します。 PCが置いてある部屋で寝る必要がある場合…かなり気になります。

korochama
質問者

お礼

回答ありがとうございます。 PCが通常時に比べて発熱しているというのはなんとなくわかります。 電源を入れっぱなしにすることが少ないもので、なんだか落ち着かないですが、熱と音には気を配りたいと思います。

  • poponponpo
  • ベストアンサー率29% (965/3218)
回答No.3

現在使っているCPUが何なのかわかりませんが、FSB400MHz世代でなければ1.7GHzはありません。(1.73GHzはある) π計算をするベンチマークでは、Pentium4-M1.70GHzからE8400に移行すると15%程度の時間で計算できます。 今のパソコンの性能が1.7GHzで最強だったとしても50%程度でしょうか。 一方、ソフトの方をマルチスレッド化すると、デュアルコアで推定1.8倍計算速度を上げることができます、クアッドコアなら3倍程度です。

参考URL:
http://xx-xxx-xx.hp.infoseek.co.jp/kikaku1/superpi.html
korochama
質問者

お礼

回答ありがとうございます。 私の使用できるPCの中で現在最も高スペックなのは1.7GHzくらいです。 ソフトのマルチスレッド化についてですが、もし私の使用しているソフトでそれが可能であるなら検討しなければならないかもしれませんね。

  • poponponpo
  • ベストアンサー率29% (965/3218)
回答No.2

予算は? できるだけ安くするなら7万円~で3GHzのCore2DuoE8400搭載機が買えます。 お勧めはこちら。 http://www.twotop.co.jp/simple/vip_product2.asp?sku=003060803&img=&specchange=&warranty%5Ftype=&pvarid= 到着後に2GB×2を増設して、4.5GB程度をRAMディスクとして使うとさらに数%時間短縮が可能だと思います。 http://pc11.2ch.net/test/read.cgi/win/1211559803/ 予算がないならこのあたり。 http://www1.jp.dell.com/content/topics/segtopic.aspx/misc/dm/wb2_landing?c=jp&l=jp&s=bsd&~tab=1

korochama
質問者

お礼

回答ありがとうございます。 予算等は特に決まっておりませんが、現時点では自己負担になる可能性が高いような気がします。 ですので、なるべく安く済ませたいです。 また、パソコンの自作はおろかメモリの増設すらやったことがありませんので、うまくカスタマイズできる自信がありません。 ですので、私自身の能力を考えると購入するのが無難かと・・。 となると、ご紹介いただいたDELLが一番いいかもしれませんね。

  • fifaile
  • ベストアンサー率25% (622/2403)
回答No.1

シングルスレッドのプログラムを使っているのでしょうか? であればマルチスレッドに書き換えて2コア以上のシステムを使えば高速化できます。 あるいはMPU用のライブラリがあれば、PCクラスタを使って計算するとか。 外部ソフトによっては、データセンターなど大規模計算システムを前提としているものもあります。 大学の計算機システムや外部のシステムが使えないかどうか確認してください。

korochama
質問者

お礼

回答ありがとうございます。 シングルスレッドかマルチスレッドか、ということについてですが、申し訳ございません。私だけでは判断できません。 数値計算に関してずぶの素人なもので・・。 大学の計算機システムを使用することも考えているのですが、利用料金や場所を選ばず計算することなどを考えて、ノートPCでいいものがないかと思い、質問させていただきました。 ですが、並列計算や大学の計算機システムについても検討してみます。

関連するQ&A

  • 並列計算について

    あまりパソコンに詳しい方ではありません。 今、linuxが入ったパソコン(CPU:Intel(R)Core(TM)i7 CPU970@3.20GHz,コア数12, メモリ:5.8GiB)で数値計算をしています。コンパイラはgfortranです。OpenMPを使って、並列計算をしています。 例えば、スレッドを5使って一つのプログラムの計算したとします。次に別のプログラムをスレッドを5使って同時に計算したとします。 CPUモニタで確認すると、合計12スレッド中、10スレッドが使用率100%になります。 しかし、計算時間はそれぞれ倍ぐらいになってしまいます。結局、プログラムを1 つずつ計算するのと同じ時間がかかります。また、使用するスレッドは5ぐらいが最適であることがわかっています。(それ以上多くしても計算時間が多くなるだけ)。つまり、12スレッド中7スレッドは常に仕事をしていません。 原因、及び解決方法はあるでしょうか?

  • 数値計算の速度を上げたい

    こんにちは。 今,パソコンを使って数値計算をさせているのですが,どうも遅くて困っています。プログラムを書き換えたりマシンに物理的な装置をつけたりする以外に,システムをいじることで計算速度を上げることはできないでしょうか?ちなみに,パソコンのスペックは,「Pentium 4 CPU 3.80GHz, 3.25GB RAM」だそうです。パソコンのことはまったく詳しくないので,よろしくお願いします。

  • 数値計算ソフト「MATLAB」について

    私は今大学生で、つい先日数値計算ソフト「MATLAB(マトラボ)」をのライセンスを購入し、さまざまなプログラムを実行しています。 しかし、当然ですが大規模なプログラムになればなるほど計算の実行時間が長くなってしまいます。 プログラムのループ文の見直しなどを行って計算の高速化を図ってみたりしましたが差は微々たるものでした。 なので、PCのスペックのほうを上げていきたいと思いました。 そこでみなさんにお聞きしたいのですが、 (1)MATLABの計算はサーバーPCとクライアントPC、どちらのスペックに依存しているのでしょうか。 (2)計算速度を速めるとしたら、どの部分の性能を一番高めるべきでしょうか。(例:CPU、メモリなど) どなたかお分かりになる方がいましたら、(1)(2)どちらか片方だけでも良いですので回答宜しくお願い致します。

  • 数値計算の速度について

    ノートPCとデスクトップで 以下に相当する数値計算を比較しました。 double sum=0.; for(int i=0;i<1000*1000*1000;i++){ sum+=1./(double)(i+1)/(double)(i+1); } スペック等は以下のとおりです。 ノートPC 機種:Dell inspiron 1501 CPU:Athlon 64 x2 周波数については必要なら明日書きます。 OS:windowsXP 実行環境:Eclipse上でJava デスクトップ 機種:IBM IntelliStation M Pro CPU:Core 2 Duo 6700 2.66GHz OS:Ubuntu8.10 実行環境:C++(コンパイラはg++) すると、ノートPCでは21秒(たぶん実時間?)、 デスクトップでは28秒(CPUタイム)となり、 ノートPCのほうが速いという結果になりました。 なぜこの様な結果になるのでしょうか? デスクトップのほうがいいCPUを用い、 同条件ならC++はJavaよりも速いはずだと思います。 自宅PC用にIBM IntelliStation M Proを購入したのですが、 思いのほか遅くて多少がっかりしました。 ひょっとすると、計算速度を上げるコツがあるのでしょうか?

  • 数値計算用PC

    いつもお世話になります。 数値計算のために、タワー型PCを8-10台程度購入しようと思います。 ディスプレイ、キーボード、マウスは1個で足ります。 メモリとCPUの速度を重視しますが、ハードディスクは小さくてもかまいません。 以前は同様の目的でeMachinesを使っていました。多少騒々しいものの問題ありませんでした。 おすすめの機種があれば教えてください。1台 4万円弱程度で考えています。 よろしくお願いいたします。

  • 数値計算ができるようになりたいのですが…

    現在、大学院修士課程1年です。 将来はアカデミックな研究者を目指しています。 今行っている研究で、非線形方程式(多変数)の解を数値計算を用いて得たいと考えています。 今まで数値計算はやったことがないのでこれから勉強をはじめるところなのですが、少し悩んでいます。 今は数値計算に便利なMATLABのような市販ソフトがあることが分かっており、勉強すれば短時間で実際に研究につかうことができそうです。 しかし、やはり研究者を目指すなら、そのようなソフトに頼らず、しっかりと数値計算の理論を理解したうえで、FORTRANなどで自らプログラムを書くべきなのでしょうか。 良いアドバイスがありましたらよろしくお願いします。

  • PCの選び方

    新しいパソコンを買おうかと思ってます 今使っているのはノートなのですが、特に外に持ち歩いたり しないので、中古が安価なデスクトップを買おうと思っています 今のノートはCPUがインテル 1.40GHz メモリが256MB なのですが、かなり速度が遅いです オフィスソフトなんか立ち上げようとすると起動だけで 3,4分はかかります もう遅いのはうんざりなので速いパソコンが欲しいのですが 早いかどうかを判断するにはどこを見ればいいのかが分かりません  とりあえずCPUとメモリが重要な部分であることはなんとなく分かるのですがそれだけで判断してよいのでしょうか? ハードの知識はゼロに近いので困っています 長くなりましたがよろしくお願いします

  • 数値計算の結果がハードウェア構成によって異なることはあるか?

    同じ工業用のシミュレーションソフトである数値計算をさせた場合に同じOSでハードウェア構成の異なる(メモリ・CPU等)PCで若干異なるの計算結果が出でてくる事例がありうるかどうかと考えられる原因をお教えくださると助かります。

  • 数値計算の高速な実行

    Fortranで記載している数値計算プログラムを高速に実行したいのですが、 1) コンパイルは64bitで行なった方が早いでしょうか? 2) 現在お薦めなCPUはCore 2 Duoでしょうか? コンパイラはintel fortran、OSはCentOSを使用予定です。 その他、数値計算の高速化に関してお薦めがありましたらお願いいたします。

  • 数値計算のための勉強の仕方

    私は現在大学院修士課程1年です。 とある事情で、学部の時とは異なった分野で研究をすることになり、 研究テーマを模索していたのですが、現在は数値計算を用いて研究をするという形になっています。 現在使用しているソフトはCADMAS-SURFと呼ばれるものです。 このソフトに関する文献などを読みながら、少しソフトを動かしてみているのですが、正直なところわからない箇所が多く、 手探り状態で進めている状態です。 様々な人に聞いてみたりしたのですが、このソフトを使用したことのある人が周囲にはいません。 また、私自身、学部の時にこうしたソフトを使用したことがないばかりか、物理学にもあまり精通しておりません。 現在、流体力学の本を読んだりしながら勉強はしているのですが、難しい計算式などが出てくると それがどのような状態を示しているのか頭の中でイメージできないことが多く、 用語も知らないものばかりで時間がかかってしまいがちです。 ちなみに、数値計算を使用して研究されている数少ない先輩の話では、その方も手探り状態で進めているとのことです。 また、その方からは本に書かれている基本的な理論などは理解した上で計算しないとダメだというアドバイスをいただきました。 したがいまして、私としましては、やはり地道に勉強しながら進めていくしかないのでは、と考えております。 物理学や数値計算に詳しい方、勉強・研究の進め方、おすすめの参考書についてなど、ご教授いただければ幸いです。 また、大学院にて大学の専攻と異なる分野で研究をしたことがある方、体験談などをお聞かせください。 よろしくお願い致します。