« October 2006 | Main | December 2006 »

2006.11.28

グラフっす

グラフのアルゴリズムを復習中。。
未踏用にさ。。
深さ優先探索、あれは以外とあなどれませんな。。
色々と未解決な部分もあるので、速めに基本設計まで落とし込まないと

で、12月だというのに3日も休みを頂いてしまう。。
これも何とか無理やり了承をえた。

あと、今参加しているドラマサークルのBGMやら効果音とかの素材を取りまとめて、
後任の編集人の人に渡さないといけないね。。
今まで過去の作品に産卵していた素材を集めていたわけですが、
あれはいくらなんでも職人技だろう、みたいになっていたので、ここいらで整理をしないといけない。

| | Comments (0)

2006.11.23

晴れて未踏ソフト

未踏ソフトに採択されたわけであります。で、サイトを未踏モードに切り替えたくも、各ページとも割とデザインが統一されてしまっていて、なかなか大きなリニューアルは難しそう。。
なので、未踏専用のコーナーを新たに設けて、そこで色々な記事を書いていくつもり。
で、記事はブログでまかなってしまうかどうか考え中、、トラックバックとか、コメントとかブログの方が付きやすいしね。
とりあえず目次だけは作っておいて、中身はブログ形式にするかな・・・
あ、でも日誌みたいなものと区別が難しいから、やっぱブログは日誌専門にして、コンテンツはHTMLでガリガリとかきますかな。。その方がバックアップとかもローカルで取れるしね。。

| | Comments (0)

2006.11.21

さて

こっちの方も通ったことだし
そろそろ本腰をいれてトップページのリニューアルに取り掛かるか、、

http://www.ipa.go.jp/jinzai/esp/2006mito2/koubokekka.html

| | Comments (0)

2006.11.20

メニーコア

どうせメニーコアの時代は目前なんだし、ネット越えしたクラスタリングなんて面倒なことは考えずに、OpenMPでも使って、1台のコンピュータでの並列処理にしておこう。そっちのほうが費用対効果は断然高いはず

それでも並列化はやっぱり面倒なものだ。
たとえば、以下のようにエフェクタを直列に繋いでいたとしよう
【ディストーション】→【コーラス】→【EQ】

恐らく各エフェクトはバラバラの関数に実装することでしょう。(ま、関数呼び出しオーバーヘッドもバカにならないと思うならSwitch-caseかも知れませんが、、)

で、エフェクタの種類や接続順序はユーザが自由に変更できるようにしたい。
となると矢印の部分は共通のメモリ領域なんかにしておいて、各エフェクタの処理部でそのメモリ領域を読んだり、書いたりする
というのがオーソドックスな処理となるかと思います。

しかし、ここを並列化するとですな、、、
【ディストーション】、【コーラス】、【EQ】、、その他
これらがどんな順序で実行されるか分かったものではない。。。
下手をすると【EQ】、【コーラス】、【ディストーション】の順番で実行されるかも知れない。。
こうなるとそれぞれのエフェクト処理部は、まだ(されていて欲しいのに)更新されていないメモリを入力して、出力領域に書き込みという処理をしてしまう。
この場合は、予期せず2サンプル分だけディレイラインが形成されてしまうことでしょう。

それも1サンプル遅れるのか、2サンプル遅れるのか、遅れないのか、、、、分からないと、、、

この辺をどうやってちゃんと処理するかですよね。。


それはそうと今日は月島でもんじゃを食べた。
その後汐溜でぶらぶら。
雨と風が強くて大変だった。ビニール傘が折れたし。
ズームイン朝グッズを売る店を経営できるなんて、テレビ局業ってボロいよなーー、とか思ってみたり。

| | Comments (0)

2006.11.19

フイードバックとクラスタリング

これもmixi日記の転載
mixiは外部のブログにリンクする機能があるんだけど、mixi上からはコメントを直につけられないのよね。。。
日記のエントリとタイトルだけはRSSで読み取ってくれるのだけど、、

フォードバックを有するシステム
というのはつまりあれです。出力が入力に返されるシステムですよ
1つの部屋の中にマイク→アンプ→スピーカーが繋がれていて、アンプの出力を上げるとマイクがスピーカーの出力を拾って、それを増幅してさらにスピーカーから出力してってのを繰り返すことで、キーンとか、ピーとかブーンとかいう音が継続して鳴り響くというハウリング。
あれもフィードバックを有するシステムの例です。

で、クラスタリングってのは何か?
あれですよ。
たくさんのプロセッサやコンピュータを接続して同種(とは限りませんが、この場合は話を簡単にするため同種としませう)の計算を並列処理するというシステム構成法です。

で、この二つを同時に実現するのは、実は意外と難しい。

というか、フォードバックをまじめに、やろうとするとまず無理。

まじめにというのは、要するに非常に短い時間間隔で出力を入力に返すことが無理なのです。(スウガク的な意味での「非常に短い時間」ってことだと1つのプロセッサでも無理ですが、、)

ま、とりあえず対象はオーディオ信号処理として、サンプリング周波数は44.1KHz。で、1サンプル時間。つまり44100分の1秒を「非常に短い時間」と定義しませう。

1サンプル時間はCPUにとっては非常に長い時間で、Pentium4とかだったら、1サンプル時間あたり、44100回くらいの演算はやすやすとこなせてしまうでしょう。

しかし、ネットワークが絡むとそうは行かない。。
まずは下位のプロトコルから見ても、フレーム単位に小分けしたり、たまにフレーム同士が衝突して待ち時間が発生したり、フレームの上に乗っかってる情報にノイズがのったせいで、もう1回送りなおしたり。。
OSはOSで、他のプログラムが動いていて、スケジューリングされて中々プロセスの実行順序が回ってこなかったり、たまにメモリスワップのディスクアクセスが走ったりで(1つのプロセスでは外を見なくて良かったので、問題なかったのですがね)

こうした理由で1サンプル時間あたりに必要な計算をみんなでやった後に、その結果を格納しておいて、次のサンプルを処理するまで、待機しておいて、入力サンプルがやってきたら、計算しておいた出力結果を足し込んで、
さあ!またもう1サンプル計算!

みたいなことは、あまり現実的ではないように思います。

なので、たとえば10ミリ秒単位なら、10ミリ秒単位と、ある程度独立して計算できるタイムスロットを設けてやって、その単位で同期をとって、次のタイムスロット(サンプル群)の入力に、前回のタイムスロット(サンプル群)の出力を足しこむ、という処置が必要と思われます。
つまりは最短のディレイラインとして10ミリ秒は必要だよ、という制約を加えることで、一応はフィードバックを有するシステムのクラスタリングはできるのかな?
と思います。

でも、頭の中で考えているだけなので、矛盾や、問題点の見落とし、逆にもっと賢いやり方があるのかも知れません、、、

なんで、今こんなことを考えているのかといえば、実は超重たい信号処理のアルゴリズムを考えていて、クラスタリングとか真剣に考えたほうがいいかな~~~~と真剣に思うわけです。


それにしても世の中にある物理モデルの計算って、その辺のフィードバックをどうやって処理しているんだろう????

惑星なり、電子なり、、、、相互作用(万有引力)あってナンボだと思うんだけどね?

| | Comments (0)

2006.11.16

節穴だ

mixiとの2重投稿(笑)

短いインパルス応答(200サンプルとか)の畳み込みを何回も実行するときに、
1つのFFTコンボリュージョンにまとめれば早くなるかな?
と思ったけど、どうもそうでもないらしい、。、、

例えばFFTサイズが256サンプルの畳み込みを256回やるとすると、計算量は
(2×256×Log(256,2) + 256 ) × 256
=4352× 256
=1114112

で、これを65536サンプルサイズのFFTコンボリュージョンでまとめてやろうとすると
(2×65536×Log(65536,2) + 65536 )×1
=2162688

あ、倍の遅さだ。。。。〇rz

コンボリュージョンという演算自体が、(たとえ僕が望んでいないとしても)「遠く離れたサンプル同士に影響を及ぼすことができる」という機能を持っていることが、微妙に遅くなってしまう原因なのかな??

ま、どっちが速いか分かっただけでも勉強になったとしませう。。。

| | Comments (0)

2006.11.13

色々

今日は色々なことがあった
後任の編集人が決まりました~
パシベジの活動で、編集作業とか作曲とか、その辺の作業を引き継いでもらいます~
しかも2名!!
バックグラウンドも申し分ない!
凄い!!
これは奇跡に近いものがあると思います。
この勢いでうちのサークルも奇跡のようにグレードアップして欲しいものだ
そして、僕は僕であっちの方向でグレードアップする!

あ、そろそろ具体的な作業をまとめないとね、、、、、

・ホームページの更新
・やる範囲の設定
・基本的なクラス設計
・スピーチの訓練(笑)

| | Comments (0)

2006.11.10

秋眠

眠いです。かえったら直ぐに寝てしまいます。
ほんと、布団は敵だ。。。ってわしは受験生じゃないってば!
受験といえば、僕の洗剤意識では、「追い詰められること=受験」という条件反射が実装されているらしく、今でもめちゃくちゃ忙しかったり、ミスが許されない状況が続いたりすると、夢枕のなかで高校の授業がフラッシュバック(夢なので多少アレンジされて)されます。
あれだけ頑張ったけど、地方の二流大で文系と、、、、
おっと、また愚痴ってしまった。。。。

僕より頭のいい人はいくらでもいるので、僕は僕でオリジナリティというか、独自の方向性を突き詰める方向で、勝負したいです。
今は趣味の延長線上だけど、いづれリミットを越える。
そして実は超えられる兆候もでてきているのです。

それはそうとして作業がちちとして進まない。寝てるから

| | Comments (0)

2006.11.03

Visual Studio2005

かった

今仕事で使っていて便利さに一目ぼれしたってかんじです。
コードスニペットで定型的なコードはカタログから選ぶように挿入できるし、継承コードをかいだ時点で、純粋仮想関数が自動挿入されるし(とくにクラスライブラリを使っているときなんてかなり便利です、関数名でMSDNを検索すれば、何を書けばいいのかすぐわかるし)
VC++もVBライクな開発ができる(昔も枠組みとしてはあったけど、ずっと洗練されているというのか)
コードを記述した時点でリアルタイムに構文解析をやって、エラーとか警告を出してくれるので、(これも前にもあったけど、いわゆるコンパイルってのをやった時と同じレベルのメッセージを出してくれるようになったのです)何回もコンパイルを繰り返してコンパイルエラーを消すという作業は要らなくなったです

最初は3万円ってことで、ちょっと考えたのだけど、箱の脇をよくよく見てみるとVisualC++6.0を持っていればアップグレード版がインストールできるらしい!
これで3万ー>2万となって悩みは消えました。
かいましたよ~

| | Comments (0)

« October 2006 | Main | December 2006 »