この木 なんの木 気になる木

カテゴリ: プログラミング

木構造 (データ構造) – Wikipedia

  • 二分探索木
  • 四分木
  • 八分木
  • AA木
  • AVL木
  • スケープゴート器
  • 赤黒木
  • T木
  • スプレー木
  • Treap
  • B木
  • B+木
  • B*木
  • 2-3木
  • 2-3-4木
  • 二分ヒープ
  • 二項ヒープ
  • フィボナッチヒープ
  • トライ
  • パトリシアトライ
  • 接尾辞木
  • 領域探索木
  • 区分木
  • 区間木
  • R木
  • R+木
  • kd木

まだまだこんなもんじゃない。


2014/1/08 (水)

xargsで並列処理

カテゴリ: プログラミング

1行に1つ、空白なしの引数を格納したテキストファイル argfile があるとして、
それぞれの引数に対してコマンド cmd を独立に実行したいとする。

$ cat argfile | xargs -n1 -P4 -I % cmd %

順番に処理すると時間がかかってしかたないが、xargs で並列処理が可能。

-n : コマンドに一度に渡す引数の個数の上限
-P : 同時に実行するプロセス数の上限 = 並列数
-I : 引数を表す記号を指定
     -I % cmd % で、stdin から読んだ引数が % に入る。
-d : stdin で読むテキストの分割に使う文字を指定

パスの通ったコマンドでなく、bashで定義した関数を使いたいときは、
export した上で bash を起動する。

$ cmd() { echo "Hello, $1!"; }
$ export -f cmd
$ cat argfile | xargs -n1 -P4 -I % bash -c "cmd %"

bashを呼んで実行させるので、用いる全ての関数を export -f する必要がある。
関数 cmd が内部で別の関数 cmd1 を呼んでいるような場合は、
export -f cmd cmd1 して、全てを export しなくてはならない。
また、シェルスクリプトを書いて並列処理させるような場合でも、
スクリプト中で定義した関数は xargs を使う前に
export しておかなければならない。

参考:

2013/1/23 (水)

pyxiv

カテゴリ: プログラミング
タグ: , ,

Pythonで動くmixiボイスのCUIクライアントということでpyxiv(=Python mixi voice CUI client)をgitに公開しました。某お絵描きSNSとは一切関係がないです。

こっちでちょいちょい開発日誌的なこともやっていきます。

mixiAPIは使っていません。登録が面倒なので。HTMLの処理ですべて動作させています。使うにはBeautifulSoupが必要です。

2011/1/25 (火)