vtk7.0.0が出たという記事を見た時、といってももう1年も前なのだと今気付いたが、分子のためのクラスがあることを知った。で、以前vtkで分子を表示するために複数個の球体を浮かべようと悪戦苦闘した記憶が思い起こされ、こういうものがあるなら使ってみたいと思った。
続きを読むスコープ内の時間計測
以前、関数の時間計測のために返り値をラップする構造体を作っていたが、これはRAII的に考えて
Logger logger; /*... codes ...*/ { stop_watch<std::chrono::milliseconds> sw("block-name", logger); /* do_something */ }
とスコープの先頭で宣言すればスコープ内でかかった時間のログが取れるようにできる。
続きを読むbobthefishでstring関係のエラーが出た
状況:fish
でbobthefish
を使うとエラーメッセージが出てテーマどころではない
原因:bobthefish
がfish-2.2
にはないコマンドstring
を使っているから
解決策:fish-shell公式サイトにあるaptレポジトリから最新版を持ってくる。
もちろん.deb
をダウンロードしてインストールしたり、ソースコードをダウンロードしてビルドしてもよい。
なんかこの記事のアクセス数多かったので一応最初にtl;drを追加しておいた。(2017/10/10)
普段、 fish shell なるシェルを愛用している。Linuxに触れて1年半ほどだが、最初は普通にbashを使っており、1年経つか経たないかの頃、ちょうど別のshellのことを考え始めた頃にどこかでfish shellを知って入れてみたのだったと思う。どこで見たのかは忘れてしまった。
続きを読む関数の時間計測
C++のthread
ライブラリを使っている。いかんせん並列化の経験が少ないのでちゃんとthreadが立ち上がっているのかとか、並列に処理されているのかとかがよくわからないし、ツールもよく知らない。VTuneのことは知っているが個人で持っているようなものでもない。なので、最も愚直な方法、単に時間を計測して出力して調べることにした。
しかし、出力するといっても、文字列の出力はatomic
ではない。しかし、関数内でmutex
をlock
したりする場合、そのmutex
のスコープはどうなるのか。グローバルか? だとすればあまり嬉しいことにはならない。実際には最終的に出力するべき内容が全て出力できればいいのだから、関数から時刻も一緒に返して受け取ってから単一のスレッドで出力を行えばよいことになる。というわけで以下のようなコードを書いた。
コンテナ内の一括計算
を、たまにコードを見たりしている後輩が自分のためのコードの中でよくやっている。要するにこういうことだ。
std::vector<double> v1; std::vector<double> v2; // do something... assert(v1.size() == v2.size()); std::vector<double> v3(v1.size()); for(std::size_t i=0; i<v1.size(); ++i) v3.at(i) = v1.at(i) + v2.at(i);続きを読む
CUDAの練習1: mandelbrot集合
を正月休みにしていた。CUDAに関しては雑な知識しかなかったので、『CUDA BY EXAMPLE』なる書籍を読んだ。『CUDA C プロフェッショナルプログラミング』なる本が名著であると勧められてはいたが、まずモチベーションを殺さないために短めのものを一読してから重い本で知識をアップデートするやり方に慣れていたので、手元にあった薄い方の本を手にとった次第だ。
CUDAの文法や基礎知識は解説できるほど理解していないので、本や何やで確認してほしい。
続きを読む