64bitカウンター Ver1.0

★異色ベンチマーク★

フリーソフトウェア (IA32版,x64版,IA64版)

Windows XP Professional x64 Edition ソフトウェアコンテストで、
本ソフト「64bitカウンター」が日本AMD賞を受賞しました。
\(^o^)/ どうもありがとうございました。 \(^o^)/


国内旅行・海外旅行 即時予約 [旅行.com] 
英会話.com 健康.com 出会い.com アダルト.com マネーサプライ [日本語ドメイン取得]

高級品質スーツカバー・ドレスケース・ふとん収納袋の小売販売
【愛車を査定しませんか】

無線LAN内蔵 B5モバイルPC!Afina AL7170CL!

 本64bitカウンターは、ベンチマークプログラムなのですが、 作ろうとしたほんとうのきっかけは、「はたして、64bitとはどれ ぐらいの数なのだろうか?」という疑問でした。

32bitは2の32剰 =4,294,967,296
64bitは2の64剰 =18,446,744,073,709,551,615

 単純に言ってしまえば、それだけのことですが、実はとてつもない大きな数だったの です。PCで数えさせてみれば、どうだろうか、最初は待ってられるレベルかなと思って いました。ちなみに32bit(10進数で約43億弱)は最近のPCで数えさせるとほんの数秒です。 しかし、この数秒がとんでもないことに...

 PCの64bit化に移行しようとしている昨今、その大きさを体感してみたいという方も いらっしゃるかと思います。あらためてとてつもない数であることを体感するでしょう。 また、コンピューターの歴史上、現在の素子を使うならばアドレッシングに関して64bitが最終局面ではないか と予感させられてしまうところがあります。(注:演算ユニットに関しては、32bit時代から既に128bit化されている)

★★★ まだまだ当たりクジが残ってるよ! ★★★
全国百貨店共通券、クオカード、図書カード、JTB旅行券が当たる

 以前、RC5-64クラッキングで 盛り上がった時期がありました。結局は同じ性格を持っているかもしれません。参加された方なら 手分けすればと思いつくかもしれませんが、カウントアップでそれは反則でしょう。

 このプログラムはベンチマークプログラムですのでマシンごとに比較してみるのも面白いと思います。 せっかくの64bitなので、32bitモジュールだけでなく、64bitネ イティブモジュールもx64/IA64版双方共に同梱し、可能な限り カウントアップのパフォーマンスが上がるようにしています。

ダウンロード 64bitCounter10.zip 205,857 bytes


<プログラムが書ける方へ>
 このプログラムが十分なパフォーマンスを出し尽くしているか否かは自信がありません。 特にカウントアップ部をマルチスレッド化しても、逆効果だったところが、なんとも残念です。 コードを変更すればうまく行くのか?それとも理論的に無理なのか?結論も出ていません。 Ver1.0からソースコードを同梱(srcフォルダ下に)していますので、改変していただける方が居ま したら、ぜひトライして見て ください。また可能でしたら公開していただければ幸いです。その場合、当方のバージョンは WEBから削除いたしますので、ご一報下さい。もし公開がご面倒な場合は、ご連絡いただければ 代行いたします。コーディングの経過はsrc\README.TXTに書いておきましたので必ずご参照下 さい。

<★重要★マルチCPU、デュアルコアCPU、HT対応CPUを使われる方へ>
 本プログラムは、ひとつのメモリ/変数(64bit整数)のカウントアップと比較処理 の連続になっています。CPUの消費率の高い処理の反面、単調な処理の羅列が競合を生むのか、 マルチスレッド化(処理の並列化)を行っても、HT対応CPUやマルチCPU、デュアルコアCPU上において 逆に遅くなってしまうという結果が出ています。ソース(C言語)を色々と変えてみて チャレンジしたのですがとりあえず断念です。ですから本プログラムでは、これらのCPUを使用しても CPU消費率は論理CPUの数分だけ比率が下がってしまい効果は現れないはずです。
 リベンジというわけではありませんが、残念に感じる方は、ぜひこれらの 環境で「64bitカウンター」を2つ以上同時実行して、シングルコアCPUと比較して 見て下さい。こちらの方は大変興味深い分析が出来るはずです。→ 参考:64bit.jpサイトでの結果

参考までに他の大きな数との比較
比較項目通称単位10進数での表記
32bit4GB(ギガバイト)バイト4,294,967,296
DNAの塩基の数約60億個6,000,000,000
宇宙の星雲の数約3000億個300,000,000,000
人間の細胞の数約100兆100,000,000,000,000
日本の借金約800兆円800,000,000,000,000
地球(太陽系)の寿命あと50億年157,784,630,400,000,000
64bit16EB(エクサバイト)バイト18,446,744,073,709,551,615

※64bitカウンターを利用して64bitを数えても、数百年ではおそらく稼動PCの寿命が足らないでしょう。では64bit秒後の世界を想像してみましょう? と言いたいところですが、上の表を見ればわかるように、もはや太陽系自体存在しません。残念。

<★CPU発熱用に貢献>
 寒い地方では、よくノートPCなどを暖房器具替わりにするらしいのですが、CPUの発熱用には この「64bitカウンター」が最も適しているらしいです。最近のCPUやOSは大変よく出来ていて、使って いない状態では発熱してくれません。進歩の賜物なのでしょうけど、ありがた迷惑 な人もいらっしゃるようですね。稼動中にDISKはほぼ使いませんので一番効率よく温まるらしいです。 なんだか予期せぬ使い方で感謝されたことがあります。まあ役立つんだったらいいかぁ。

<★日本AMD賞★Windows XP Professional x64 Edition ソフトウェアコンテスト>
 本ソフトはx64版も同梱していますので「x64ソフトコンテスト」「4次元ウィンドウ x64 Edition」の応募のついでに応募していたのですが、 なんと意外にもこの「64bitカウンター」で日本AMD賞を いただきました。CPUメーカーの観点として、32bitコードより64bitネイティブコードの方が高速であることのわかりやすい 例であることを評価してくれたようです。確かにこれ以上わかりやすい例はないかもしれませんねぇ。
 少し技術的なことで、あとで判ってきたことですが、64bitモジュール(x64版)が倍速化するのは、SSEやSSE2インス トラクションのデフォルト利用だけでなく、変数のアライメント(並び順)にも大きく影響し、ソースコードにて 変数定義の順番を少し変更するだけで極端に高速になったりするようです。この64bitカウンターの ソースコード(同梱)は一番わかりやすい例になるはずです。64bitの世界ではコンパイラの最適化が発揮できる ようなコーディングを心がける必要がありそうです。

特選バーチャルショップ 

[HOME] 
[4次元ウィンドウ x64 Edition]