Home > Archives > 2008年10月

2008年10月

なにげに

セブンイレブンの500ml98円の麦茶がおいしい気がする.

風邪が

喉は良くなったのだが腹に来たのかしら? ダメだこりゃ.

久々にgolf

10分ずつぐらいでAlnum challengeを48B,character subsetsを108B.Alnum challengeは8文字を3回10倍する方法以外思いつかない.あとはsとかで使っている記号をアルファベットとかに置き換えたら終わりだ…とか思っていたら出すもの間違って記号だらけのものが記録されてしまった.character subsetsは何も考えずに再帰的に文字をつけないのとつけたののリストをくっつけていく感じで.

さて,次の仕事に行こう.

さて

メーリングリストにあるパッチを当ててGCCをコンパイルするってのは世間的にどれくらい面倒なことなのだろうか? 回避策を用意しておくべきか…

そういえば

OpenMPのreductionで||とか使ったら評価はどうなるんだ? ||でのリダクションって並列化するとまずいんじゃないだろうか?

やってみた.関数fは引数がtrueならtrueを返して即座に抜け,それ以外は重たい処理をしてからfalseを返す.配列bsはbs[0]のみtrueで他はfalse.これで,逐次実行時にはi=0でrにtrueが入り以降はfの処理をしないので即座に計算が終わる.一方,並列実行時にi=0を含まない反復範囲の計算が行われるとしたら,その部分の計算では重たいfの処理が大量に行われ,計算時間がかさむはず.

#include<iostream>
#include<vector>
 
bool f(bool b)
{
  unsigned int u = 0; 
  if(!b) {
    for(int k = 0; k < 100000; k++) {
      u = (u + 2) % 7;
    }
    u = u ^ (((u/4)<<2) | (u&3));
  }
  return b ^ (u!=0);
}
int k = 2;
int main(int argc, char *argv[])
{
  int n = 10000000;
  std::vector<bool> bs(n);
  for(int i = 0; i < n; i++) {
    bs[i] = i == 0;
  }
  bool r = false;
#pragma omp parallel for reduction(||:r)
  for(int i = 0; i < n; i++) {
    r = r || f(bs[i]);
  }
  int res = r;
  std::cout << res << std::endl;
}

結果:逐次は一瞬,並列だと遅すぎて時間計るのも馬鹿らしい.

ということで,||でのリダクションを並列化するのはあまり意味がない気がする.さらに,本来評価されないものが評価される可能性が出てくるので,セグフォって落ちるプログラムが出来上がるかもしれない.なぜにOpenMPは||もリダクションに使えるようにしているのだろう?

ボイドキューブ

商品のレビューとかで「難しい」とか「ルービックキューブでは起こらないことが起こってしまう」とか言っているけど…,本当に難しいのだろうか? ツクダ式でやる分にはただのルービックキューブと同じに解けると思うのだけど.

唯一の落とし穴は,一番最後にエッジキューブ二つが通常の手順で揃えられなくなるということだろうけど….これってセンターキューブが存在していればセンターキューブがずれている状態なので,センターのずれを直すような手順を踏めば直る.

ツクダ式だと見かけ上の不思議パターンは一つのみで,最後に中間層をそろえるときに,対面になっているエッジキューブが共通の面を完成させつつ入れ替わっている状態のはず.この状態は,そろっているように見える残りのエッジキューブ2個とを巻き込んでエッジキューブを入れ替えた後にルービックス・マヌーバー2回で直る.

発掘

足りないなぁと思われていた長袖の服がこの度スーツケースの中から数枚発掘された.誰だ片付けてなかったのは….また仕舞いどころに悩みそう.

GCCのOpenMPでboolの和をとると…

C++のOpenMPでは最大値が取れないと言ったら,「boolなら+で最大値取れるじゃん,嘘言うな.」と返ってきた.意味があるかどうかはさておき,確かに出来ることなので実際にやってみた.

ソースは次のとおり.bsにbool値を適当に入れて,それの和をbool変数rに得る計算をreduction(+:r)で並列化する.最後に結果の出力として r を吐き出す.コンパイルはg++に-fopenmpo付けてやった.

#include<iostream>
#include<vector>
 
int k = 2;
int main(int argc, char *argv[])
{
  int n = 10000000;
  std::vector<bool> bs(n);
  for(int i = 0; i < n; i++) {
    bs[i] = i % k;
  }
  bool r = false;
#pragma omp parallel for reduction(+:r)
  for(int i = 0; i < n; i++) {
    r += bs[i];
  }
  int res = r;
  std::cout << res << std::endl;
}

結果:逐次で動かすと1が返ってくるが,OpenMPで並列化したら8コア(スレッド)で8が返ってきた.

普通に考えればrはboolなのでintへの変換時に0か1にしかならないと思うのだけど…,なぜに8? そもそも逐次と結果違うってのもどうかと.なんとなくreductionの結果をとるときにrの型がboolでなくintとかにされている気がする.ま,詳しくはまた今度調べよう.

もう一回休み

このタイミングで人に移すのもあれなので家で大量のしょうがを入れたスープを飲みながら寝る.

一回休み

風邪引いた.咽ががが…

池袋へ買出しへ

とりあえず東大正門から15分弱でサンシャインに着くことはわかった.が,そこから東武までは意外と遠い…

そしてヴィノスやまざきでUelversheimer Schloss Huxelrebe TROCKENBEERENAUSLESE 2005 MANZとかいうのが10本限定とか書かれていたので購入.でも棚には11本あった気がするのはご愛嬌.海外のサイトを見る限りハズレな予感.

瀬佐味亭で黒担担麺・排骨

おいしい。が、辛さは2倍のホットにしたけどまったく辛くない。今度は4倍でいってみよう。

半寸胴鍋購入

でかい鍋は良い.

TOKINA AT-X 116 PRO DXで

11mmの超広角で昭和記念公園のコスモス撮影.

満開にはまだ早いイエローキャンパス.

TOKINA AT-X 116 PRO DX 11-16mm F2.8

白いほうは最盛期過ぎたころ.

TOKINA AT-X 116 PRO DX 11-16mm F2.8

とりあえず常用している90mmに比べて画角がむちゃくちゃでかいので想像より余計なものが写る.ついでに,最短撮影距離が30cmと長めで想像してたより小さいものが大きく写せない.ほかのメーカーの超広角はもうちょっと寄れるのだけど….そして開放F2.8だけど絞っておかないと眠たい.

色収差

エッジが青かったりするなぁと思っていたら、原因はカメラのレンズではなくメガネのレンズだった…

パーティション復活用

パーティションテーブルぶっ壊れたときの回復用.TestDiskなるツールがディスク上のパーティション探しをしてくれるらしい.

が,昨日狂ったMacはディスクの認識自体が出来ていないという物理層レベルでのトラブルっぽいのでどうの仕様もない.OSが情報を読み込めないHDDじゃパーティションも何もあったもんじゃない.はぁ

Macのキーボードに挽いたコーヒー豆をぶちまけて

キーボード払ってたらMacがシャットダウンした.再起動したらハードディスクがひとつ見えなくなっていた.なぜ?

読み終わったら

3時過ぎてんよ.量が多いのか読むのが遅いのか…

つか輪講に起きられるのだろうか?

読み終わらない

下巻のくせに700ページ超えてるって….持ちにくいので紙を薄くするか分冊してほしい.

5時間歩く

昭和記念公園行ってひたすら歩きまくった.夏場は3時間未満でダウン気味だったけどだいぶ涼しくなったもんだ.

Flashのゲームで遊ぶ

StarBaronとかいう惑星を占領していくシミュレーションゲームらしきもの.マップに惑星がたくさん散らばっていて,自分の惑星で戦艦らしきものを生成しつつクリック操作で敵の惑星めがけて飛ばして侵略を図る.惑星の機能を防御専用とか戦艦生成専用とかに変更できるので,いちおう戦術は考えられる.基本はマウス操作のみでカチカチやるだけ.

が,キャンペーンモードの最終面近くで手に入る新機能の惑星への変更がマウスで出来ない.キーボード使えばFとRで変更できるのに気づいたけど.どこにもそんな説明なかった気がするのは気のせいか? しばらく無理やりクリアしてたぞ.

VMwarePlayer 2.5でDirectX9サポートらしいが

確かにdxdiagでのテストはDirectX7~9で通る.が,東方シリーズとかテクスチャおかしくなるのは相変わらずで….うまくやる方法があるのだろうか?

あと20時間

健康診断

診断期間の末期だからなのか非常に混んでいた.そして俺の視力は1.5も無いはずだ.

がくがくぶるぶる

説教タイムは怖いなぁ,周りで見ているほうが.

勝手に復帰するPC

地デジチューナのドライバをアップデートしたせいなのか知らんけど,スタンバイでもスリープでも5分以内に復帰してしまう.どれが悪いんだ?

うーん

Amazon.co.jpのメール便を使う基準が良くわからん.

猫よけか何か知らんがダメージでかいぞ

超音波使って猫とか犬とか鼠とかを寄せ付けないようにするための○○よけとかがあるらしいけど周波数低すぎて可聴域になってるのは売るなよな.詐欺だろ.それを設置しているらしい家の前を通り過ぎるときに突然のダメージを食らったぞ…

気分悪くて一回休み…

おまけ:http://www.forest.impress.co.jp/article/2006/07/24/mimichecker.html

グラボの買え時か?

T3のベンチマークで設定を最高値にすると20pfs程度しか出ない.今のグラボいつ買ったやつだっけ?

ハリオの円錐ドリッパー

だからといって何が変わるでもなく….まあ,見た目が面白いだけで十分だけど.

一年半前につけたパスワード

忘れるよなぁ,普通.とりあえずパスワード復帰させてEasyChairのアカウント復活.締め切りは2 October 2008, 23:59 Samoan timeとかいってるので日本時間で3日の夜八時か.さて仕事しよう.

Home > Archives > 2008年10月

Search
Feeds

Page Top