研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

まちつく @ mixi

2010-03-16 19:39:36 | Weblog
これが以外と面白い。シムシティ的なもの。
GPS で座標を取得し対応した地区のスタンプを集めるという、
長いスパンでやりこみできる機能がいい。
3時間に1回位の頻度で街にイベントが起きるので、程よく遊べる。

Print Music 2010

2010-03-12 03:16:07 | Weblog
finale 系の楽譜作成ソフト PrintMusic 2010 が発売され購入した。
綺麗な楽譜を書くためにずっと欲しかったので、ようやく。

少々使用してみると確かにレイアウトは整えられるが、音符の入力にはあまり向かないかもしれない。特に耳コピではいかに容易に編集できるかということが使用感の大半を占めることになる。決められた音を入力していくユーザにはかなり良いだろう。

他のソフトで MIDI を作成し、finale で読み込んでレイアウトを整えるという流れになりそうだ。

HugeTLBfs @ IBM

2010-03-10 19:37:22 | Weblog
Leverage transparent huge pages on Linux on POWER

IBM POWER 向けの HugeTLBfs の記事だが、Linux にもそのまま使える。
libHugeTLBfs による HugeTLBfs の利用方法が詳しく書かれている。

1. POWER{4,5,5+} は HugePage が 16MB
2. SLES 10 と RHEL 5 は使える。
3. readelf での .text は実行バイナリ、.bss は初期化されていない領域、.data は初期化された領域を示している
4. libhugetlbfs の install
5. mount / HugePage の確保
6. libhugetlbfs.so ありで compile


Tuning stream with libhugetlbfs
Stream のお話。
global 変数で確保している array を malloc で確保するように書きなおし、 libhugetlbfs による largepage を利用方法がメインであるが、コンパイルの仕方やどのような演算を行っているかという stream 自体のから始まり、benckmark に使用する array size を変えたり、コンパイル時の最適化オプション指定の方法、OpenMP の適用、thread の bind など充実な内容だ。

GODIVA 2009

2010-03-09 03:14:59 | Weblog
空間データ解析サミット2009 -第5回GODIVA研究会-
「Geographical Data and Information -Visualization and Analysis-」(web)
に参加してきた。

1. 萌芽セッション(地理解析系の大学院生)
2. SPP高校生発表セッション(高校生)
3. 萌芽セッション(最適化系の大学院生)
4. 招待研究者セッション(研究者)

と非常に幅広い年齢層が一同に期した研究会。
どの高校生たちも非常にやる気に満ちていて面白い発表でした。


anonymous mapping

2010-03-07 13:03:07 | Weblog
mmap は file を memory 上に mapping するためのルーチン。ファイルを展開する領域に対しては「読み書き」等の権限を指定する事ができ、通常のメモリ領域のように使用可能である。
/* Anonymous maping による size byte のメモリ動的メモリ確保 */
int fd;
void *addr;
size_t len = roundup_pagesize(size);

#if defined(MAP_ANONYMOUS)
fd = -1;
addr = (void *)mmap(0, len, PROT_READ|PROT_WRITE, (MAP_PRIVATE | MAP_ANONYMOUS), fd, 0);
#elif defined(MAP_ANON)
fd = -1;
addr = (void *)mmap(0, len, PROT_READ|PROT_WRITE, (MAP_PRIVATE | MAP_ANON), fd, 0);
#else
fd = open("/dev/zero", O_RDWR);
addr = (void *)mmap(0, len, PROT_READ|PROT_WRITE, (MAP_PRIVATE), fd, 0);
#endif

anonymous mapping on MacOSX

2010-03-06 18:07:35 | Weblog
mmap は file を memory 上に mapping するためのルーチン。ファイルを展開する領域に対しては「読み書き」等の権限を指定する事ができ、通常のメモリ領域のように使用可能である。

メモリ確保ルーチンとして使用するのであれば、わざわざファイルを mapping するのは勿体ないので、anonymous mapping (無名マップ)を使用する。Linux ならば、MAP_ANONYMOUS フラグ指定や /dev/zero の mapping で実現可能である。

MacOSX では MAP_ANONYMOUS フラグも、/dev/zero の mapping にも対応していないため、使えないと早とちりしたが、どうやら MAP_ANON フラグで行ける模様。

英辞郎 第五版

2010-03-04 04:28:42 | Weblog
簡単に探しただけで色々出てくる。

linear programming 線形計画法◆【略】LP
mixed integer programming 混合整数計画法◆【略】MIP
semidefinite programming 半定値計画法◆【略】SDP
shortest path problem 最短経路問題
traveling salesman problem 《数学》巡回セールスマン問題

ちなみに Opteron , Xeon も載っている。

冷房 OFF 発見

2010-03-03 10:41:15 | Weblog
数ヶ月前に未遂はあったが、部屋にいない時に冷房が OFF になっているのは初めてのこと。

1. 研究室に到着すると、いつもより明らかに大きな音。
2. クラスタの裏はものすごく熱い。
3. 部屋の出入り口、窓全開で元の室温になるまでに 2 - 3 時間かかる。
4. 以外にも熱で落ちたノードなし。

※ 定期的に空調の電源を ON/OFF した方が良さそうです。

CUDA on MacBookPro.

2010-03-02 22:16:07 | Weblog
使用マシンは Snow leopard 搭載の MacBook Pro
OS  : Mac OS X 10.6.2 (Darwin 10.2.0)
CPU : Intel Core 2 Duo 2.53 GHz (L2:3MB)
Mem : 4GB

[ CUDA 2.3.1 ]
Device Name     : GeForce 9400M
Gloval Memory   : 253 MB
Shared Memory   : 16 kB
Constant Memory : 64 kB
Number of Regs  : 8192
Warp Size       : 32
Frequency       : 1100 MHz
ちょうど 1/200 の性能なので 200 並列で pay することになり、なかなか厳しい。
ちなみに単純に Dijkstra 法を CUDA 上で動かしただけなので、性能が出るわけないといえばそうかもしれない。
■ USA-road-d.NY.gr(264,346 nodes 733,846 arcs), ss x 1
CUDA : 10.000 sec.
CPU  :  0.050 sec.