無限との戦い
− 自宅の自作PCが累計稼動5万時間達成に当たって思ったこと (2008/5)
5万時間の大半はGIMPSのPrime95に費やしているわけだが、結局のところ、何でこんなことやってるのか、考えてみた
メルセンヌ素数は(恐らく)無限にあるわけで、いつまでやっても終わりはないのだとすると、(もしこのプロジェクトに終わりが来るとして)その時どこまで達成したのか、ということが唯一の意義になるのだろう。
そして、その達成度(見つかった最大のメルセンヌ素数、または、クリアした最大のメルセンヌ指数)というのは、結局客観的、もしくは宇宙的(?)に見て、人類の知力(叡知?)の一つの到達度、という見方もできるだろう。
VoyagerのGoldenPalte みたいに、人類最後の日(そんなものが少なくともSFみたいに劇的な形で来るとも思われないが)の直前に、他のさまざまな成果とともに、見つかったメルセンヌ素数の指数列を刻んで打ち出すも良し、アレシボから電波で変調して送り出すも良し、と思えば、少しは張り合いも出るのではないか?
------------------------------------------------------
− GIMPSでのM45,M46発見に当たって思ったこと (2008/09/27)
SCP(標準遭遇手順:ETとのFirstContactの際に意思疎通を図るための手順)とか、SETIにおける送出メッセージの素数ヘッダとかに、メルセンヌ素数のリストを載せたら良いんじゃないかということ。
おそらく、現宇宙の(あるいは物理定数の異なる平行宇宙においてさえ、少なくとも整数論の成り立つ状況であれば)、そこに発生する知的生命が周囲の環境を部分的にせよ制御できる程度の文明を構築しているのならば、素数の概念に到達していないはずはなく、その計算量的極小としてのメルセンヌ素数に注目をしていないはずもないような気がする。(コンピュータが2進法で動作している前提があるが、これも通常の物理的には、2進法が最適だろう)
であるならば、SCPやSETIメッセージの後ろのほうに、メッセージを送出した我々人類が、その時点において知的レベルのどこまで到達しているかという証として、その時点における最大のメルセンヌ素数の指数リスト(2,3,5,7,13,17,19,31...32582657,37156667,43112609 、もちろん適当に二進符号化)をつけていおいたら良いんじゃないか、ということ
(もちろん、計算アルゴリズムやハードウェアのブレークスルーによって、はるかに大きな上限に到達可能な可能性も否定できないが、それはそれで、人類の現状を反映したメッセージになっているような気がする)
------------------------------------------------------
− PrimeNetの現状 (2008/11/03)
PrimeNetのバージョンが5にあがって、クライアントのPrime95もV25.7にバージョンアップした。
Prime95は、マルチタスクに対応したらしく、(設定ファイルworktodo.txtを書き換え、セーブファイルを移す必要があったが)プログラムをひとつ立ち上げるだけで、複数のサブウインドウが開き、各プロセッサにタスクが割り当てられて並行処理するようになった。
ただし、2つのタスクなのに(ウインドウはメインを含め3つだが)、CPUは4つとも100%稼動で、全体としても100%の稼動となってしまった。
v24のときは、2つのプログラムを立ち上げると、2つのCPUコアが100%稼動となって(タスクが4つのコアの間を行ったり来たりはするものの)全体としては50%だったので、発熱の点とかがちょっと心配になるが、今のところ目だったコアの温度上昇も無く、このままでしばらく様子を見るつもりである。
(1つのLLテストのタスクが2つのコアに配分されて(おそらくFFTとかが)並行処理されているせいか、1ステップの所要時間が3割程度改善されたのは朗報であるが)
PrimeNetのサーバもバージョンアップに伴い、ユーザ登録を再度要求されるなど、いろいろめんどくさい感じがするが、新しいレイアウトになったPrimeNetのステータスページを見て考えたことには、
・メルセンヌ指数も2000万以下は、ほぼダブルチェックが終わり、1000万以下のECMファクタリング(いわゆるLL合成数をマジで因数分解しようというものか?)が始まるらしい
・1億桁までのプレファクタリングも、始まってるらしい(とりあえずメルセンヌ指数で10億までステータスページのリストに表示されている)
・現在(2008/11/03)の一次LLの波頭は4000万の後半、ダブルチェックは2000万台、スループットで20〜40Tflops(テラフロップス)の程度
・参加人数(アカウント数)は6万強(2008/10/19のバージョン4のデータ)あるが、実質アクティブなのは数千名程度か?
しかし、思うにメルセンヌ指数3000万のあたり(10進1000万桁)でも、素数定理によれば素数の分布密度は1/2000万、平均すれば2000万個に1つ程度しか素数はない、いわゆる素数砂漠である。
(素数でないものも含む)メルセンヌ数自体も分布はそれ以上に希薄なわけで、1/2^3000万程度(ホント、程度!、天文学あたりでも桁数の感覚ってかなりアバウトだが、いやはや)の割合しか存在しない、そのメルセンヌ数の中から素数になるものって、単純な確率でいけば上記の様に1/2000万程度だが、あれこれ工夫して候補を絞って、ようやっと1/10万程度の確率にまで高めて、今までにGIMPSでクリアしたメルセンヌ数が130万個ほど、見つかったのが12個という次第か!
(上の表現ではあまりぴんとこないが、仮に1億桁くらいのカウンタを用意したとして、1つづつカウントアップして素数判定するとすれば、1000万桁のあたりではカウンタの末尾7〜8桁がカウントアップするごとに、普通の素数が1つ見つかり、1000万桁の最上位(!)の数字が2倍になるごとにメルセンヌ数に行き当たり、そのメルセンヌ数が素数である確率が(そのあたりでは)1/2000万ということ、
ちなみに次の懸賞金がかかる100Mdigit越えというのは、要するに1億桁だから、今10分の1しか桁が埋まっていない上記の1億桁カウンタがオーバーフローした後ということになる。)
とてつもない巨大数を相手にしてるような気もしてくるが、ホントの巨大数というのは、その10進表記が紙の上に可能なようなものじゃなくて、冪のべき乗、冪べき乗?の果てにある感じで、いわば巨大数演算アルゴリズムをどう圧縮表記するか、という世界らしい。