1 / 20

卒論中間発表

卒論中間発表. 1G01P0467 酒井大輔. テーマ. 正確に解くことの難しい最適化問題についての(並列化)アルゴリズム. やったこと. folon4 に ocamlmpi をインストール( score では失敗?) 巡回セールスマン問題を hopfield 型のニューラルネットで解くプログラムを ml と c で逐次版と並列版を実装。その実行速度のデータをとった. やってないこと. アルゴリズムの精度評価 他のアルゴリズムとの比較(ボルツマンマシン、遺伝アルゴリズム) 巡回セールスマン問題以外の問題への適用. ocamlmpi の記述性.

Download Presentation

卒論中間発表

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 卒論中間発表 1G01P0467 酒井大輔

  2. テーマ • 正確に解くことの難しい最適化問題についての(並列化)アルゴリズム

  3. やったこと • folon4にocamlmpiをインストール(scoreでは失敗?) • 巡回セールスマン問題をhopfield型のニューラルネットで解くプログラムをmlとcで逐次版と並列版を実装。その実行速度のデータをとった

  4. やってないこと • アルゴリズムの精度評価 • 他のアルゴリズムとの比較(ボルツマンマシン、遺伝アルゴリズム) • 巡回セールスマン問題以外の問題への適用

  5. ocamlmpiの記述性 (* mpi_test1.ml *) open Mpi let size = comm_size comm_world let myrank = comm_rank comm_world let _ = if myrank=0 then send "Hello,World" 1 0 comm_world; if myrank=1 then print_endline (receive 0 0 comm_world)

  6. /* mpi_test1.c */ #include <stdio.h> #include <string.h> #include <mpi.h> int main(int argc, char **argv){ int myid, numprocs; MPI_Status status; char msg[20]; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); if(myid == 0){ strcpy(msg, "Hello,World"); MPI_Send(msg, 20, MPI_CHAR, 1, 0, MPI_COMM_WORLD); } else if (myid == 1){ MPI_Recv(msg, 20, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &status); printf("%s\n", msg); fflush(stdout); } MPI_Finalize(); return 0; }

  7. hopfieldのアルゴリズムの説明 • 1:状態を更新 • 2:エネルギーを計算 • 3:更新前のエネルギーと比較して、その差が一定以下ならば終了

  8. hopfieldのデモ • 参考文献1のサンプルプログラムのocaml版 • folon4上の/home/sakai/study/sub1/folon4にあるhopfield_demo.ml • ./hopfield_demo 10 testdata1 で実行

  9. hopfieldのアルゴリズムにおけるデータ依存性 未更新 更新済み

  10. hopfieldのアルゴリズムにおけるデータ依存性 未更新 更新済み

  11. hopfieldのアルゴリズムの単純な並列化 • 単純に並列化するとエネルギーがループを起こし、収束しない • パラメーターを変更するとうまくいく? • しかし、プロセッサ数を変えるとパラメータも変更しなくてはいけない

  12. ocamlとcの実行速度比較 • コンパイルはocamloptとmpiccのO2オプションを使った。 • MPIライブラリはscore-mpichはocamlmpiが安定して動作せず、またuedalab以下にあるmpichはバージョンアップで動かなくなっていたので、ホームディレクトリ以下にmpich-1.2.6をインストールし、これを用いた。 • 計測に使ったプログラムはhopfieldのエネルギーを求める部分。

  13. 逐次版 • MPIを使っていないプログラム • 並列版のプログラムもそうだが、グラフには3回測定したものの平均値を用いている • 逐次版でも並列版でも一度のプログラムでエネルギーは30回ずつ求めている

  14. 逐次版

  15. N=一定 • N(要素数)を一定にして並列効果をみたもの。 • Nは100,150,200の3種類を計測した • CPUは1から31の31種類について調べた • グラフを見る限り、データタイプの変換はそれほど大きなオーバーヘッドにはなっていないようだ

  16. N=一定

  17. CPU=一定 • CPUの数を固定にして要素数を変化させたもの • CPUは5,10,15の3種類について調べた • グラフを見る限り、データタイプの変換はそれほど大きなオーバーヘッドにはなっていないようだ

  18. CPU=一定

  19. 課題とかこれからの予定 • アルゴリズムの精度評価、他のアルゴリズムとの比較 • ocamlmpiの実装を調べる • 計測、フィルタリング、グラフ化を効果的にできるように。

  20. 参考文献 • Cでつくるニューラルネットワーク 平野廣美 • MPI並列プログラミング P.パチェコ

More Related