もともとMIRUで扱われる内容は結構幅広い分野に渡っていて,そのなかでも私自身の興味の強い分野の発表もたくさんあり,内容の上では当然,さらには多くの人と出会いいろんな話をすることができるなど,本当に得るものの多いシンポジウムでした.
私自身は前座イベントの全日本CV勉強会にも参加しましたが,そちらの報告については別の記事でがっつりしてるので,併せてご覧いただければと思います.
今日はいつものイベント参加記録のような雰囲気ではなく,ほんとにあっさりと感想を書いていくだけの記事になります.
私自身は前座イベントの全日本CV勉強会にも参加しましたが,そちらの報告については別の記事でがっつりしてるので,併せてご覧いただければと思います.
今日はいつものイベント参加記録のような雰囲気ではなく,ほんとにあっさりと感想を書いていくだけの記事になります.
僕はMIRUへ参加が決まるずっっっっと前からJapanCVへの参加表明をしてて,実際に参加しLTまでさせていただき,もうホントに素晴らしいイベントでした.ということで,報告いたします.
#MIRU本会の空き時間中に書いた記事なので書き足りないかもです.増えるかも.
いつもの乱雑なメモ形式で報告いたします.
と言ってもスライドをずっと追いかけてたときとか,あと後半ほど自分の脳みその疲労がアレでメモのクオリティ下がってます><;;
そこんところはおゆるし願います…
1ヶ月前の第8回の報告を今さら!!
ていうか,第7回が飛んでますね><
さてしょっぱなからツッコミどころ満載ですが,第8回についての報告を.
第8回もまた非常に素晴らしい内容で,本当に参加してよかったと思っています.
ということで,いつもの箇条書きメモ形式でまとめました.
といってもまとまりはぜんぜん無いです.ホントにメモそのままです.
この理由はもう言うまでもないですね,内部実装にC標準関数のclock()を用いているからです.
移植性のためなのは理解できるんですが,ちょっとこれでは困ることも.
ということで,POSIXシステムコールのgettimeofdayを使って再実装してしまえ
…というテーマで記事を書こうとしたんですが,探したらあるもんですね.
POSIXではgettimeofdayを,WindowsではQueryPerformanceCounterを使えるように書いたものがありました.
http://pasokoniziri.blog32.fc2.com/?no=15
これに基づくprogress_timerやprogress_displayを作ろうかとも思いましたがそもそもあれはboostにしては珍しい誰得ライブラリなので放置.
ついでなので,gettimeofdayの精度についてのお話.
http://www.argv.org/~chome/blog/noisefactory/2008/02/gettimeofday.html
へー,おもしれー.
さて,コマンドラインプログラムにおいて,標準入力・標準出力・標準エラー出力がそれぞれ端末かリダイレクトまたはパイプされて別のファイルまたはプロセスに渡されているかどうかを調べたいことがあります.
今日はその方法を.
可変長テンプレート引数の何がおいしいかというと,例えば現在のboost::tupleはT0からT9までをデフォルトテンプレート引数と組み合わせて実装してるので要素数は10以下に限定されますが,C++0xに用意されるstd::tupleは可変長テンプレート引数で実装されるので,原理的には,無限の要素数が実現できます.
ここで本質的に重要なのは,「無限の要素数」に対応できることではなく,「任意の要素数nにおいて一般的に記述できる」ことである点に注意.
また,可変長テンプレート引数を用いて,可変長引数の関数を書けます.
これは,いわば「型安全printf」を書けることを意味します.
話がちょっと逸れましたが,じゃあその可変長テンプレート引数は実際どういう風に扱うの?という話を,関数テンプレートに関してします.
Wikipediaに書いてある範囲より僅かながら広い内容,だと思います.たぶん.
いずれもPDF注意です.
東京大学情報基盤センター・大島聡史先生による『これからの並列計算のためのGPGPU連載講座』より,
特に2と3は非常に良いです.必読です.
あと,プログラムはちゃんと写経しましょう.ぼけーっと写すだけでもぜんぜん理解が違います.
CUDA4.0のような最新の技法・アーキテクチャ等はともかく,また量的にまだまだいろいろ書かれてないことはあるでしょうけど,基本を押さえるのによいです.
CUDA4.0はUbuntuに関して10.10を正式サポート対象としてるのもあって,ハッキリ言って,導入に躓く要素はないです.
ちなみに僕のメインマシンはモバイルノート(ThinkPad X201s)なんですが,研究室のマシンがi7-920に9500 GTなので,基本的にCUDAは(エミュレーションじゃなく)こっちでやってます.
それとは直接関係ないのですが,行きの電車の中でBoost.Variantの仕様に関して疑問をもってTwitterでつぶやいたところ@cpp_akiraさんより回答をいただいて,それがすごく興味深い内容だったのでそのやりとりをこちらでメモ.