2011年6月27日月曜日

不思議な事:「何故すべての遺跡は埋もれているのか?」

もうかなり以前から不思議に思っていたのだが、大体いつもアルコールが入った場面で議論しているので、全くまともな答えが出ずにいた。以前、NHKに「日本人の質問」というクイズ番組があったが、あれに出したら?と言う人がいたが、出す前に番組が終わってしまった。

不思議な事:「何故、全ての遺跡は埋もれているのか?」
険しい山の頂上にあるマチュピチュ等、埋もれようのない極一部の例外を除いて、ほとんど全ての遺跡は埋もれている。そもそも「遺跡を発掘する=掘る」というではないか!

この不思議の厄介な点は、これを聞いて不思議だと思わない、または不思議だと思うまでに多少時間がかかる人が結構いることだ。
一般に人間が家や都市を建てる場合、水はけの良い小高いところを選んで建てるのが普通であるのに、何故、それが地下何メートルもの深いところに埋まってしまうのか? 不思議だと思いませんか?

私がその理由として考えるのは、直接の理由としては、家や建物を埋めてしまうことである。火事で焼失したり、地震で倒壊したりした際に、新たに建物を建てる際に、以前の建物の上に多少整地してそのまま建てることが、遺跡が埋もれる理由である。

しかし、何故そうなるかというと、昔は、現代の重機やトラックのような強力な建設機械や運搬手段がなかったことが、遺跡が埋もれる最大の理由だと思っている。建設機械や運搬機械がないため、人はがれきを取り除いて遠くに捨てることが難しいので、勢い、その上に重ねて新しい建物を造ることになる。
これが正しいと思われる証拠として、京都や江戸時代の遺跡が地下1mあるいは数m の深いところにあるのに対して、平城京のように100年続かなかった都の遺跡は、数10cm 程度の浅いところにある。

この現代の建設機械、運搬手段が無いことが影響している例は、これ以外にもあって、その1つがオランダのアムステルダムである。オランダには、世界は神が造り賜うたが、オランダだけは人間が造った、という言葉があるように、オランダは昔から埋め立てによって国土を増やしてきたことは誰もが知っている。このとき、現代のように海を埋め立てて国土を拡大した思うのは間違いである。

以下は、アムステルダムの歴史博物館で見た事なのだが、アムステルダムは、昔は海ではなくて、海に近い湿地帯であった。そこが交易の中心となって人が集まってきた時に、人は湿地に溝を掘って、その堀った土で、土地のかさ上げをし、また溝は排水溝となった。この排水溝が現在の運河である。だから、アムステルダムの旧市街を見ると、運河が細長いバウムクーヘンのように同心円状に何本もある。これは街の発展に応じて、溝すなわち運河が掘られたことを示している。

2011年6月26日日曜日

京都初夏

6月、京都を訪問。
昨年の夏の訪問時は、仕事が終わった後、鴨川沿いの川床料理の店で鱧を食べ、
ホテル藤田に泊まったが、鴨川をはさんで東山に満月が上ったのを覚えている。

今年は、ホテル藤田が店仕舞してしまったので、ほぼ定宿にしている蹴上の
都ホテルに泊まる。昨夜から雨が降り出し、今朝は東山、北山に雲が流れている。

いつも思うのだが、京都の雨は単に曇って雨が降るのではなく、京都の山と市街地が接触した地形に、白い雲が背景の黒く見える山の間を舞うように流れる。

  雨雲に 現れにけり 夏比叡 

2011年6月25日土曜日

想い出のコンピュータ: Univac 1108/1106

新入社員の頃、職場に配属されて暫くたった時、米国出張から帰ってきた上司が、私の机に IFTRAN というタイトルの資料を置いて、これを作れという。当時はソフトウェア工学が盛んになりだした頃で、ダイクストラが提唱した Strcutured Programmingをサポートする if -then-else や、case, begin-end, while  等の制御構文をFortranに導入したのが、米国のどこかの会社が開発したIFTRANであった。私の周りには言語をやっている人は誰もいないので、独学でコンパイラについて勉強し、コンパイラ部門にも聞きながら開発を始めた。

当初使っていた大型機OKITAC8000 は次世代ミニコンのクロス開発マシンとして使われることになり、仕方なく計算センターのUNIVAC 1106を使い始めた。UNIVAC1106は、IBMと並んで古いコンピュータメーカSperry Rand 社が開発したUniva 1100 シリーズの2番目のシリーズの1機種であり、それまでのUnivac 1101~1104とは異なり、36bitワードアーキテクチャを採用したトランジスタ化されたコンピュータである。1107, 1108,1106,1110が開発され、その後3番目の1100/220シリーズに移行する。特にUNIVC 1108は名機との評判が高かった。OS EXEC 8と呼ばれた。

IBM System/360との比較で言えば、OS/360がバッチを中心とするシステムであり、JCLは必要とする資源を前もって宣言する必要があった。今はメインフレームを使う人しか使わないけど、ファイルのことをDataset と呼び、このDatasetは構造化されており、JCLでは長々と規定する必要がある。これに対して、EXEC8 のコマンドは基本的に1行であり、OS/360と比べると非常にすっきりしていた。IBMではJCLをカードリーダから読み込ませるのが普通であったのに対して、EXEC8では CRT端末から会話的にコマンドを入力できた。その他にも、当時としては珍しくマルチプロセッサシステム構築が可能である、RJE(Remote Job Entry)が可能等の先進的な機能を持っていた。

IFTRANからFORTRANへのトランスレータは割合簡単に作れたのだが、問題が発生した。
EXEC8では、アプリケーションプログラムの出力データを、そのままではコンパイラ等のシステムプログラムの入力とすることはできず、OSの定めるシステムプログラム間の共通データフォーマットであるSDF(System Data Format)に変換しなければならない。
このデータ変換を行うためには、OSの機能を呼び出す必要があるのだが、そのAPIはアセンブラでしか使えない。当時データセンタはCOBOLFORTRANしか許可していないため、データセンタにアセンブラ使用の許可を求めると、原則駄目と言われるが、粘って何度も通うと今度は工数がないという。(工数って、作業時間のことですか? でも、貴方はいつも暇そうにしていますよね、と思いつつも)何度も頭を下げて許可をとった。

これで, IFTRAN の実行ができるようになり、テストや評価を行った。UNIVAC FOTRANの最適化レベルを上げて、コンパイラの出力するアセンブラソースを見ると、FORTRANコンパイラが非常な最適化を行っている事がわかり、大変参考になった。

使っていくうちに このマシンは FORTRANマシンなんだと気付いた。
  • Univac 1100シリーズは、1ワード 36bit のワードアドレスマシンであるが、当時は7bit ASCII IBM 8bit EBCDICが普及する前の 6bit FDコードを採用していたのだが、FORTRAN の変数名6文字が調度1ワードに収まる。
  • 127本と非常に多数のレジスタを持っており、計算の多くの処理を高速なレジスタ上で実行できる。レジスタは Aレジスタ、Xレジスタ、Rレジスタの3種(+少数の特殊なレジスタ)からなり、Aレジスタは演算に、XレジスタはIndex レジスタとして配列の参照に、そしてRレジスタはDOループの制御に使われる。Rレジスタは1ワードを2つに分割して、DO文の制御変数の最終値と刻み幅に使われる。このようにFortanの科学計算で最も良く使われる配列データに対する繰り返し演算をハード面で強くサポートしている。
  • 負の数の表現には、1's complementを採用。1's complemnetにはゼロの表現が2つあるのが欠点で、現在 2's complementが主流になっているが、演算回路が簡単で高速だ。

勿論、36bitワード等は Univac固有の機能ではなく、IBMSystem360でアーキテクチャを 32bit 語に統一するまでは、IBM 7090等でも採用されていたアーキテクチャである。尚、IBM 7090シリーズは負数の表現には上記のいずれとも異なる Sign+Magnitude方式を採用していた。

このように、メインフレームの頃のコンピュータは、コンピュータ発明の原動力となった技術計算を強く反映したアーキテクチャになっていた。これに対して、現在の Intel x86とC は、言ってみれば文字列の処理に注力したアーキテクチャと言えるであろう。

Univac はその後、バロースと合併しUnisysとなった。メインフレームから撤退し、現在はIntel CPUベースのLinuxやWindowsサーバを製品として持っているが、サービスやコンサルティング事業に軸足を移している。

2011年6月24日金曜日

中高年にパソコンを教える

最近、姉にパソコンを教えている。
姉は、専業主婦で会社勤務の経験もなく、また、技術系には関心がないので、パソコンには全く触った事がない。
暫く前から老化予防にも良いからと進めているのだが、「最近はパソコンは、読み書き算盤である」と言ったのが効いたようだ。また、趣味でやっている短歌にも役に立つと思ったらしい。

同居している娘夫婦は勿論パソコンを使っているのだが、面倒なのか、人に教えるほど詳しくないのか、教えてくれないらしい。少し教えて理解しないと、それはやる気がないからだと、精神論で攻められるらしい。
昔の帝国陸軍風ではなく、科学的に教えなければならない。

という訳で、5月の連休から私が教えることになった。
教えるにあたって、娘夫婦のパソコンと同じにしておいた方が何かと便利であろうと「Windowsか? Mac か?」と聞くと、「リンゴがついている」と答えるので、MacBookProを買って持っていく。

ついでに、Mac の入門書も用意してみたのだが、ぺらぺらメクッてみると、とても初心者が理解できるものではない。書店でコンピュータの入門書をいくつも見てみたが、本当の初心者が読んでわかるとは思われないので、自分でパソコン入門という資料を作成し、ある程度自習できるようにする。

パソコンを教えるにあたっての方針は;
  • こまかい事をバラバラに一度に沢山教えない
  • 動作モデル、原理、背景を理解し、自分の中にパソコンがどうして動いているかのモデルができて、類推できるようにする。従って、インターネット接続もきちんと、PCから無線LAN,NCU,局舎、電話回線とインターネットの分離、インターネット、ISP, SPを説明する。また、最初から、プログラム、ウィンドウ、入出力の概念を説明する
  • 現在パソコンを使っている人も慣れるまでには何年もかかっている。また、当面自分が使う機能だけ知ればよく、全部わかっている人はいない、と安心させる
  • 当面の目標は
   (1) PCの起動、終了、基本的な操作ができるようにする
   (2) キーボード操作とかな漢字変換の習熟により文字入力ができるようにする
   (3) インターネット上の情報検索
   (4) 電子メール
   (5) 通販
   (6) 文書作成(Word)


これまでに3回教えたのだが、一応 Word で文書入力の練習までできているようだ。双方が実家に集まって教えるのだが、姉は MacBookPro を風呂敷に包んで持ってくる。風呂敷で包んだパソコンを見るのは初めてだ。

やっていると問題がいくつも発生する。
・トラックパッドよりは、マウスの方が操作しやすいだろうと、MagicMouseを用意したのだが、 MagicMouse が敏感すぎて、予測しない動きが発生する。自分も苦労したので、調べてみると MagicPrefs というソフトをインストールするとマウスの感度を制御できる。その後人から聞いたのだが、MagicMouse よりももっと使いやすいマウスがあるらしい。
・孫がパソコンの環境を壊す
最近は小学校でもパソコンを教えているようであるが、子供はさすがに学習が早くどんどん使うようだ。家のMacは両親がきちんと管理しているので、おばあちゃんのMacは子供の標的となり、ゲーム等好きなように使っているようだ。
しかし、環境を壊したりするので、その度に私に電話がくる。システム関係のトラブルを電話で対応するのは大変である。

いろいろトラブルもあるが想像以上に順調に進んでいる。世の中のパソコン入門も少し見直した方が良いと思う。

お釈迦様の死因

以下は、インド旅行で泊まったあまり上等でないホテルのレストランの朝食での話である。

「お釈迦様の死因って、ご存知ですか?」
「さあ、でも確か80歳で死んだんだから、老衰じゃないの?」
「いいえ、実は食中毒だったんですよ」

仏陀の死は、当時の仏陀の信徒にとって、また後代の仏教徒にとっても忘れる事のできない大きな事件であり、入滅に至る最後の1年の言動は他に比較して詳しく経典『大パリニッパーナ経』(大般涅槃経) に伝えられている。
当時マガダ国を中心として布教を行っていた仏陀は、マガダ国の都ラージャガハから終焉の地クシナーラーに至る最後の長い布教の旅に出る。その途中、マッラ国のパーヴァーで鍛冶工のチュンダの食事の供養を受け、食中毒となった。

このように、わたくしは聞いた。
ー鍛冶工であるチェンダのささげた食物を食して、
しっかりと気をつけている人は、ついに死に至る激しい病いに罹られた。
(きのこ)を食べられたので、師に激しい病いが起った。
下痢をしながらも尊師は言われた。
「わたくしはクシナーラーの都市へ行こう」と。
(中村 元訳 ブッダ最後の旅 ー大パリニッパーナ経ー、岩波文庫)

仏陀は、ヒラニャヴァティー河を渡って、クシナーラーのウパヴァッタナというサーラ林に着き、入滅する。
7日経って、遺骸は火葬に付され、遺骨は釈迦族等八つの部族に分配され、八つの舎利塔と瓶塔と灰塔の計10塔が各地に建立された。

1898年に英国によって仏舎利が発掘され、骨壷の古代文字の解読によって、大パリニッパーナ経の記述が事実であると確認された。遺骨は1899年に英国からシャム国(現在のタイ)に譲渡され、1900年にシャム国ラマ5世から日本国民に贈られた。1904年、仏舎利を納めるために、名古屋市千種区に覚王山日泰寺が創建された。

「ふ~ん、しかし、インド人のお釈迦様でも食中毒になってしまうんだから、我々日本人なんかイチコロだよね」
「ええ、ちなみに、その時のメニューは、揚げ春巻とスクランブルエッグとソーセージだったと聞いております」
(これは、朝食ビュッフェの相手のお皿の料理である)

(補足:仏陀が食べた料理は、中村訳では、菌(きのこ)となっているが、きのこ料理、豚肉料理、料理名はスーカラ・マッダヴァである等の説がある)

2011年6月23日木曜日

老後の海外生活

知人夫妻と自由が丘で会食。
食事が終わって、知人宅に向かう途中で、勤務先の元自由が丘女子寮が、建物はそのままに、今はニチイの有料老人ホームとなっているのを見る。

その昔、女性新人課事務の歓迎会で、自由が丘寮に入った新人は、「自由が丘は外人が多くて、とても素敵です」と目を輝かせたのに対して、隣に座った埼玉県に住む蕨寮生が「外人なら蕨にも沢山いるよ」と応えたのが可笑しかった。
時は流れて、今や、さいたまはイスラム圏に入ったと言われている。

知人宅で、自由が丘の有名なモンサンクレールのケーキをいただく。確かにクリームが滑らかだ。

話は、お互いに年なので、つい老後の生活にいってしまう。
再就職も問題だが、どこで生活するかで、カナダのバンクーバーは4月から9月までは気候はパーフェクトだとか、最近は、東南アジア、特にタイの人気が高い、物価が安いので、日本の年金で大きな家で家政婦を雇って生活できる、毎日ゴルフをして暮らす、等の話題がでる。タイは最近は年金だけでは日本では暮らしていけないが、タイなら暮らしていけると、かなり人気が高いようだ。

先日、同じ業界の方と飲んだときも同じ話題になった。
カナダは税金が高い、オーストラリアは5000万円ほどお金を用意することを要求される等の問題があるが、タイでは現地の雇用にも寄与するので歓迎される、という面もあるようだ。

さて、どこで暮らそうか?

2011年6月22日水曜日

IBM の Watson について聞く

6月7日、東日本大震災でキャンセルされたIBM のWatson に関する講演を椿山荘で開かれた IBM Industrial Summit 2011 で聞く。一番最後のセッションで、当初予定されていた米国の研究者ではなく、東京基礎研究所の研究者が説明する。

Watson は、1997年にチェスの王者カスパロフを破った Deep Blue に続いてIBMが開発した超並列スーパーコンピュータで、自然言語による質問応答システムである。今年の2月14日〜16日の三日間、米国の有名なクイズ番組 Jeopardy! (ジョパディ)で過去のチャンピョン2人を負かして一躍有名になった。

Watson はIBMが1997年から最大25名の研究者をかけて開発したシステムであり、ハードウェアは市販機 IBM Power 750 をベースとする超並列機で、90台のサーバは、2880個のPower7 コアから構成される。
Watson の核心は質問応答システムである DeepQA にある。
DeepQA の知識ベースがどのように構成されているか、どのような推論を行うかに興味があった。知識ベースのほとんどは、映画のタイトルと監督等一部の表によるDBを除いて、大半がテキスト情報とのことであった。
情報はWikipedia のようなインターネット上の情報を採用しており、2億ページ 70 Giga Byte からなり、予想外に少ない。実際には構文解析等の処理を行った後の情報を付加して500 GB 程度とのこと。

推論の詳細は聞けなかったが、勿論、クイズ番組なので答えの語句が質問文にある訳もなく単純な全文検索では不可能だ。基本的には構文解析を行い、質問分における回答を指す代名詞との照応関係の解析を行った後、上記の知識ベースとパターンマッチを行うようである。複数の候補の中から確信度の計算を行って最高のものを回答とする。大体2〜3秒程度で回答し、正解率は87%程度で人間のチャンピョンと同程度とのこと。

説明の中で面白かったのは、テキスト情報としてWikipedia の記述を多く採用している事であった。70GBと少ないのはインターネット上には膨大な情報があるが、信頼できる情報はそれほど多くないこと、また、Wikipedia の記事は、対象の語句について総合的にかつある程度のサイズ内に記述されており、オープンな分野に対する情報としては適切なのであろう。
Watsonが不得意な領域としては、医療やファイナンスの領域があり、これは非常に詳細、大部な情報はあるが、Wikipedia のようなコンパクトで網羅的な記述は一般には(インターネット上には)少ない事が原因とのことであった。
また些細なことであるが、Jeopardy! は質問を読み終わった後、早押しで回答するのだが、音声認識を採用していない(会場の雑音が多い)Watsonではどのように入力するのかが問題なのだが、Jeopardy では、6分野×5レベル合計30問の問題パネルが選択された瞬間に、選択された問題のテキストデータが通信路で入力されるようになっているとのことであった。

IBMは2年程度で Watson を医療やファイナンス等の領域におけるDecision Support Systemとして商用化する計画であり、既に複数の大学医学部と共同開発を進めている。(医療やファイナンス等、WatsonがJeopardy! で不得意としている領域を選択したのは、金になる領域であり、またインターネット上に既にある情報ではビジネスにはならないと判断したためか?)

椿山荘に入るのは初めてであったが、山県有朋の別荘であっただけにさすが立派であり、建物の4階に届くような大樹が多数あり、高低差の大きい地形の中に池や川が作られ、ホタルもいるようだ。
建物の中も先週行った目黒雅叙園よりも、フォーシーズンズホテルが同居しているだけあってかなり品が良い。
庭園を歩いて冠木門を出ると神田川の桜並木であり、江戸川橋の駅まで歩いて帰る。
春の桜の頃はとても奇麗だろう。

Vertical Yes と Horizontal Yes

デジタルTVシステム拡販のため、インドのチェンナイ、ムンバイ、デリーを順に廻ったことがある。
現地の代理店の案内で、 Reliance, BSNL, Tata 等の通信キャリアや大手金融機関に自社の映像システムや、通信機器、金融端末の紹介を行い、私の担当は映像システムであった。

インドは当時、国の政策の変更により経済が急速に伸びつつあった。国土が非常に大きいので、通信や放送等のインフラの構築の仕方は日本等の先進国とは違い、既に携帯電話の加入者数が固定電話のそれを上回っており、また放送も衛星放送に力を入れていた。

最初に、インドの東南部にあるチェンナイの Reliance Communications を訪問し、トップマネジメントに提案することになった。

映像配信システムとそのアプリケーションについてプレゼンテーションをしたのだが、こちらが力を入れて強調すると、そのトップマネジメントが首を横に振る。これが何度もあって、こちらの提案が理解されていないのかと不安になったまま、会議は終了した。移動は、現地代理店が用意した車を使うのだが、代理店の人間が、運転手に指示しているのを見ると、運転手は指示される度に首を横に振る。なかなか強情な運転手だなと思ったのだが、どうもおかしい。

不審に思って、後で代理店の人間に訪ねると、インドの北部では、肯定の場合は、首を縦に振るが、南部では横に振るとのことだった。これで合点した。

その後、ムンバイを経由して、デリーに行くと、ここでは我々に馴染みのある Vertical Yes になった。

IBM System/360 POO

以前、転勤で職場にある資料や書籍を整理していたら、懐かしい IBM System 360/POO (Principles of Operation, 一般に "プー"と呼ぶ) が出てきた。

私が会社に入った頃は、メインフレーム全盛の頃で、ミニコンは既に普及していたが、未だVAX11/780 が出る何年も前であった。会社では、市販されなかったが、IBM System360互換機である、1フロアーを占める大型機 OKITAC 8000があり、新人の頃はミニコンと平行してこれを使っていた。

このマシンは、一度大型機から撤退した会社が、電子交換機開発のために必要な技術として開発したものだった。これをオープンショップで使っていたが、マニュアルはIBMのマニュアルであった。その頃、IBMのマニュアルは壁一面分あると言われていたが、System 360 POO は、そのトップにくる資料であった。

当時は、コンピュータに関する本は未だまともな物は少なく、特にOSに至っては、 IBM OS 360のジョブコン(JCL - Job Control Language)の切り方(書き方)を説明したものがほとんどだった。Per Brinch Hansen の Operating System等の体系的な OSの教科書が出るのは入社して数年経ってからであった。また、コンピュータのハードウェアやアーキテクチャに関する本も少なく、ハードウェアでは、ブール代数や論理回路等の説明はあるが、アーキテクチャと言えるような本は皆無であった。例外と言えるのが、Elliott Organick の "Computer System Organization  The B5700/B6700 Series" であり、120ページ余りの薄い本であったが、スタックマシンとして有名なBurroughs B5700.6700 を説明したカラフルな挿絵が多数入った魅力的な本であった。
新人の頃、手当たり次第にコンピュータの本や論文を勉強していたが、IBM System/360 POO を読んで初めてコンピュータを理解できた気がした。

POOは System/360のものと思っていたら、当然ながら その後継機種の System/370や、最近の z-シリーズにも POOは存在する。

z-series は、64bit アーキテクチャであるが、40年以上前の System/360 の24bit アプリケーションバイナリが無修正で動作するそうだ。David Pattersonと John Hennessy の Computer Organization & Design では、360/370の命令セットは、最初に実現されて以来40年以上の歳月を経ているにもかかわらず、Intel IA-32よりもずっとスッキリしており、その理由は、基本がしっかりしていることと、一貫性のある拡張の仕方にあると、高く評価している。

IBM System/360 POO は、今も私の本棚にある。