HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

ドキュメント 象歩 Web瓦版
 BBSボード RDF
こんにちは (23)
おためし板 (321)
質問箱 (94)
テスト (30)
You散歩 (4)
建築 DIY (6)
MTB (32)
(9)
節電対策 (2)
このサイトに関する話 (185)
Linux (396)
PC用ハードウェア (6)
Vine Linux 野良系 (64)
PC 工作 (31)
ドローン (0)
自家製GAFA (0)
BBS の改良 (105)
Vine Seed (520)
Zope とプロダクト (95)
Web の利用技術 (131)
DB とファイルシステム (63)
Python と C/C++ と... (29)
Zopeプロダクト開発メモ (3)
UTF-8 化 (42)
Mail 環境 (8)
COREBlog (109)
Zope3 (51)
Windows 64bit (18)
Mac (2)
Squeak スクイーク (67)
Django ぶらり一人旅 (3)
64bits (52)
Mono 思いにふける (10)
Mint Linux (6)
CentOS (2)
ディスクトップ (4)
象歩将棋 (478)
将棋よもやま (210)
サイトのデザイン (31)
心配な話 (66)
うそ (21)
うそ総集編 (0)
昔のゲストブック (20)
ボート部 (23)
Web 日記 (199)
 スパム
逮捕しる (0)
スパムお溜り (0)
ごみ箱 (6)
 リンク
kiyoさんのサイト
ペンタ郎の漫漕ブログ
端艇部員日記
TIT漕艇部の練習動画 @YouTube
墨堤の雄 @FaceBook
ペンタ(五大学ミドル) @FaceBook
Facebook
Vine Seed パッケージビルド状況
Vine Linux パッケージ情報
VineLinux バグトラッキングセンタ
VineSeed 開発用 Trac
VineSeed Specs
RPMパッケージの作成方法
Linux Standard Base
Planet Vine
Vine Linux ユーザーフォーラム
Vine Users ML アーカイブ
VineSeed ML アーカイブ
twitter#VineLinux
勝手に将棋トピックス
詰将棋おもちゃ箱

64bits

linux で 64 ビット環境を構築。そして64ビットマルチプロセス対応プログラムを作る - 志を立てるのに、遅すぎることはない -- by ピカソ河


このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。 以下の文章は注意書きです。

名前はかならず記入してください。ハンドルネームでも構いません。 またパスワードを入力することをお勧めします。 その場合他人による *なりすまし* と区別出来るかもしれません。 さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。

コメントスパム防止のため記事の内容を機械的にモデレート (スパムである確率を計算) する処理を通します。 どのような投稿であれ、たまたま計算誤差によりスパムとみなされ 秘密の場所 に収納される可能性があります。 その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。

名前  パスワード(任意)

全52件 - 01 02 03 04 05 06

43  owa  2007/10/29 22:37 id: mJs8kxp1Zus  prob: 1.5%
ビットの連続抽出
0.230秒/100万 (gcc -O3 Athlon64x2 3800+ x86_64 vine seed)
0.513秒/100万 (gcc -O3 Athlon64x2 3800+ i386 vine 4.1)

ビット位置を一個ずつ取り出すイテレータ。
肝は bits & (-bits) で LSB (Least Significant Bit) が求められること。
---
#if defined(__x86_64__)
typedef unsigned long ULong;
#elif defined(__i386__)
typedef unsigned long long ULong;
#endif

class CBitPos {
    ULong bits;
public:
    CBitPos(ULong x) : bits(x) {}
    ULong next() {
        ULong x = bits & (-bits);
        bits &= ~x;
        return x;
    }
};
---

一回あたり44ビットONのデータで測定。つまり一個のイテレータで44回ループ処理した。
for (long i = 0; i < 1000000L; i++) {
    CBitPos a(0x7777777777773333LL);
    int pos = a.next();
    while (pos)
        pos = a.next();
}

ちなみに MSB (Most Significant Bit) を求める方法を用いると三倍くらい遅くなる。
---
    x |= (x >> 1);
    x |= (x >> 2);
    x |= (x >> 4);
    x |= (x >> 8);
    x |= (x >> 16);
    x |= (x >> 32);
    x &= ~(x >> 1);
---
42  owa  2007/10/29 22:18 id: mJs8kxp1Zus  prob: 12.4%
ビット数のカウント
0.0085秒/100万 (gcc -O3 Athlon64x2 3800+ x86_64 vine seed)
0.0251秒/100万 (gcc -O3 Athlon64x2 3800+ i386 vine 4.1)

立ってるビットを数えるには隣同士の和を求めることを繰り返す。
---
int bitcount(unsigned long long x)
{
    x -= ((x >> 1) & 0x5555555555555555LL);
    x = (((x >> 2) & 0x3333333333333333LL) + (x & 0x3333333333333333LL));
    x = (((x >> 4) + x) & 0x0f0f0f0f0f0f0f0fLL);
    x += (x >> 8);
    x += (x >> 16);
    x += (x >> 32);
    return x & 0x0000007f;
}
---
参考サイト:
http://www.nminoru.jp/~nminoru/programming/bitcount.html
http://aggregate.org/MAGIC/#Most%20Significant%201%20Bit
http://graphics.stanford.edu/~seander/bithacks.html
41  owa  2007/08/22 01:01 id: mJs8kxp1Zus  prob: 2.0%
80コアチップ
http://pc.watch.impress.co.jp/docs/2007/0215/kaigai337.htm
http://pc.watch.impress.co.jp/docs/2007/0214/isscc02.htm
8x10=80CPU だそうです。おしいな 9x9=81CPU だと面白いかも^^;

64コアCPU なんてのも
http://pc.watch.impress.co.jp/docs/2007/0821/tilera.htm
http://www.tilera.com/products/processors.php
40  owa  2007/03/14 15:92 id: mJs8kxp1Zus  prob: 1.8%
円周率 300 万桁の計算
http://www.h2np.net/pi/
これは hoihoi-p 氏のブログから
http://hoihoi-p.yosiki.org/blog/435

http://h2np.net/pi/pi_quick_start.tar.gz を試してみると
Pentium4 2.8E  (32bit): 14.77 sec
Athlon64 3700+ (32bit): 10.15 sec
Athlon64 3700+ (64bit):  5.92 sec
予備マシンながら、なかなかの性能^^
39  owa  2006/07/26 23:27 id: mJs8kxp1Zus  prob: 18.3%
Debian to Run on AMD64
http://linux.slashdot.org/linux/06/07/26/0057215.shtml
http://linux.slashdot.org/comments.pl?sid=192198&cid=1578253...
明日読もう。
38  owa  2006/07/06 01:12 id: mJs8kxp1Zus  prob: 0.0%
マシンの起動時にエラーが出るので良く見たら which コマンドなどがセグメンテーションエラー。
リビルドしてみると /usr/lib/libiberty.a なんてゴミを拾ってた。
こいつは本来 binutils-*.x86_64.rpm 入れた時に削除されてるはずのもの。なんでだろう...
やっぱり大掃除しないといかんなー

追記: 一応 /lib, /usr/lib の下は掃除完了
37  owa  2006/05/29 23:57 id: mJs8kxp1Zus  prob: 0.1%
>>36 util-linux-2.12p-0vl4 ... 大量に依存関係のエラー
古い i386 版が残っていたためでした。少し間隔が空いて惚けてますね;;
gtk2 関連が整備されて来たので、試しに Sylpheed をビルドしたら OK
これでセカンドマシンとして十分機能する状態になりました w(^o^)w
36  owa  2006/05/28 23:14 id: mJs8kxp1Zus  prob: 0.0%
久しぶりに vine x86_64 を apt-get; dist-upgrade してみた。
いつの間にかいろいろ更新されてました。感謝。
http://owa.as.wakwak.ne.jp/zope/docs/Vine/release

寝る前に、もう一度 dist-upgrade を試みたら util-linux-2.12p-0vl4 を入れるとおっしゃる。
そして大量に依存関係のエラーが出ました;;
util-linux-2.12p-0vl4 はもう入ってるので、うちの rpm がおかしくなってるのか?
udev 関連の下調べがまだ出来てないし、基本的なところに少し勉強時間が必要ですね。
しかし今週も、何も出来ないことが判っています。すいません。

# と思いながらメインの Seed の方も apt-get しようとしたら沢山入れ換えがあるみたい。
# 今日は何もしない、何も足さないで寝るのが吉かも。
35  owa  2006/05/19 22:59 id: mJs8kxp1Zus  prob: 0.2%
Vine は lib/lib64 ですが lib32/lib の組合せもあるらしい。その方が自然かも。
ただ 32 ビットモードで動作するプログラムは lib/lib64 の組合せでないと動きません。
http://japan.linux.com/desktop/06/05/19/0241229.shtml?topic=...

その中で紹介されてるのが mozilla の i386 版 plug-in を x86_64 で使うためのラッパー
http://www.gibix.net/dokuwiki/en:projects:nspluginwrapper
とりあえずリンクだけ
34  owa  2006/05/14 23:03 id: mJs8kxp1Zus  prob: 0.0%
念のため memtest86 を試した
http://www.memtest86.com/
試すのは簡単。以下の手順で 5 分もあればできます。

まずメインの i386 マシンで floppy をフォーマットします
現在の VineSeed 環境では /dev/fd0H1440 では無く /dev/fd0u1440 です。知りませんでした;;
$ fdformat /dev/fd0u1440
$ mformat -t 80 -h 2 -s 18 a:

次に memtest86 をインストールします。
$ wget http://www.memtest86.com/memtest86-3.2.tar.gz
$ tar xvzf memtest86-3.2.tar.gz
$ cd memtest86-3.2/
$ make
$ make install
dd <memtest.bin >/dev/fd0 bs=8192
11+1 records in
11+1 records out
94356 bytes (94 kB) copied, 3.53392 seconds, 26.7 kB/s

これで /dev/fd0 にインストールされます
あとはできあがった floppy を AMD64 マシンにセットしてリブートすれば OK です。
#0 〜 #9 のテストが一応無事通りました (1 時間くらい)。
まだマシンの換気が悪いので、ほどほどで止めて置きます。

kernel と gcc がビルドできれば少し安心できるかと思いますが、それはまた後で。
http://www-06.ibm.com/jp/developerworks/linux/010608/j_l-hw1...