高速, 並列計算

ここでは、「高速, 並列計算」 に関する記事を紹介しています。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Amazon AWS,EC2 のメモ.


2011-03-26 Amazon EC2の使い方(nishio.densankenの日記 様)
http://d.hatena.ne.jp/nishio-dens/20110326/1301135766
丁寧に手順が書いてあって助かりました.


アマゾン(AWS)の無料クラウドと LotusLive API 公開 (プログラマーですが何か?様)
https://www.ibm.com/developerworks/mydeveloperworks/blogs/pgmrk/entry/_e3_82_a2_e3_83_9e_e3_82_be_e3_83_b3_aws__e3_81_ae_e7_84_a1_e6_96_99_e3_82_af_e3_83_a9_e3_82_a6_e3_83_8911?lang=ja

Amazon Web Services の無料ティアを使う(1)(プログラマーですが何か?様)
https://www.ibm.com/developerworks/mydeveloperworks/blogs/pgmrk/entry/amazon_web_services__e3_81_ae_e7_84_a1_e6_96_99_e3_83_86_e3_82_a3_e3_82_a2_e3_82_92_e4_bd_bf_e3_81_862?lang=ja
AWSの無料サーバーの利用方法の手順(AWSアカウント取得以降の作業)


ハイパフォーマンス コンピューティング(HPC)(Amazon web service)
http://aws.amazon.com/jp/hpc-applications/

2010/07/22 Amazon EC2性能検証!気になるパフォーマンスをインスタンスタイプやリージョン毎に計測・比較してみた(RX-7乗りの適当な日々 様)
http://d.hatena.ne.jp/rx7/20100722/p1

9種類のインスタンス(サーバ)のディスク・CPUパワーの性能や、4ヶ所のリージョンで性能に差異があるかを確認しました。

とてもおもしろい.

2010/07/15 Amazon EC2の「Cluster Compute Instances」を使ってみた(High Performance Computing向け)(RX-7乗りの適当な日々 様)
http://d.hatena.ne.jp/rx7/20100715/p1
「Cluster Compute Instances」を利用するにはどのOSを選べばいいのか分からなかったところなので助かりました.

Amazon EC2/S3を使ってみた - まとめ (Amazon Web Services関連エントリ目次)(RX-7乗りの適当な日々 様)
http://d.hatena.ne.jp/rx7/20080528/p1
うーん,この方すごいな.漏れはもっと精進しる.



無料ティアの仮想マシンだと,FFTWのコンパイル(と make test)に何時間もかかったが,さすがに Cluster Compute Instances は高速.





自分用メモ.開発環境が入っているとは限らないので,ある程度インストールする必要がある.

無料ティアのマシンにはgccもg++も入っていなかった.Cluster Compute Instancesにはgcc は入っていた
が,g++は入っていない.

yum install svn
yum install subversion.x86_64

yum install gcc
yum install make
yum install emacs
yum install gcc.x86_64 gcc-c++.x86_64




さらに,次のようなスクリプトを走らせて,fftwやgmpをインストール.

#!/bin/bash
homedirname=$(pwd)
mkdir temp
pushd temp

wget --no-clobber http://fftw.org/fftw-3.3.tar.gz
wget --no-clobber ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.2.tar.gz

find ./ -name '*.tar.*' | xargs -n 1 tar xvf

cd fftw-3.3/; ./configure --prefix=${homedirname}/sw/fftw-3.3 --enable-sse2 --enable-openmp --enable-threads; make clean; make -j 16; make -j 16 check; make install; cd ../

cd gmp-5.0.2/;./configure --prefix=${homedirname}/sw/gmp-5.0.2/ --enable-cxx ;make clean; make -j 16; make -j 16 check; make install; cd ../

popd
スポンサーサイト
CUDAの開発環境をCentOS 5.4(64bit)にインストール

前の記事
Express5800 110Ge で CUDAの練習
続き。

環境は前のとおり:
(どうでもいいがAtom、IONと来ているのな。この調子で進化?すればそのうちRNAとか出てくるかも分からんね)

CentOS 5.4にCUDAを入れたいので下調べしたら、そのものズバリなところが見つかった。

SofTekさんのところ:
CUDA™ 3.0開発環境をインストールする (Linux版) 対象 GPU CUDA 3.0 インストール CentOS 5.4

そのまま道なりでできました。感謝。
こういう風にかけるようになりたいなぁ。

ちなみに64bit環境なので、インストールしたのは次のファイル:
  • devdriver_3.1_linux_64_256.40.run (ドライバ)
  • cudatoolkit_3.0_linux_64_rhel5.3.run
  • gpucomputingsdk_3.0_linux.run
最初はドライバとして
  • NVIDIA-Linux-x86_64-256.53.run
を入れたが、これではCUDAが動かなかった(エラーメッセージ失念)。
新しければよい、というモンでもないようだ。




SDK付属のサンプルプログラムを確認。
SDKのディレクトリ
~/NVIDIA_GPU_Computing_SDK/C
に入って make するとバイナリは
~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
にできる。

とりあえず bandwidthTest してみる:

$ ./bandwidthTest
[bandwidthTest]
./bandwidthTest Starting...

Running on...

 Device 0: ION
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     164.0

 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     198.5

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     9054.9


[bandwidthTest] - Test results:
PASSED


Press <Enter> to Quit...
-----------------------------------------------------------

x1だし、こんなもんかな。ちょっと速いHDDくらいの転送速度だと思えばいいのか。
Device to Host のほうが速いのはちょっと意外。




書籍「はじめてのCUDAプログラミング」のサンプルをコンパイル。

人に勧められて
はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす! (I・O BOOKS)はじめてのCUDAプログラミング
(2009/11)
青木 尊之額田 彰

詳細

を購入。密度が濃い本だと思います。

サポートページ
www.kohgakusha.co.jp/support/cuda/index.html
に書籍内で紹介されたサンプルプログラムのソースが置いてある。ソースをいただいてきて、展開。

$ for NUM in 1 2 3 4 5 6 7; do wget http://www.kohgakusha.co.jp/support/cuda/linux/sample${NUM}_linux.tgz; done
$ for NUM in 1 2 3 4 5 6 7; do tar xvf sample${NUM}_linux.tgz; done

各ディレクトリに入ってmakeすると変なエラーが。結論的には64bit環境が原因。

sample1_linux $ make
nvcc -c -O3 -I/home/tekito/NVIDIA_GPU_Computing_SDK/C/common/inc -maxrregcount 32 sample_1.cu
gcc -o a.out sample_1.o -O3 -L/usr/local/cuda/lib64 -L/home/tekito/NVIDIA_GPU_Computing_SDK/C/lib -lcudart -lcutil
/usr/bin/ld: cannot find -lcutil
collect2: ld はステータス 1 で終了しました
make: *** [a.out] エラー 1

なんで -lcutil が見つからないんだ、と思ってディレクトリを確認してみたら原因判明:

$ ll ~/NVIDIA_GPU_Computing_SDK/C/lib/
合計 316
-rw-rw-r-- 1 tekito tekito 201540  9月  8 02:38 libcutil_x86_64.a
-rw-rw-r-- 1 tekito tekito  46330  9月  8 02:38 libparamgl_x86_64.a
-rw-rw-r-- 1 tekito tekito  61144  9月  8 02:38 librendercheckgl_x86_64.a

64bit環境だと -lcutil_x86_64 なのか。じゃあMakefileを直せばいい。てきとうスクリプトを書いた:

$ cat subst.sh
#!/bin/bash
TMP=$(find ./ -name 'Makefile')
for FILE in ${TMP};do
        cp ${FILE} ${FILE}.bak
        sed -e "s/-lcutil/-lcutil_x86_64/g" ${FILE}.bak > ${FILE}_x86_64
done

(これ1行で書けないかな。最初、xargsでやろうとしたが面倒になってスクリプトにすることにした)
このスクリプトはMakefileの中の「-lcutil」を「-cutil_x86_64」に置換した結果を、Makefile_x86_64 に出力する。ついでにバックアップファイルも作る。

で、各ディレクトリでmakeしたら通った:

sample1_linux $ make -f Makefile_x86_64
nvcc -c -O3 -I/home/tekito/NVIDIA_GPU_Computing_SDK/C/common/inc -maxrregcount 32 sample_1.cu
gcc -o a.out sample_1.o -O3 -L/usr/local/cuda/lib64 -L/home/tekitou/NVIDIA_GPU_Computing_SDK/C/lib -lcudart -lcutil_x86_64





GPGPUやCUDAについて下調べしてみた。

まずはWikipediaで概要を
GPU http://ja.wikipedia.org/wiki/Graphics_Processing_Unit
CUDA http://ja.wikipedia.org/wiki/CUDA
GPGPU http://ja.wikipedia.org/wiki/GPGPU
OpenCL http://ja.wikipedia.org/wiki/OpenCL
HLSL http://ja.wikipedia.org/wiki/HLSL
GLSL http://ja.wikipedia.org/wiki/GLSL
Cg (プログラミング言語) http://ja.wikipedia.org/wiki/Cg_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)


nVidia社
CUDA対応GPU一覧
CUDA対応アプリケーション
ドキュメント
Q&Aナレッジ > NVIDIAフォーラム > CUDAフォーラム
ニュース&イベント


トレーニング、チュートリアルサイト
Learn more about CUDA - nVidia社
NVIDIA CUDA Information Site - fixstars社
SUPERCOMPUTING 2007 Tutorial
CUDAを使う
OpenGL de プログラミング CUDA
KNOPPIX for CUDA Tutorials
CUDA のインストール 具体的手順。コメント欄で性能の話題あり。


総本山?
gpgpu.org


2ch
GPGPU
GPGPU#2
GPGPU#3
GPUで汎用コンピューティングを行うスレ
【AMD】RadeonのGPGPUの整備を願うスレ【NVIDIA】
【GPGPU】くだすれCUDAスレ【NVIDIA】
【GPGPU】NVIDIA CUDA質問スレッド
[GPGPU] GPUレンダラはまだですか?[CUDA]
GPGPUを語るスレ
【1Peta-FLOPS】GPGPUについて語ろう【実用間近】


CUDAと整数演算
CUDA内の整数演算について CUDA Zone
整数演算をCUDAでやるサンプルを読む [プログラミング]
CUDAソースを読んでみる(dct8x8) [プログラミング]
2006年11月11日 続 GeForce8800GTX と SM4.0 の整数演算
「高性能プログラミング」という観点で調べてみた。

まずは、
高性能プログラミング(名古屋大学 須田礼仁先生) (2011/11/08追記左はリンク切れの模様.)→高性能プログラミング
高性能プログラミング

May9.gzに含まれているpptの出来に感動。キャッシュ、キャッシュライン、TLB、パイプライン等をここまで考慮してプログラムを書ける人ってほとんどいないと思う。プログラマ必読。この資料を使った昨日の須田先生の授業は今まで受けた授業で一番面白かった。




[高性能プログラミング]の続きを読む
SPARC64TM VIIIfx Extensions 本家のPDF
富士通が世界最速 (128 GFLOPS) の CPU を開発 ! (スラッシュドットjapan)


↓面白かった!!
http://journal.mycom.co.jp/articles/2009/03/12/sparc_viii_fx/001.html






[富士通、次期スパコン向けHPC-ACEアーキテクチャ]の続きを読む
http://headlines.yahoo.co.jp/hl?a=20090514-00000141-yom-bus_all
NECが世界最先端・最高性能の「次世代スーパーコンピューター」の開発から撤退 (GIGAZINE)

NEC、国策の次世代スパコン開発から撤退、「事業は継続」と強調 (ITpro)
[続報]国策スパコン、複合システム断念へ (ITpro)
[続々報]「残念だが税金の無駄遣いにはしない」、国策スパコン開発リーダーに聞く (ITpro)

次世代スーパーコンピュータ・システムの構成を見直す
-世界最高性能のスパコン開発計画の着実な推進に向けて-

文部科学省「次世代スーパーコンピュータ・プロジェクト」への参画形態の見直しについて
~NECはスーパーコンピュータ事業を継続~


NEC、「次世代スーパーコンピュータ・プロジェクト」への参画形態を見直し
【IT政策】次世代スパコン開発、理研が抜本見直し発表–NECと日立が計画離脱 [05/14]
【電機】NEC:次世代スパコン撤退、巨額の開発費負担を削減…将来的には事業の大幅縮小や完全撤退も [09/05/14]


これは残念だ…
基礎科学にかかわる部分は削らないでほしい
時代が悪いのか

京速のベクトル部はどうなるの??
全部スカラーでやるということか…
昨日勇ましいニュースがあったところなのに残念
富士通が世界最速CPU開発 日本メーカー、10年ぶり記録更新






[NEC、次世代スパコン撤退 ...]の続きを読む
Nussbaumer法でググっていたら、Appleにこんなサイトを見つけた。

Advanced Computation Group
Richard Crandall氏がいるらしい。

Vector implementation of multiprecision arithmetic
sgiさんのところで、最適化や並列化に関する資料を公開しているところを発見。
Origin Developer Plus

Programming

たくさんのリンクがあるので、少しずつ見てみよう。
並列計算やパフォーマンスチューニング関係の資料を拾い集めた。


「スカラー・チューニング講習会」と「並列プログラミング(MPI)講習会」で配布したテキスト には非常に詳細なPDFファイルがおいてある。この講習会は独立行政法人 理化学研究所 情報基盤センター主催であり、年に3回開催されている模様。


HPF推進協議会(HPFPC) 講習会の情報あり。関連資料のところにプログラミングkガイドなどが紹介されている。
ここではHPFコンパイラ「fhpf」が配布されている。動作環境はLinuxとSolaris。サンプルプログラムあり。
fhpfコンパイラの無償配布について では、機能の紹介、ライセンス、性能の評価がある。


超簡単並列プログラミング

,ここでは計算環境に依存しない超簡単並列プログラミング手法を紹介し,つづいて,効率低下の要因を解明するために役立つと思われる簡単な方法を紹介する

非効率な並列プログラムでは、計算自体の時間に比べて通信やアイドリング時間が占める割合が多いことを指摘し、その原因究明の手段のひとつとしてタイムチャートの作成が有効であると説いている。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。