2012-01-01から1年間の記事一覧

C++でOpenMPI入門5 構造体のブロードキャスト2

前回, 構造体のブロードキャストをバイト数を用いて行った. この場合, ようするに構造体でもなんでもMPI_BYTEとして送ってしまおうという考え方だが, 他のプリミティブな型と同様に自分の作成した構造体も扱えるようになると便利である.従って次に構造体を独…

C++でOpenMPI入門4 構造体のブロードキャスト1

前回はプリミティブ型であるintをブロードキャストしたが, 複数の型の変数をまとめて同期したいときなどは構造体にしてブロードキャストできると便利. #include <iostream> #include <mpi.h> struct parameter { int seed; double temperature; }; int main(int argc, char **</mpi.h></iostream>…

C++でOpenMPI入門3 ブロードキャスト

お次はブロードキャスト.標準入力から情報を得たいときに, ランクを気にせず普通にやってしまうと, プロセス全てから値を尋ねられて大変な事になる. そこで, 0番目のプロセスでだけ入力を得て, 後は他のプロセスに0番目から教えてやる, という方式をとる. #i…

C++でOpenMPI入門2 サイズ, バリア, リダクション

リダクションを試してみる.以下では各プロセスから各自のランクをリダクションで通信して, そのランクの平均値を求めている. #include <iostream> #include <stdlib.h> #include <mpi.h> int main(int argc, char **argv) { MPI::Init(argc, argv); int rank = MPI::COMM_WORLD.Get_rank</mpi.h></stdlib.h></iostream>…

C++でOpenMPI入門1 ランク

おもむろにOpenMPIに取り組んでみようと思う. FortranやC言語でも情報が散逸しているのが現状のようだが, C++となると基本は同じとは言え, いまいちよくわからん.というわけで, ここにサンプルを示しながら, 勉強していきたい. サンプルはここに従って試して…

gitでリモートレポジトリをbareに変更

gitでローカルのディレクトリから別のディレクトリへcloneして作業した後, pushしようとしたところ, 以下のようなエラーが出てしまい, pushできなかった. error: refusing to update checked out branch: refs/heads/master error: By default, updating the…

Emacsで画面3分割

以下のをまるぱくりしただけのメモです.http://d.hatena.ne.jp/yascentur/20110621/1308585547 (defun split-window-vertically-n (num_wins) (interactive "p") (if (= num_wins 2) (split-window-vertically) (progn (split-window-vertically (- (window-…

EmacsとEightyColumnRuleでソースを読みやすく

ソースコードを書いていると, 1行を80列を渡らないようにすべしという法がある. といっても通常コンソールで作業している分にはちょうどその位置で行が変わるので良いのだが, 画面が広がり, どこで改行すべきか意識しなくなる傾向にある. Lines longer than …

Autotools入門

これが一番わかりやすかった.http://www.spa.is.uec.ac.jp/~kinuko/slidemaker/autotools/Overview.html

g++でのライブラリを指定する順番でハマる

g++で簡単なプログラムを実行するのに, "/usr/lib/libgsl.so: undefined reference to 'cblas_ctrmv'"などのエラーが大量に出て困った.調べると以前までは特に問題なかったが, ライブラリオプションを指定する順番によってエラーが生じるらしい.つまり, "-lm…

verificationとvalidation

以前, ソフトウェア開発におけるverificationとvalidationの使い分けというような話を聞いたのを思い出して調べてみた. Validation とは要求に対して、正しいものが定義されているか否かを検証する際に用いる用語です。 (中略) これに対して Verification は…

matplotlibで図の縦横比に関するあれこれ

matplotlibを用いて図を作成する際に, 縦横比をどうすれば変えられるのか聞かれたのであれこれ考えてみたが, 今ひとつ決定打が無い.方法1. Figure自体の縦横比を指定する. from matplotlib.figure as figure fig = plt.figure(figsize=matplotlib.figure.fig…

UbuntuでPDFの結合と分割

1から4と6ページ目だけのファイルを作る. $ pdftk original.pdf cat 1-4 6 output new.pdf 複数のファイルを結合して1つのファイルを作る. $ pdftk original1.pdf original2.pdf original3.pdf cat output new.pdf http://blog.livedoor.jp/arakusa/archives…

Emacsで編集しながらMakeする

C++などのプロジェクトで開発している際, コードを編集した後, コンパイルして通るか確認するが, いちいちEmacsを閉じてmakeなどとするのも面倒. そこで編集中のファイルがおかれているディレクトリでMakeを実行するコマンドがある.M-x compileで"make -k"な…

Ubuntu日本語入力で英数字の全角変換

かな入力でアルファベットを普通に入力してからF9を何回か押す.http://www.miuxmiu.com/archives/2011/03/04/ubuntu_shortcut_keys_english_translation_of_sumi_tamotsu.html

gitでpushしちゃったcommitを取り消す方法

調べると色々書いてあるが, 下記のサイトがよくまとまっている.http://d.hatena.ne.jp/keisukefukuda/20111105/p1色々考えたがpushしちゃった場合はどんな場合でも"恥を忍んで直す派"であるのが良いような気がする. サイトには"git revert HEAD^"と書いてあ…

git lola

なにこれ, ちょー便利. So, just copy the following into ~/.gitconfig for your full color git lola action: [alias] lol = log --graph --decorate --pretty=oneline --abbrev-commit lola = log --graph --decorate --pretty=oneline --abbrev-commit -…

oprofileよりもperfを使おう

ということらしいです.http://int.main.jp/txt/perf.html

gitでbranchを使いこなす

後で下のリンクの内容をまとめる予定.http://d.hatena.ne.jp/basyura/20100323/p1 http://d.hatena.ne.jp/zariganitosh/20080912/1221260782

Emacsのpython-modeで領域選択して字下げと字上げ?

字下げはindent-regionとかが使えるようだが, 逆にまとめてindentを消したい(字上げ)場合のEmacsショートカットがよくわからなかった. viだと選択して行頭に自由な操作をできる.python-modeの説明をみる(M-x describe-mode)と, C-c python-shift-left C-c > …

Ubuntuでキーボードショートカットからウィンドウを移動

なんか操作していたらウィンドウの上側のバーが画面からはみ出してしまい, つかめなくなった.移動しようにも移動できないので調べていたら, Alt+F7でつかめることがわかり助かった.http://www.miuxmiu.com/archives/2011/03/04/ubuntu_shortcut_keys_moving_…

別にホラー好きじゃない僕のお気に入りのホラー映画のトレイラまとめ

1. エイリアン Alien (1979)シリーズとしては二作目のエイリアン2 Aliensも面白いです. ただ, ジェームズ・キャメロン監督作品らしく, どちらかというとアクションもの.他にエイリアンものとしてはピッチブラック Pitch Black (2000)が面白い. ただし, 続編…

Ubuntu 11.10でTellicoをgitからビルド

Tellicoを自宅の書籍の蔵書管理に用いていたのだが, バーコードスキャナで読み込んだISBNをもとにAmazon.co.jpから情報を得る部分がうまく動作しなくなった. 理由はよくわからないのだが, Searchすると一度は検索結果が出てくるにもかかわらず, Not Foundに…

grepでタブを検索する

フィルタするときにgrepにタブを渡したい. スクリプトの中で書くには問題なく, grep " "のようにタブを直接打ち込めば良い.ターミナルから入力する場合, 単にタブキーを押しても意味が無い. そこで, 一度Ctr+vを押してから続いてタブキーを打つとタブがちゃ…

LaTeXの画像に文字を重ねる

LaTeXでeps画像として作成した図に(a), (b)のような番号をふりたい. LaTeX上でこうした文字を画像に重ねる方法. \usepackege{overpic} \begin{overpic}[width=5cm,grid]{name.eps} \put(50,15){重ねるもの1} \put(20,40){\textsf{重ねるもの2}} \end{overpic…

Matplotlibのパラメータのデフォルト値を変更

線幅とかフォントサイズなどをいちいち設定するのが面倒だったが, ちょっと調べたらmatplotlib.rcParamsでまとめて変更できそうだ. import matplotlib as mpl mpl.rcParams['font.size'] = 16 mpl.rcParams['lines.linewidth'] = 1.5 http://everydayprog.bl…

重要な出版物のリスト on Wikipedia

偶然発見した. リストの信頼性のほどはわからん.Lists of important publications in science http://en.wikipedia.org/wiki/Lists_of_important_publications_in_sciencecomputer science, theoretical computer science, oncurrent, parallel, and distrib…

Matplotlibで入れ子の図を作成するときのちょっとしたテクニック

Matplotlibで図の中に図が入っているような図(ややこしいなw)を作成するときにいくつかはまったのでメモしておく.図が規則的に並んでいるときはsubplotを使えば良いが, 特定の場所に表示したいときはaxesを利用する. 普通一つの図しか作らない場合はmatplotl…

Pythonで多重リストのソート

要素がタプルであるようなリストをソートする場合に, 要素のn番目でもって比較して並べる. リストの関数であるsortにはkeyとcmpというオプション引数があってこれで比較の条件を指定できる.例えば, リストの要素が文字列であるが, 実際には数値とみなしてソ…

適当な一時ファイル, ディレクトリを作成する

mktempでいける. "-d"オプションでディレクトリをつくる. $ mktemp temp.XXXXXX temp.xSefkZ 戻り値を変数に突っ込んでおけば良い. ただ, これをそのまま上のスクリプトで使うとアクセス権限がおかしなことになるかもしれない. mktempで作成されたファイルの…