小野田?

高速化したい場合 

まずどこでオーバーヘッドが発生しているかで以下の対策が取れる 上のものほどソフトウェア的であり, 下に行くほどハードの問題となる

CPUバウンドの場合 

プログラム内部の処理を高速化したい場合はマルチスレッド・マルチプロセスに対応させる必要があるマルチスレッドは一つのコアで複数の処理を同時に行うことで マルチプロセスは複数のコアで並列にプログラムを処理させることである 例えば8コアのCPUの場合で2マルチスレッド, 8マルチプロセスだと 2(プロセスあたりのスレッド数)× 8(コア数) = 16となり 16個並列にプログラムが動いてることになる

やり方は各言語によって違うので各々調べるべし 例: JavaであるとThreadクラスを使う, Pythonならthreadingモジュールとmultiproccessingモジュールがある

IOバウンド 

データをwebから収集するレスポンスが遅い場合は非同期処理により待ち時間を有意義に使うことができる 詳しくはこちら

書き方の問題 

Pythonだとfor文の代わりにリスト内包記法を使うなどプログラムの記述によって 処理速度が多少変わる

言語の問題 

julia_benchmark.jpeg

プログラミング言語により速度が変わるので

スペックの問題 

単純にPCのスペックが低い可能性がある. 指導教員に相談しよう


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS