ここ1年以上メイン言語は Fortran90 です.ここでは,Fortran そのものに関する賛否はさておき,(個人的に) Fortran でこのように書かれていると良いだろうという話をしていきます *1. implicit none を必ず書く これが何かわからなくてもいいのでとにかく…
最近,autotools に苦戦しているのでメモ.autotools を使った時に make のログが以下のように表示される事があるが,これは configure の --enable-silent-rules が有効になっているため. CXX hoge.o CXX fuga.o AR libx.aそれ以外の方法では,configure.i…
はてなブログに移行しました.そして最初の記事です.最近 Xeon Phi なるものを触ったりしていますが,かなりとても書きづらいというか pragma ベースで書くのは (OpenMP で楽に並列化できるレベルなら良いですが) 決して楽ではないと僕は感じています.なぜ…
最近,研究室の環境も zsh で動かしています.しかし,MPI のプログラムを走らせるときにどうしても環境変数に頼ってしまう部分があって,そのままプログラムを実行すると環境変数が他のノードに渡らなくてプログラムがクラッシュします.(もしかしたら実装…
この間の高速化,並列化みたいなスライドの MPI 版です.OpenMPI を使う必要があるとのことで,OpenMPI を対象として (といってもビルドと実行方法が OpenMPI 用になっているだけですが) 作りました.C++ と書いておきながらほぼ C です.# MPI は素で書くの…
ぶんちょうさんが Twitter / yutopp: forループで for(int i=0; ...と おっしゃっていたので.boost::for_each(boost::irange(begin, end), [](int i) { ...; }); な書き方は良いんですが,個人的にめんどくさいので for みたいに書けた方が良い.ただループ…
研究室の大先輩が某所の*1某プロジェクトに入るそうなので,これまで並列化とか高速計算とかあまりやっていないけど,これからやらないとまずいってことだったので,僕が勉強会で教えていました.昨日のうちに slideshare にアップロードしていましたけど言…
Boost.勉強会 #11 東京 - boostjp茨城の山奥に行ったりとか,書類書いてたりとかして1週間も経ってしまいましたが書きます."CilkPlus, TBB, OpenMP 〜 並列プログラミングを支える技術" という大層なタイトルで発表してましたが,つまるところこの辺のライ…
コード書くの疲れたので休憩も兼ねて書きます.知っている人も多いと思いますが,CilkPlus は並列処理を容易にするため,Intel が自社のコンパイラに用意している C/C++ 用の言語拡張です. 元々は MIT で作られていた C 言語用の拡張だったとかなんだとか.…
最近 TeX に載せるグラフを書くために Numbers とか使って EPS に変換したりとかしてたのですが, よくある2段組み用に使うと汚くてかなり見づらい.今日とうとう諦めて PLplot を使って描画プログラムを書くことにしました.PLplot Home Page - MainPLplot は …
これをやるきっかけは, 大学の1年生が主に使っているシステム (がマウントしているファイルサーバだったかな) が今年度でサポート完全停止でいつ壊れても修理できないそうで, 今学内全体で使うためのクラウドシステムの準備中らしく, その期間安全に使えるシ…
Tutorial - 1.53.0Boost.MPI ドキュメントの "Table 19.5. Collectives" を見てもらえると分かりますが, Boost.MPI では MPI_Allgatherv といった collectives はそれぞれ非 v な collectives でサポートされているかのように書かれています.ちなみに MPI_Al…
できるのかと思ってたんですが, Boost.Serialization のチュートリアルちゃんと読んだら書いてありました.Serialization配列のサイズが分かっていればできそうです.(2013/02/11 追記) 動的確保されたメモリの場合, serialize 関数でメモリ確保は行われないた…
2ヶ月以上ぶりです.最近 Intel C++ Compiler (icpc) を使う機会が増えたのですが, GCC で書いたプログラムを他のコンピュータ (自分でシステム管理ができないタイプ) でコンパイル/実行しようとしたときに躓いたのでメモ.Intel C++ Compiler Linux 版は GCC …
この記事は, C++ Advent Calendar 2012 (C++ Advent Calendar 2012 - PARTAKE) の18日目です.温いネタをやりたいので C 言語を使っている人 (Cer) に C++ の知って欲しい/今すぐ使える機能を Tips 的に書いていこうと思います.対象は特に設けなくていい気が…
Boost.MPI は MPICH や OpenMPI では Default Configuration が良い感じに走って using mpi するだけで問題ないのですが, MVAPICH2 はコンパイラの名前が異なっているため, そのままでは動きません./tools/build/v2/user-config.jam に以下のように書きます.…
Modules -- Software Environment Management *1これはユーザーが異なる複数のバージョンのソフトウェアを使用できるようにするために, load/unload を提供して管理を楽にする為のソフトウェアのようです.PC クラスタ(OSCAR Project)などでの運用実績があ…
テストと言っていいのか, BDD ではスペックというのが一般的なのかはよくわからないのですが, gem の jasmine でテスト環境を準備したのでメモ.jasmine 自体の説明は公式といい感じのページあったので.pivotal/jasmine · GitHub Jasmineでテスティング | fee…
大体 CUDA か GPU 関係.Boost.ODEIntが採択されました - Faith and Brave - C++で遊ぼうODEInt は常微分方程式を解くためのライブラリ. 無条件採択されたらしい. Thrust を使用して GPU で計算もできるとかなんとか.書いてるの反復法といくつかなので使い道…
jade だけだったら watch とか使えば良いと思うんですが, Coffeescript も自動ビルドしたい. しかしぱっと見 guard-jade とかなさそう.Coffeescript の自動ビルドは guard-coffeescript でなんとかして頂きたい. ということで jade については自分で書く. $ …
この間の闇鍋で PhoneGap について発表したのですが, あの後わかったり, 言うの忘れていたことがあったのでここに書きます. PhoneGap Build Adobe に置いてあるクラウドサービスで, Javascript や HTML をアップロードすれば, それを Adobe 側のサーバでビル…
ngx_small_lightを使った画像変換 @cubicdaiya さんの発表. ngx_small_light at 第2回闇鍋プログラミング勉強会 from Tatsuhiko Kubo Intel AVX で SIMD 入門 id:kawa0810 さんの発表. Yaminabe simd from kawa0810 ATL に見る黒魔術 id:egtra さんの発表. A…
第2回 闇鍋プログラミング勉強会 - Togetterまとめ * 9/17 追記: @sters9 さんがまとめてくれました!ありがとうございます!昨日9月15日に闇鍋プログラミング勉強会第2回を開催しました.当日は, 参加者が迷ったりするのはまあ今回の会場が初見の人はいいと…
auto func(...) -> decltype(...) を使えば, 渡された変数がメソッドを持つか持たないかで SFINAE とかできる. #include <iostream> struct memory { std::string to_string() const { return "is memory."; } }; struct device { std::string to_string() const { ret</iostream>…
nvcc でないとビルドできないのはカーネル関数なので, ここと通常の C++ コードを分離してそれぞれビルドしたオブジェクトをリンクすれば, 普通に C++11 を使ったコードが(カーネル関数以外で)書けるようになる.後, CUDA を使うために必要なライブラリとか, …
わんくま同盟昨日行われたわんくま横浜, nyaocat さんが発表するとのことでふらっと参加するかーと思ったら, 当日 nyaocat さんが風邪で病欠になっており, たまたま居合わせた僕があおいさんに見つかってしまい代理発表させられるすることになりました.別に…
Efficient Sparse Matrix-Vector Multiplication on CUDA | NVIDIA の論文の、CRS spmv vector のメモ。CRS spmv の場合、1行に複数のスレッドが計算したほうが効率がよい。 しかしある行で各スレッドが計算した結果を全て足し算 (parallel reduction) をす…
ようやく会場とか日時とか決まりました。第2回 闇鍋プログラミング勉強会 : ATND日時:9/15(土) 会場:IIJ 東京本社 大会議室1(神保町)希望調査時からご登録いただいた方には ATND にメッセージをお送りしました。発表者がいないので誰か発表しましょう…
実行時間を図るとき、posix 系列なら gettimeofday で実行時間を測っていた。だいたいこんな感じ。 #include <cstdio> #include <sys/time.h> double second() { struct timeval t; gettimeofday(&t, NULL); return t.tv_sec + t.tv_usec * 1e-6; } int main(int argc, char** ar</sys/time.h></cstdio>…
Boost.勉強会 #10 東京 - boostjpもう二日経ったけど書く。色々あったけど、最後に書くとして、各発表の感想。 Boost ライブラリ一周の旅 1.45.0 〜 1.50.0 C++Now! 2012 参加レポート local function については、「あれ、auto でラムダ式を束縛すれば良い…