目次

1.πの世界記録４２億桁計算の概要

2.π計算の歴史

3.このソフトの概要

4.スーパーコンピューターとパソコンの比較

5.パソコンでの計算結果

6.出力ファイル"pi.dat"の様式

7.ガウス・ルジャンドルの公式

8.ボールウェインの４次の収束公式

9.πの４２億桁のデータが欲しい

10.東京大学金田研究室の紹介


πの世界記録４２億桁計算の概要

宣言した記録：

　42 億 9496 万桁

　二つの異なるアルゴリズムに基づく二つのプログラムを使用して得られた

　42 億 9496 万 7296 桁(=2^32桁)の値を比較したところ 42 億 9496 万

　7286 桁まで合致、即ち最後の 10 桁のみ異なっていた。それで、記録の

　安全性と記憶のしやすさを考慮し、切りの良い 42 億 9496 万桁を新記録

　と宣言した。

主計算について：

　計算開始（前半）　　　 　：1995 年 7 月 28 日 午後 10 時 59 分

　計算終了（前半）　　　 　：1995 年 7 月 31 日 午前 07 時 42 分

　経過時間（前半）　　　 　：56 時間 44 分 24 秒

　ベクトル CPU 時間（前半）：67 時間 33 分 04 秒

　計算開始（後半）　　　 　：1995 年 8 月 04 日 午後 08 時 38 分

　計算終了（後半）　　　 　：1995 年 8 月 07 日 午前 05 時 35 分

　経過時間（後半）　　　 　：56 時間 57 分 11 秒

　ベクトル CPU 時間（後半）：66 時間 15 分 37 秒

　主記憶容量　　　 ：1792.75 MB

　拡張記憶容量　　 ：25120 MB

　磁気ディスク容量 ：2 GB * 2 = 4 GB (二つの計算を連続して処理する為に使用)

　アルゴリズム　　 ：ボールウェインの 4 次の収束アルゴリズム

検証計算について：

　計算開始（前半）　　　 　：1995 年 8 月 11 日 午後 09 時 31 分

　計算終了（前半）　　　 　：1995 年 8 月 14 日 午後 03 時 54 分

　経過時間（前半）　　　 　：66 時間 23 分 29 秒

　ベクトル CPU 時間（前半）：77 時間 14 分 59 秒

　計算開始（後半）　　　 　：1995 年 8 月 25 日 午後 11 時 12 分

　計算終了（後半）　　　 　：1995 年 8 月 28 日 午後 03 時 09 分

　経過時間（後半）　　　 　：63 時間 57 分 22 秒

　ベクトル CPU 時間（後半）：75 時間 10 分 29 秒

　主記憶容量　　　 ：1792.75 MB

　拡張記憶容量　　 ：26152 MB

　磁気ディスク容量 ：2 GB * 3 = 6 GB (二つの計算を連続して処理する為に使用)

　アルゴリズム 　　：ガウス・ルジャンドルアルゴリズム

π 及び 1/π の小数点以下 40 億桁目の数字：

 π  : 94375 34306 22684 47216

 1/π: 71480 70425 69013 58924

                             ^

　　　　　　　　　　小数点以下 40 億桁目

π の小数点以下 40 億桁までの 0-9 の数字の分布：

 '0' : 400001233; '1' : 400002285; '2' : 399965405; '3' : 399984469

 '4' : 400006936; '5' : 399989052; '6' : 400033035; '7' : 399996122

 '8' : 400004741; '9' : 400016722; カイ自乗 = 7.55

1/π の小数点以下 40 億桁までの 0-9 の数字の分布：

 '0' : 400003502; '1' : 400016211; '2' : 400002106; '3' : 399991609

 '4' : 399987516; '5' : 399972897; '6' : 400003565; '7' : 400018249

 '8' : 399999949; '9' : 400004396; カイ自乗 = 4.01

pi 及び 1/pi の小数点以下 42 億 9496 万桁目の数字：

 π  : 55675 13149 35865 45528

 1/π: 96350 29339 14953 51156

                             ^

　　　　　　　　小数点以下 42 億 9496 万桁目

開発者と実行機種：

　プログラムは本研究室の高橋大介氏が作成。

　計算機は東京大学大型計算機センターに設置してある HITAC S-3800/480

　を使用。4 つのプログラムは、シングルジョブ実行環境で実行し、2 台の

　CPU を使用する並列計算で処理を行った。

連絡先：

　金田康正

　東京大学大型計算機センター

　〒 113 文京区弥生 2-11-16

　Fax　　　　： (03) 3814-7231

　電子メール ： kanada@pi.cc.u-tokyo.ac.jp

πの３２億桁計算のときの概要


πの３２億桁計算の概要

宣言した記録：

　32 億 2122 万桁

　二つの異なるアルゴリズムに基づく二つのプログラムを使用して得られた

　32 億 2122 万 5472 桁(=3*2^30桁)の値を比較したところ 32 億 2122 万

　5466 桁まで合致、即ち最後の 6 桁のみ異なっていた。それで、記録の

　安全性と記憶のしやすさを考慮し、切りの良い 32 億 2122 万桁を新記録

　と宣言した。

主計算について：

　計算開始　　　 　：1995 年 6 月 16 日 午後 10 時 41 分

　計算終了　　 　　：1995 年 6 月 18 日 午前 11 時 33 分

　経過時間　　　 　：36 時間 52 分 28 秒

　ベクトル CPU 時間：44 時間 30 分 50 秒

　主記憶容量　　　 ：1888.5 MB

　拡張記憶容量　　 ：26608 MB

　アルゴリズム　　 ：ボールウェインの 4 次の収束アルゴリズム

検証計算について：

　計算開始　　　 　：1995 年 6 月 24 日 午前 1 時 13 分

　計算終了　　 　　：1995 年 6 月 26 日 午前 6 時 56 分

　経過時間　　　 　：53 時間 43 分 46 秒

　ベクトル CPU 時間：48 時間 28 分 43 秒

　主記憶容量　　　 ：1891.25 MB

　拡張記憶容量　　 ：26612 MB

　磁気ディスク容量 ：164 MB * 5 = 820 MB

　アルゴリズム 　　：ガウス・ルジャンドルアルゴリズム

π 及び 1/π の小数点以下 30 億桁目の数字：

 π  : 37608 19468 51598 04548

 1/π: 43270 91443 13660 42701

                             ^

　　　　　　　　　　小数点以下 30 億桁目

π の小数点以下 30 億桁までの 0-9 の数字の分布：

 '0' : 299999143; '1' : 299995932; '2' : 299989126; '3' : 299992290

 '4' : 300002257; '5' : 299979016; '6' : 300025447; '7' : 299975510

 '8' : 300016550; '9' : 300024729; カイ自乗 = 9.24

1/π の小数点以下 30 億桁までの 0-9 の数字の分布：

 '0' : 300009029; '1' : 300002431; '2' : 299992729; '3' : 299998519

 '4' : 299970883; '5' : 299980175; '6' : 300010123; '7' : 300025696

 '8' : 300008447; '9' : 300001968; カイ自乗 = 7.40

π 及び 1/π の小数点以下 32 億 2122 万桁目の数字：

 π  : 34929 13958 77673 90319

 1/π: 21355 75330 20722 29175

                             ^

　　　　　　　　小数点以下 32 億 2122 万桁目

開発者と実行機種：

　プログラムは本研究室の高橋大介氏が作成。

　計算機は東京大学大型計算機センターに設置してある HITAC S-3800/480

　を使用。プログラムは、シングルジョブ実行環境で実行し、2 台の CPU を

　使用する並列計算を行った。

連絡先

　金田康正

　東京大学大型計算機センター

　〒 113 文京区弥生 2-11-16

　Fax　　　　： (03) 3814-7231

　電子メール ： kanada@pi.cc.u-tokyo.ac.jp


π計算の歴史

 計算機によるπ計算の歴史について簡単に紹介します。

        氏名	  年・月	    計算桁	      使用機種

リトワイズナー等	   1949	         2,037	   ENIAC

ニコルソン，ジーネル	   1954	         3,092	   NORC

フェルトン	   1957	         7,480	   Pegasus

ジェニュイス	   1958	　　  　10,000	   IBM 704

フェルトン	   1958	　　    10,020	   Pegasus

ギュー	   1959	　　    16,167	   IBM 704

シャンクス，レンチ	   1961	       100,265	   IBM 7090

ギュー，フィリャトル	   1966	　　   250,000	   IBM 7030

ギュー，ディシャン	   1967	　　   500,000	   CDC 6600

ギュー，ブーエ	   1973	　 　1,001,250	   CDC 7600

三好，金田	   1981	　 　2,000,036	   FACOM M-200

ギュー	  1981-82	　 　2,000,050	   未確認

田村	   1982	　 　2,097,144	   MELCOM 900II

田村，金田	   1982	　 　4,194,288	   HITAC M-280H

田村，金田	   1982	　 　8,388,576	   HITAC M-280H

金田，吉野，田村	   1983	　  16,777,206	   HITAC M-280H

後，金田	  1993.10	 (*)10,013,395	   HITAC S-810/20

ゴスパー	  1985.10	 　 17,526,200	   Symbolics 3670

ベイリー	  1986.1	　  29,360,111　	   CRAY-2

金田，田村	  1986.9	　  33,554,414	   HITAC S-810/20

金田，田村	  1986.10	　  67,108,839	   HITAC S-810/20

金田，田村，久保等	  1987.1	   134,214,700　	   NEC SX-2

金田，田村	  1988.1	 　204,326,551	   HITAC S-820/80

チュドノフスキー兄弟	  1989.5	 　480,000,000	 CRAY-2 IBM-3090/VF

チュドノフスキー兄弟	  1989.6	 　535,339,270	   IBM 3090

金田，田村	  1989.7   	　 536,870,898	   HITAC S-820/80

チュドノフスキー兄弟	  1989.8	 1,011,196,691　	   IBM 3090

金田，田村	  1989.11	 1,073,740,799	   HITAC S-820/80

チュドノフスキー兄弟	  1991,8	 2,260,000,000	   自作の計算機

高橋，金田	  1995.6	 3,221,220,000	   HITAC S-3800/480

高橋，金田	 1995.8	4,294,960,000	 HITAC S-3800/480

(*) スーパーコンピューターを利用した最初の計算のため参考記録


このソフトの概要

　３２億桁計算に使用したプログラムをパソコン上で動作できるよう移植したものです。もとのプログラムはFORTRANで書かれていますが、それをC言語に書き直しました。

　ガウス・ルジャンドルのアルゴリズムを採用しています。

動作環境

　Windows NT、Windows 95で動作します。Windows 3.1でも動作しますが、その場合にはWin32s(日本語版)が必要です。

最大計算桁数

　３３５５万桁までの計算が可能です。しかし、３３５５万桁の場合には計算のためにハードディスクの空き容量が３４０Ｍバイト必要です。

計算速度

　Pentium 90MHzでメモリが十分にあれば、１００万桁を４０分、２００万桁を１時間３０分、４００万桁を３時間４０分ほどで計算します。なお、この時間はハードディスクのアクセス時間も含めた計算時間です。

必要メモリ

　メモリは何Ｍバイトでも動作可能です．計算速度の最大限に引き上げるには、１００万桁当たり実記憶メモリが８Ｍバイト必要となります。しかし、実際は１００万桁当たり実記憶メモリが２Ｍバイトあれば十分な性能を発揮することが可能です。なお、メモリはソフト側で自動的に確保しています．メモリを大量に与えたい場合は、実行の前に必要のないプログラムは終了させておいて下さい。

ハードディスクの容量

　ハードディスクの容量は計算のために１００万桁当たり１０．５Ｍバイト必要とします。計算終了後には自動的に開放します。計算結果の保存に関しましては、１００万桁当たり１Ｍバイト必要です。なお、計算速度にはハードディスクのアクセス時間もかなり影響してきます。例えば、IDE型の方がSCSI型よりも一般的に早く計算できます(非同期I/O用に作りなおせばその差はどうなるかはわかりません)。アクセス時間のできるだけ高速なハードディスクをご利用下さい。

ソースプログラムの公開について

　π計算の世界記録に直接関係するソースプログラムとなっています。そのため一般に広く公開することができません。大変申し訳ないのですが、ご理解をお願いします。

　しかし、どうしても詳しいことが聞きたいという方がいましたら、金田研究室の学生さん達に連絡をお取り下さい。いろいろと話が聞けると思います。

その他

　このソフトの利用により生じたいかなる不利益については責任を負いかねます。計算途中に並行して重要な仕事を行なうのは避けて下さい。


スーパーコンピューターとパソコンの比較

　このソフトでは、３３５５万桁までの計算が可能です。この値は、１９８６年９月のスーパーコンピューターによる計算桁に匹敵しております。

　しかし、ここで注意しておく必要があります。これは、今のPentiumを始めとしたパソコンが９年前のスーパーコンピューターの速度に匹敵するということではありません。ここで、詳しいことは述べられませんが、ありとあらゆる工夫によりアルゴリズムを改良した効果が大きいと考えて下さい。

　なお、参考までに申し上げておきますと、HITAC S-3800/480 で πの１００万桁の計算は５秒でできます。３３５５万桁の計算については４分です。お手持ちのパソコンと実行時間を比較してみて下さい。

　なお、３３５５万桁を越える桁数についての計算は、ＦＦＴの精度の関係でパラメータの変更が必要となってきます．今回、プログラムを簡単にするためにパラメータを固定したため、残念ながら３３５５万桁が上限となっています。


ガウス・ルジャンドルの公式

　１．初期値設定

　　　  a = 1

        b = 1 / sqrt( 2 )

        t = 1 / 4

        x = 1

　２． a と b が求めようとする精度以上に十分等しくなるまで

　　　下の式を反復します。

        y = a

        a = ( a ＋ b ) / 2

        b = sqrt( b ･ y )

        t = t － x ･ ( y － a )^2

        x = 2 ･ x

　３．収束した a , b および t の値を用いて、πの値は、

        π = ( a ＋ b )^2 / ( 4 ･ t )

　　　となります．

　　この公式は２次の収束を示すので、求めようとする桁数を n とすると、log2 n 回程度の反復で構いません。例えば、１００万桁のπなら１９回の反復、３２億桁のπなら３１回の反復で求まります。


ボールウェインの４次の収束公式

　１．初期値設定

        a[0] = 6 － 4 ･ sqrt( 2 )

        y[0] = sqrt( 2 ) － 1

　２． 以下の級数を求める精度まで繰り返し計算する。

        y[k+1] = { 1-(1-y[k]^4 )^(1/4) } / { 1+(1-y[k]^4)^(1/4) }

        a[k+1] = a[k]･(1+y[k+1])^4 -

                      2^(2･k＋3)･y[k+1]･(1+y[k+1]+y[k+1]^2)

　３．a[n]、b[n] を求める精度以上に計算すると、πの値は、

        π = 1 / a[n]

　　　となります。


πの４２億桁のデータが欲しい

　金田研究室のFTPサーバーでは５０００万桁のπと1/πの値が全ての(anonymous)利用者に公開しており、４２億桁のπと1/πの値は、ゲスト(登録)利用者に公開しています。

５０００万桁のπと1/π

　ftp://www.cc.u-tokyo.ac.jp

  にアクセスして下さい。自由に取っていくことが可能です。

４２億桁のπと1/π

　1)電子メールの Subject を 'PI registration' としたものを次のアドレス

　　にお送り下さい。その様な電子メールは自動で処理されるので、電子メー

　　ル本体にはメッセージを書いても無視されます。

   　電子メールアドレス : request@www.cc.u-tokyo.ac.jp

　2)上記電子メールを受け付けると、登録に必要な同意書を電子メールで送り

  　返します。内容を熟読し、了解されたならば同意書に以下に示す項目を

　　記入し Fax(03-3814-7231)で送り返して下さい。

  　- 名前と読み仮名

　  - 所属

　  - 住所（郵便番号をお忘れ無く）

　  - 電話番号

　  - Fax 番号

　  - 電子メールアドレス

　  - 使用目的、コメント

　  - サイン（と印）

　3)同意書を受け取ったあとで、一ヶ月間有効なゲスト利用者 ID と、パ

　　スワードを電子メールでお送りいたします。


東京大学金田研究室の紹介

所属：

     　東京大学大学院理学研究科情報科学専攻

代表：

     　金田康正助教授（東京大学大型計算機センター研究開発部）

研究内容：

　　計算機を便利な研究の道具ととらえた時、計算機の能力を研究の各分野にどのように生かすのか、また現有の計算機の処理速度はどの様に向上させ得るのか、今までにはない使い方は、新しい使い方をする為に欠けていることは、使いやすくするにはどのような点に注意すべきか、といった事柄を研究テーマとして研究を行っている。研究で使用できる計算機として情報が所有している研究・教育用の計算機以外に、勤務先で保有しているは世界でも有数の性能を持つベクトル方式のスーパーコンピューターを始め、32 CPU の並列計算機、各種の計算機があり、研究上必要ならば必要なだけ計算機リソースを使用できる環境にある。

　　具体的には、私が現在興味を持っている以下に示すテーマを中心として研究を行っているが、私の学生時代の経験から、研究内容は学生の自主性を尊重する。なお現在の構成員は大学院生4名（修士1年と2年、博士1年 : 2名）、大型計算機センター所属の助手1名の計 6 名である。

１．　ハイパフォーマンスコンピューティング

・並列アルゴリズムによる数値計算・整数計算の高速化に関する研究

　　ハイパフォーマンスコンピューティングの応用、特に並列計算機によるハイパフォーマンスコンピューティングの応用として、メルセンヌ素数の探索と高速ソーティングを例として取り上げ、計算アルゴリズム、計算機アーキテクチュアー、ソフトウェアアーキテクチュアー等の研究を行う。

・高速計算機の性能評価手法に関する研究

　　センターに登録したライブラリーの中で高速フーリエ変換プログラムを使って国内外のスーパーコンピューター上でベンチマークを実施し、各種高速計算機の長所・短所を研究するとともに、高速計算機の性能評価手法を研究する。なお今後はベクトル化ではなく並列化された高速フーリエ変換アルゴリズムの提供が求められるので、このアルゴリズムの高速化手法を中心にアルゴリズム・インプリメントの研究を行う。

・ハイパフォーマンスコンピューティング用コンパイラーの研究・開発

　　次世代コンピューターの高度利用には OS やコンパイラー等のソフトウェアー開発が鍵となる。日本では計算機アーキテキュチュアーの専門家は多数いるが、OS やコンパイラー等のソフトウェア（特にハイパフォーマンスコンピューティング用ソフトウェア）の専門家は少ない。今年度は今までの考察を基に、実際のベクトルコンパイラー及び並列コンパイラー(Fortran及び体力があればCの)を作り始める。この研究テーマの為に、すでに7 種類のプロセッサーで動く WS、DEC 3000/400 (Alpha)、IBM Power/6000、SUN SS10/51、日立Flora 3100 (90 Mhz Pentium)及びNEXT Station Turbo (Motorola)、日立の3050R (HP-PA RISC)、Sony NEWS (MIPS R4400SC)を入手している。

・イジングモデルモンテカルロシミュレーションに関する研究

　　イジングモデルモンテカルロシミュレーションで使用している、我々が開発しセンターのライブラリーにも登録されている高速乱数発生ルーチンの、さらなる最適化を行う為の手法について研究する。

２．仮想WSシステムに関する研究

　　現在勤務先で仮想WSシステムと呼んでいる計算機システムに関しての研究。

３．　研究の研究

　　論文の引用頻度の調査に基づく「研究の社会学」に関する研究。

４．　計算機代数

・C言語で書かれた高速のLISP処理系を各種のUNIXへの移植を引続き試みることで、ポータビリティー並びに性能が高いLISP処理系に関しての研究。

・計算機代数で良く使用されるLISP処理系を利用して、各社が発売しているワークステーションの性能評価を行い、ワークステーションクラスの計算機の性能評価手法を研究する。

　　　                                           平成７年４月１日


大学院生
大学院生の紹介

高橋大介（博士１年）<daisuke@pi.cc.u-tokyo.ac.jp>

  メインプログラムを書いた人。π計算歴１３年。

  すべての計算機はπを計算するためにあると思っている。

　「なぜπを計算するんですか？」

　「πが好きだからです」

URL： http://www.ecc.u-tokyo.ac.jp/~ss57011

黒田久泰（博士１年）<kuroda@pi.cc.u-tokyo.ac.jp>

  Windowsへの移植を行なった人。π計算歴１１年。

  最近、Windowsにはまっている。FPD95をよろしく。

  「なぜπを計算するんですか？」

　「他にすることがないからです」（大うそ）

URL： http://www.ecc.u-tokyo.ac.jp/~ss57007

富松剛　（修士２年）<tomi@pi.cc.u-tokyo.ac.jp>

  Windowsへの移植を手伝った人。π計算歴１０年。

  常に計算機にπ計算をさせておかないと気がすまない。

　コミケには必ず参加。人は僕のことを"○た○"と呼ぶ．

　今，シューティングゲームを作っている僕も，ここの

　博士課程に進学予定．

URL： http://www.ecc.u-tokyo.ac.jp/~ss46017

渡辺裕明（修士１年）<nabe@pi.cc.u-tokyo.ac.jp>

  最近、金田研が何をするところかわかった人。π計算歴なし。

 「うーん、ここの研究室はπを計算する人が集まったのか．．．

　じゃ、僕は全く違う事をやろう！」と言いつつ、ＬＩＳＰ屋

　さんの卵に成りつつある．．．（本人　談）

　酒と温泉をこよなく愛する体育会人間。

URL： http://www.ecc.u-tokyo.ac.jp/~ss56033


FPD95

　PCM音源だけでMIDIの音質に迫れる音楽ソフトです。

　MIDI曲の再生が可能ですので、一度聴いてみて下さい。

　注：π計算とは何の関係もありません．


出力ファイル"pi.dat"の様式

 pi.datは以下のような形式で出力されています。

PI=3.

1415926535 8979323846 2643383279 5028841971 6939937510

5820974944 5923078164 0628620899 8628034825 3421170679

8214・・・

10桁毎にスペースを入れてあり、50桁毎に改行を入れてあります。

そして1000桁毎に空行を入れてあります。


パソコンでの計算結果

　日立 FLORA3100(Pentium 66MHz、メモリ32Mバイト、ハードディスク空き容量340Mバイト)での計算結果は以下のようになりました．

　　桁数	　　　　計算時間

　 １.６万桁	　　　　　　　　３６秒

　 ３.２万桁	　　　　　　１分０３秒

　 ６.５万桁	　　　　　　１分５７秒

　　１３万桁	　　　　　　５分４９秒

　　２６万桁	　　　　　１２分４８秒

　　５２万桁	　　　　　３０分０９秒

　１０４万桁	　　１時間１３分２２秒

　２０９万桁	　　３時間２０分５６秒

　４１９万桁	　　５時間４０分４７秒

　８３８万桁	　１５時間４４分２３秒

１６７７万桁	　４０時間２５分３８秒

３３５５万桁	１０５時間３５分１７秒

これより速いプログラムを作られた方はぜひ御一報下さい！