加速しなイカ?
Chapter 1. Motivations
あれは、今から86万4000秒前の出来事だったか・・・
xxxx様 新規利用申請を承認しました。 アカウント名は 10IKA101 です。
(つд⊂)ゴシゴシ→(;゚ Д゚) …!?
10IKA101
神は言っている・・・
Functional Ikamusume Advent Calendarに参加するのです、と・・・
Chapter 2. Introduction of Haskell to TSUBAME 2.0
というわけで今日はLINPACK日本最速のスパコン(c.f. http://www.top500.org/list/2010/11/100)を侵略するでゲソ!
まずは橋頭堡を築くでゲソ。さしもの関数型イカ娘もGHCが入らなければ何も出来ないでゲソ。
10IKA101@t2a006172:~> cat /etc/issue Welcome to SUSE Linux Enterprise Server 11 SP1 (x86_64) - Kernel \r (\l).
SUSEとは渋いじゃなイカ!筆者はOpenSUSEを愛用しているでゲソ。定番Linuxディストロが自作マシンでは全部動かなかった時もOpenSUSEは動いてくれたでゲソ。ただしHaskellのサポートは比較的弱いでゲソ・・・
Haskell Platformが直接インストールできなイカらまずはGHC6.12.3をインナントカスルでゲソ。"Generic amd64 Linux." と書いてあるうちの上のを入れるでゲソ。下のは罠でゲソ。root権限が無いので海の家れもんの下にghcディレクトリを作って侵略の拠点とするでゲソ。
10IKA101@t2a006172:~> mkdir ghc 10IKA101@t2a006172:~> tar jxfv ghc-6.12.3-x86_64-unknown-linux-n.tar.bz2 ・・・イカ略・・・ 10IKA101@t2a006172:~> cd ghc-6.12.3/ 10IKA101@t2a006172:~/ghc-6.12.3> ./configure --prefix=$HOME/ghc ・・・イカ略・・・ **************************************************** Configuration done, ready to 'make install' (see README and INSTALL files for more info.) **************************************************** 10IKA101@t2a006172:~/ghc-6.12.3> make install ・・・イカ略・・・
続いてHaskell Platformをインストールするでゲソ。
10IKA101@t2a006172:~> cd haskell-platform-2010.2.0.0/ 10IKA101@t2a006172:~/haskell-platform-2010.2.0.0> ./configure --prefix=$HOME/ghc 10IKA101@t2a006172:~/haskell-platform-2010.2.0.0> make 10IKA101@t2a006172:~/haskell-platform-2010.2.0.0> make install
これも三行でインストールできたでゲソ。良い時代になったじゃなイカ!あとはPATHを通せば出来上がりでゲソ。
export PATH=$HOME/ghc/bin:$PATH
cprbもParaisoもちゃんと動いたでゲソ。しかしこれではただのインストール日記でゲソね。もっと能あるイカらしい所をみせようじゃなイカ!
Chapter 3. Accelerating Haskell Array Codes on TSUBAME
わが眷属はすでにHPCの侵略を開始しているでゲソ。HaskellでGPGPUを操ろうというプロジェクトは、Accelerate, Nikola, Obsidian, Paraisoなどいっぱいあるじゃなイカ!
Nikolaは有望なのでゲソが、公式サイトにThis code needs a lot of clean-up, ... Due to package dependencies, this release is compatible with GHC 6.10.4 but not GHC 6.12. と書いてあるでゲソ。これは明確な死亡フラグじゃなイカ?Obsidianは公開されているページを見付けられなかったでゲソ。Paraisoはプロトタイプが普通に動いたでゲソ!でもParaiso本体はまだ影も形も無いでゲソ・・・
というわけでaccelerateの方を試すでゲソ。実はTSUBAME内部からはインターネットへのアクセスが遮断されているのでcabalが動かないでゲソ。筆者は徹夜で(無駄な)苦労していたのでゲソが、読者は多分興味がなイカら省略させていただくでゲソ
・・・中略☆中略☆中略☆中略☆中略☆中略・・・
結局イカの点が有用だったでゲソ。
h102:~> ssh -R 8180:proxy.kuins.net:8080 -Y 10IKA101@login-t2gpu.g.gsic.titech.ac.jp 10IKA101@t2a006171:~> http_proxy='localhost:8180' wget www.google.com 10IKA101@t2a006171:~> http_proxy='localhost:8180' cabal update
- cabalがdependencies conflictで失敗したり、cannot satisfy -packageになった時は、ghc-pkg unregister --user で怪しいパッケージを取り除いてやる。しかるのちcabal installし直せばまた入るから大丈夫。
- accelerateはHackageの0.8.1.0よりdarcsレポジトリの0.8.2.0のほうが新しい http://code.haskell.org/accelerate/ 。サンプルが増えてたりするよ。
- accelerateは --flags='cuda'を指定しないとCUDA対応版がインストールされない。accelerate.cabalがあるフォルダでイカの呪文をとなえるでゲソ。
10IKA101@t2a006175:~/accelerate-0.8.2.0> cabal install --flags='cuda'
普段バッドノウハウ駆動のおいらにはいい薬になったでゲソ・・・。
ともかく0.8.2.0を入れて、Accelerateの論文にもNikolaの論文にも載ってるblack-scholesサンプルをベンチマークしてるとこでゲソ。機会があればまた結果を報告させていただくでゲソ。これでTSUBAME 2.0も関数型イカ娘のお友達でゲソ!
大☆勝☆利!
ヘ(^o^)ヘ いいぜ
|∧
/ /
(^o^)/ 関数型言語じゃ
/( ) HPCは出来ねえってなら
(^o^) 三 / / >
\ (\\ 三
(/o^) < \ 三
( /
/ く まずはそのふざけた
ゲソをぶち殺す