安敦誌


つまらない話など
by antonin
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
検索
最新の記事
仲介したことはあまりないが
at 2017-04-29 03:36
サンセット・セレナード
at 2017-04-12 23:17
水分子と日本人は似ている
at 2016-06-04 01:49
ほげ
at 2015-06-05 03:46
フリーランチハンター
at 2015-04-17 01:48
アメリカのプロテスタント的な部分
at 2015-04-08 02:23
卯月惚け
at 2015-04-01 02:22
光は本当に量子なのか
at 2015-03-17 23:48
自分のアタマで考えざるを得な..
at 2015-03-06 03:57
折り合い
at 2015-03-01 00:19
記事ランキング
タグ
(295)
(146)
(120)
(95)
(76)
(65)
(59)
(54)
(45)
(40)
(40)
(39)
(32)
(31)
(28)
(27)
(25)
(24)
(22)
(15)
最新のコメント
>>通りすがり ソ..
by Appleは超絶ブラック企業 at 01:30
>デスクトップ級スマート..
by 通りすがり at 03:27
7年前に書いた駄文が、今..
by antonin at 02:20
助かりました。古典文学の..
by サボり気味の学生さん at 19:45
Appleから金でも貰っ..
by デスクトップ級スマートフォン at 22:10
以前の記事

プログラムの話、その後

先日から再開したライフゲームのプロトタイプ作りが、ひとまず動くところまで到達した。15年間のハードウェアの進歩を実感するような高速にはならなかったが、着手した当初の、GDI+を使った絶望的な遅さからはDXライブラリによって解放され、及第点程度の出来にはなった。80x60の小さな領域ながら、ランダムな初期配置から毎秒150世代程度の計算速度が出た。

調子に乗って、試しに800x600としてセル数を100倍に拡大して、そのうちの80x60だけを表示するようにしてみたが、プロトタイプで使った計算モデルがあまり効率の良いものでもないので、かなり残念な速度にまで低下してしまった。次はセルのデータ構造を変更して、もう少し効率の良いものにしてみたい。現代のプロセッサスピードなら1000万セルくらいは実時間で計算できるに違いないので、表示はともかく演算の速度は効率を追求してみたい。

計算のオーダーはセル数に対してO(n)だとして、単純に計算すると最低でもプロトタイプの50倍速程度には加速しないといけない。10メガセルだと、セルをビット表現すれば1280KBに収まる。メモリはふんだんにあるのでデータ容量を節約する意味はないが、データが小さいとプロセッサ上のキャッシュに乗る率も上がるので、計算速度の面から役に立つこともある。それにデータをビット単位にするとビット演算命令が使えるので、レジスタ長に収まる複数セルの計算を同時に処理するアイデアも使える。最終的にはSSE2のSIMD命令を組み立ててコアルーチンを書いてみたい。こういうネタを考えるのは楽しい。

ついでにWindowsのコントロール類やイベントの扱い方を練習しておけば、どこかで何かの役には立つだろう。GUIまわりのプログラミング経験はExcel VBAのフォームで多少練習したくらいだが、今回も全く知識ゼロから手を付けるよりはいくらか理解しやすかった。久しぶりにVisual Studioを触ってみると、デバッグ操作やC++の細かい文法をかなり忘れてしまっていた。覚えるのと違って調べて思い出すのは時間を食わないから、いいリハビリになった。

9月からは1日が24時間に戻りそうな気配もあり、まぁいいんじゃないかな、という具合の今日この頃。
b0004933_22351414.jpg

[PR]
by antonin | 2010-08-21 22:53 | Trackback | Comments(0)
トラックバックURL : http://antonin.exblog.jp/tb/13816749
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
<< 景気とかプログラムとか 懐かしのダンス・ミュージック >>


フォロー中のブログ
外部リンク
外部リンク
ライフログ
ブログパーツ
Notesを使いこなす
ブログジャンル