ハマっている「お菓子」を教えて!

あるソフトを使用して、数値計算をさせています。
早く結果を得たいため、Windows上の余計なソフトは開かずに実行していますが、それでもまだ満足できません。メモリを増設という解もありますが、今はそれなしでアドバイスを頂きたいです。

例えば、内部的に動いているあるプロセスを切ると早い、などお勧めの方法を教えて頂きたいです。

A 回答 (7件)

(不要なスタートアップの削除)


全てのプログラム->スタートアップ
をみます。
もし、余計なプログラムが、その中に入っていたら、それを削除して再起動

(不要な常駐プログラムを停止させる)
コマンドプロンプトか、スタートアップの「検索」ので
msconfig
と打鍵。
システム構成の画面がでてくるので、この中の「サービス」を選択
ここに、常駐プログラムの一覧が出てくるから、不要な常駐ソフトが動かないようにします。
そして再起動

それぐらいしか思いつきません。うまくいかなかったらごめんなさい。
    • good
    • 0

先ずタスクマネージャでそのソフトのメモリ使用量、CPU使用率等を確認下さい。



メモリ使用量が主メモリサイズよりもかなり少なく、CPU使用率が80-90%或いはそれ以上だと、ソフトやHWをそのままで取れる対策は殆どありません。
メモリを増設しても変わらないでしょう。

数値計算が主なプログラムでは、INTEL FORTRANでArray演算命令等の有効活用による高速化、GPU:グラフィックプロセッサの並列演算機能/Array演算機能の活用による高速化等の手段があるようですが、今回はそこまでは考えて居られないようですので、更なる高速化は余り望めないのではと思われます。
    • good
    • 0

マルチCPUに対応できるような数値計算プログラムを作成をするしかありません。



たとえば、CeleronをCore i7に変えたところで、大した効果は望めません。
そうではなく、CPUを高クロックのものに交換すると効果があります。
    • good
    • 0

そのソフトでその計算をするなら、ハードウエア増強の他に手段はありません。


運動しない・食事制限しないで体重へらしたいと言っているような物。


その計算が出来る別のより速いソフトがもしあるのならそれを使えば可能ですが。
例えばExcelVBAで数値計算しているなら全部Cで書くとか。

数値計算でなくて、ディスク入出力で遅いのなら、状況によっては手がある場合もあります(一般的には無理)。
    • good
    • 0

お望みの回答ではありませんが、理論は知っておくべきだと思いますので、回答します。



基本的に、メモリ不足や同じスレッド優先度での競合、及びスワップ(仮想メモリ)への待避がなければ、質問に書かれている内容はどれも、意味がありません。メモリを増やしたところでスワップが発生していないなら、そもそもメモリを増設して、演算パフォーマンスが上がるわけではありません。

他のソフトを落としたからといって、基本優先度がそのソフトの方が上か、Realtimeに設定してれば、競合ソフトが同一の基本優先度でない限りは、その処理が完了するまで、他の処理は全て後回しとなります。

まあ、強いて言えば基本優先度が上げられるプログラムなら、タスクマネージャで該当のプロセスを右クリックし、基本優先度をリアルタイムに変更すれば、その処理が優先されますので、他の処理は全てさしおいても、その処理が完了するまで、リソースノードのほぼ全てが供給されます。(その間、環境によってはシステムが完全に固まっているかのように見えることがあり、WindowsのOSシェルプロセスより高い優先度で動きますので、ご注意下さい)

ただし、そのソフトウェアの基本的な設計が、プロセッサのタスク処理における最適化手法に最適化されていない場合は、それでもプロセッサ性能を全てそちらに向けることは難しいかもしれません。

ということになります。

ソフトウェアを設計している人であれば、簡単に理解できますが、そういう担当者でない人のために全般的に一応説明しておきます。


メモリを増設すると速度が上がるというのは、正しくはありません。メモリは、主記憶装置と呼ばれる装置で、一般には緩衝装置の役割と、各種命令回路(演算装置)と補助記憶装置(ハードディスクやCD/DVD/BD及びそのた媒体やネットワークなど)との仲介をする役割を持つ記憶装置です。
これの容量が増えると高速になると言うのは、あくまで見かけ上の話です。

厳密に言えば、メモリは毎秒で数ギガバイト~十数ギガ単位でのデータやりとりができます。
CPUは最小構成でも数十ギガのデータを処理できます。ハードディスクなど補助記憶や、ネットワークなどは高速でも数百メガバイト(0.xギガバイト)ほどです。即ち、速度にして10倍場合によっては、100倍も高速なCPUとその他の装置との間に立って、頻繁に使うデータを高速にやりとりするのがメモリの役割であり、速度を高める要素は実はないのですよ。もし、メモリが不足した場合、ハードディスクにあるデータをメモリ上に展開しているデータと置き換えるのです。

そのため、時間が掛かり、遅く感じます。即ち、メモリがもし十分にあるなら、速度を上げるためにメモリを増やせばと思うこと自体が誤りです。メモリは、メモリが保持できないほど大容量のデータを演算するときに、速度が低下するのを抑えるために増設するものなのです。

ソフトウェアの概念はもっと複雑です。
例えば演算の速度を司るCPUは、その種類によって例えば、同時に4つ処理が出来るものもあれば、1つしか処理できないものもあります。また、CPUが対応する命令の形式として本来なら、かけ算、引き算、割り算、足し算といった計算を予め確認し、それに基づいて処理の回路を決めなければならない処理を、例えばある記号が一つあるだけで、すぐに足し算と判断し、その場で処理するといった命令を持つか、持たないかといった違いで、処理速度が変わることもあるのです。(これをサブ命令、または命令セットと呼びます)
基本的に最新で尚かつ大手企業が開発するソフトの多くは、最新のプロセッサ(CPU)に最適化されており、プロセッサの全てのリソースを無駄なく使えるように考えられています。

例えば、1つ目の複数同時処理の場合、1+1の結果Aを基にA+3をしなさいという命令が連続した場合、たとえCPUが4つあったとしても、この処理は1+1の結果が出ない限り、A+3は実行できません。即ちハードが4つの処理が並列して行えたとしても、ソフトが対応してないのです。

同様に、2つ目もハードがいくら最先端でもソフトはそれに従った開発がされていなければ、意味はないのです。

即ち、いち早い結果を求めるなら、計算する頭脳であるCPUそのものを今より高性能な製品に交換するか、パソコンを買い換えるのが妥当です。それ以外を求めるなら、スレッド優先度をリアルタイムに変更するのが妥当です。ただし、ソフトウェアによっては、この優先度を変更するとシステムに対して、重大な影響(特にフリーズしたように見える事が多いが、環境によってはクラッシュ<システムのダウン>が発生します)を与えるケースがありますので、ご注意下さい。
    • good
    • 1

> あるソフトを使用して



その「ソフト」が何かにもよります。
以前、仕事で似たような相談を受けたことがあり、計算に一晩かそれ以上かかるというのです。
フタを開けてみると、昔N88-BASICで書いたプログラムをN88互換BASIC for Windows95を動かしていました。
C++でプログラムを書き直すことで瞬時に計算が終わるようになったため、大変喜ばれたことがあります。

このように劇的に速度を改善するには、小手先の対応だけではあまり効果がないこともあります。
なるべく正確な情報を出すことをお勧めします。
    • good
    • 1

 最高速で計算させたければ、まず、インターネットとの回線を切り離して、ウイルスの侵入を止めた状態でウイルス対策ソフトを停止し、常駐ソフトやスクリーンセーバーも全て停止して、実行すれば、最速で計算出来ます。

俗に言うオフラインパソコンです。

 オフラインパソコンならば、回線からの妨害や余計な常駐ソフトが不要ですから、高速で計算出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報