コンテンツへスキップ

「電子情報通信学会誌6月号」を読む

本日は一風変わったところで「電子情報通信学会誌」を読むことといたしましょう。

この雑誌は電子情報通信学会が会員向に発行している学会誌です。

電子情報通信学会はメジャーな学会ですので、情報電子関連企業でしたら、まずたいていのところに置いてあるでしょうし、電気・電子系の学科のある大学の図書室には、間違いなくおいてあるはずです。

何でこれをご紹介する気になったかといいますと、小特集が「素数」だったからです。

あまり数学にご縁のない方のために、簡単に説明しておきますと、自分自身と1以外の整数では割り切れない正の整数(正の整数とは、自然数とも呼ばれる、1から始まる、順に1を加算していくことで得られる数を意味します)が「素数」と呼ばれるものでして、あらゆる整数は素数の積で一通りに表される、ということが知られております。

大きな素数の積は、掛け算によって簡単に計算することができるのですが、積が与えられたとき、これが何と何の積であるのかを求める(分解する)には、高速な計算機を用いても長時間(1,000年といったオーダー!)の計算が必要になります。

これを利用しているのがRSA暗号でして、今日広く使用されているのですが、大きな素数の積の分解が簡単にできてしまいますと暗号は簡単に解かれてしまうという問題があるのですね。

素数にはさまざまな性質があり、さまざまな予想がなされているのですが、これをきちんと証明するのは至難の業でして、ユークリッドを嚆矢といたしまして、オイラー、フェルマー、リーマンといった並み居る数学の天才たちを惹きつけました数学研究テーマの宝庫と呼べるような世界です。

まあ、問題が簡単であるわりには、これを取り扱う理論は難解を極めておりますので、ここでは解説を省略いたします。

さて、以前私は、積の分解など、計算機のハードさえ何とかすればいくらでも早くできるのではなかろうか、と考えておりまして、その一つの解が専用ハードウエア、もう一つの解がネットワーク接続されたPCではなかろうか、と予想していた。

でも、今回の小特集を読みますと、これらの試みは現実に行われておりまして、確かに高速化の手法として有効ではあるものの、それでもなお、積の分解には長時間かかるという結果となっております。

専用ハードウエアでなぜ高速計算が可能かといいますと、今日の計算機はストアードプログラミング方式と呼ばれる方式を採用しており、命令を一つずつ順に実行しております。もちろん最近のCPUは、パイプライン処理と呼ばれる方式を採用し、命令の読み出しから実行までの各ステップを異なる論理回路で流れ作業的に実行します。こうすることで、ある命令の実行中に次の命令を読み出すなどということが可能になる、処理が高速化するのですね。

専用ハードウエアは、パイプライン化をさらに徹底したもので、論理回路を大量に並べることで、同時に処理できる演算は同時に処理し、シーケンシャルな処理が必要な部分はパイプライン化する。普通の計算機のプログラムに相当するものが、論理回路の構成というハードウエアに展開された装置です。

以前でしたら、このようなハードウエアは、ロジックICをはんだ付けして作るか(大規模なものは現実的には無理ですが)、マスクを起こしてゲートアレーで作るしかなかったのですが、最近ではフィールド・プログラマブル・ゲート・アレー(FPGA)と呼ばれるLSIの大規模なものが登場しております。これは、種々の機能に切り替え可能な「論理ユニット」を多数内蔵するチップで、内部のRAMに値を書き込むことで、これらの機能と相互の接続を任意に設定できるという優れものです。

今日では、ハードウエア記述言語(ハードウエア・ディスプリクション・ランゲージ:HDL)により、ソフトウエアを作る気分で、論理回路を記述することができます。書きましたソースコードは、FPGAベンダが無償で提供している開発環境で、FPGA内部のRAMに書き込むべきビット列に自動的に変換されます。まったく便利な世の中になったものです。

で、今回の小特集には下山氏他の富士通の方々が実際にこれをやられた結果が紹介されております。で、その結果は、開発費込みで3億強の資金を投入して、1000年かかる計算が270年に短縮されそうだ、とのこと。

まあ、計算時間が700年あまり短縮されたというのは画期的なことといえるでしょうが、それでも270年はちょっと長いですね。もちろん、ハードを増強すれば高速化もできるのでしょうし、あと何年かたてば、安くて高機能なチップも続々登場するはずですから、この270年は、いずれ現実的な長さになるとは思います。

しかし著者らは、この手の装置の開発における最大の問題は市場性がなさそうなことであるとしております。まあ、仮に1年で暗号が解読できるといたしましても、これに何億もの対価を支払える顧客は、CIAその他の諜報機関くらいしかいそうにありません。困ったものですね。

一方、「素因数分解の世界記録はいかに作られたか」と題するNTTの青木和麻呂氏の記事は、桁数の大きな数の分解を海外の研究機関と競ったという話題を扱っております。こちらで使用いたしましたハードウエアは、彼我ともに、多数のPCを接続したPCクラスタと呼ばれるものです。ただ意外なことには、ここで使用しているPCは100台前後と小規模です。

大学にせよ、企業にせよ、役所にせよ、ちょっとした規模のところなら数千台のPCを所有している組織は珍しくないでしょう。そして、PCが使用されているのは、たいていは勤務時間中のみであり、休日はたいていは止まっているはずですし、勤務時間だからといってPCを使いっぱなし、ということもありますまい。

おそらくこの世界にあるPCの大部分は、9割方の時間を無駄に費やしているはずで、なんとももったいない話ではあるのですね。

これを有効に使用するためには、PCクラスターやグリッドコンピューティングといった技術でPCを接続し、遊んでいるPCを巨大な高性能計算機システムと化することです。これに必要なものは、このためのソフトウエア(オペレーティングシステムということになるのでしょうか)と、性能を引き出すためには組織内部のネットワークを高速化することでして、ネットの高速化にはお金がかかりますが、通常業務でのネットの利用が高速化される利点もあります。

何でこういうことがあまり行われていないのでしょうね。不思議な話ではあります。最初からこのようなインフラが整っていたなら、NTTの方が素因数分解の世界記録にトライする際に使用するクラスタPCは、100台などというけちなサイズの代物ではなかったはず。連結企業も含めて20万人の社員を擁するNTT東日本ならば、社内外のPCをフルに動員すれば、おそらくは1万台以上のPCからなるクラスタPC実現できるはずでした。

もちろん、これを素因数分解だけのために使う、などというと異論百出でしょうが、この手の巨大高性能計算機の用途はさまざまにあるはず。社内に用途がないのなら計算を受託しても良いはずなのですね。

一見効率化を極限にまで追求したかにみえる今日の企業社会ですが、まだまだ無駄な資源は眠っているもの。探せばさまざまなところから価値が搾り出せそうな気がいたします。

さて、素数の実に不思議な性質を考えますとき、自然数(正の整数)というものは人間とは独立に自然界に存在するのだ、といいたくもなります。自然界の不思議な現象と、素数の性質は、ともに人の想像力を超えた世界であるようにみえるのですね。

しかしながら、自然数というものは、人間精神が定義した人間の精神内部の存在であり、素数もまた同様に人間が生み出したものです。

人間が生み出したものが人間の思考能力を超えるという現象は別に珍しいものでもなく、たとえば将棋は人間がルールを定めたゲームに過ぎないのですが、どのようにすれば勝てるか、などということは一概に筋道立てて説明することはできないのですね。

ただ、宇宙にどのような知的生命体が存在したといたしましても、その知能がある程度進んでいれば、自然数や素数に対応する概念をもつであろうと思われます。だからたとえば、未知の知的生命体に「人類はここに存在しているのだ」というメッセージを伝えたい場合には、素数を表す、次のようなメッセージが良いのではないかと思います。

【●●】【●●●】【●●●●●】【●●●●● ●●】【●●●●● ●●●●● ●】

このメッセージを受け取った知的生命体は、少なくとも割り算までができる知的生命体がこの宇宙のどこかに存在するということを知ることができるでしょう。逆に、宇宙のかなたに知的生命体を捜し求める場合も、そのメッセージのなかに、素数に該当するものが表れるかどうかをチェックするのが良さそうです。なにぶん、自然現象として素数が発生するということは、ちょっと考えにくいですから。(もしそんな自然現象があるのなら、それは素数の生成に利用できるはずですね。)

そういう意味では、自然数や素数、あるいは数学的概念というものは、知性に普遍的な概念である可能性が高いといえるでしょう。しかしそれはあくまで知性内部の「概念」であって、その概念に相当する存在が我々を取り巻く外界に実在するか、といえばそんなこともありません。

「自然数」などといいますと、いかにもそういうものが自然界に存在していそうですが、これは単にそういう名前がついているというだけの話です。確かに星の数は一つ二つと数えることができるのですが、数えているのは人間であり、何を数え何を数えないかを判断するのも人の勝手なのですね。

太陽系の惑星の数にしてからが、人の都合で増えたり減ったりいたします。外界の実在とは、人にかかわりなくあらねばならず、惑星の数は人の精神内部に生じた概念であるとみなすしかありません。

「電子情報通信学会誌」の6月号にはその他にも面白い記事がありました。「学生/教養のページ」の今月は「折り紙とコンピュータサイエンス」と題するものでして、その中でも「アンモナイトの化石」には脱帽です。この原稿はWebでもアクセスできます。ぜひ写真をご覧いただきたいと思います。

アンモナイトの化石の折り紙、誰でも折れるように、曲線の形を公開していただけるとありがたいのですが、Webで探しても出ておりません。ちなみに、アンモナイトの折り紙はたくさんありまして、足まで折り込んでいるのもあるのですが、これも良くやりますね。

アンモナイトの化石の折り方は、二重スパイラルの片方を谷折、もう片方を山折としたもので、半径が指数関数的に増大している(式で書けば r = exp(aθ))ように見受けられます。プログラムを書いてプリンタで出力すれば、アンモナイトの化石を折るための用紙は比較的簡単に作れそうな気もいたします。ひまなときのチャレンジねたに最適ですね。