投稿

美しいこと

イメージ
こんな文章に出会って、ハッとする。  「花たちを見て、美しいと感じるのが誰にもやさしいことなのは、驚くべきことではありません。というのも、花たちは、まさに魅力的であるように進化してきたからです。」 「最初は、人間にとってではありませんでした。花粉を運んでくれる鳥や蜂にとって、魅力的であるように進化したのです。」 「これらの生き物を惹きつけるものが、我々人間には魅力的でないことを想像することは可能です。ただ、実際には、私たちが花を愛でることと、生き物が花に惹かれることには、十分な共通性があります。」 その「共通性」は、花の「美しさ」と言うことだろう。 ということは、鳥や虫たちも、花の「美しさ」を感じていると考えることができるということだ。僕がハッとしたのは、「美」というのは、人間だけのものだと思っていたからだ。 「私は、すべての美しさの形は、密接に結びついていると考えています。」 「私は、なぜこの世界が救うに値するかという理由として、おもに美しさについて --そのすべての形で-- 考えています。」 「しかし、美の経済学ということになると、我々はとても原始的な状態にあります。絵は、数億円で売られることができますし、そのための市場も存在します。ただ、誰もこの絶滅危惧種のカエル Atelopus varius には、どんな値段もつけません。」 「私にとっては、これは、どんな絵よりも、美しく貴重なものです。もちろん、この個体ではなく、数百万年かけて進化してきたこの種がです。我々は、こうした種を、まるで価値のないゴミのよう破壊することに忙しくしています。」 「我々の子孫は、もしも存在するなら、我々を、きっと野蛮な馬鹿者と考えるでしょう。」 ---------------- エミー・ネーター100周年の国際会議に出席した、ジョン・バエズのインタビュー "A quest for beauty and clear thinking. Interviewing John Baez" から。 https://goo.gl/ndMe6a ---------------------------------------- 3年前のFacebookへの投稿から https://www.facebook.com/fujio.maruyama/posts/102174192116

研究と教育

(2年前のFacebookへの投稿から) https://www.facebook.com/fujio.maruyama/posts/10220302438088591 一月のセミナー「論理学入門」では、10代 - 20代の若い世代に、参加費の割引をした。それは、もちろん、彼らが 20代 - 30代になる10年後には、今回学んだことがきっと役に立つと考えているからだ。 ただ、そういうことを意識すると、いろいろ微妙な問題があることに気づく。 「いつか役立つ」ということは「いまは役立たない」ということなのか? 「役に立つ」ということなら、新しい課題に取り組むには、古い課題の知識は「役に立つ」。 僕の経験でも、量子コンピュータを教えるつもりでも、気がつくと、一生懸命、行列の掛け算を教えていた。遠回りだが、それなしでは量子論は理解できないからだ。 今回のセミナーもおんなじだ。Coqや形式手法の話をしようと思っていたのだが、なかなかうまく伝わらない。その原因の一つは、論理学の初等的な知識がないことにあると思っている。ないものは埋めないと次に進めない。 多分、「教育」というのはそうしたものなのだろう。(僕のやり方では、スケールしそうもないのだが) 誤解を恐れず一般化すると、未来を切り開く「研究」と過去の達成を学ぶ「教育」は、結びついている。現在の「研究と教育」の双方が「忙しすぎて」そうしたことを考える余裕を失っているのなら、いいことはない。 今回のセミナーでは、「証明」の話をするのだが、ギリシャのユークリッドらの数学は、西欧世界では、若い世代に継承されず、数百年もの間忘れ去られていた(それを伝え続けたのはイスラム世界だった)。中世ヨーロッパでは、大人・老人同様、若者も暗愚だった。 もっとも、「教育」を客観的な対象として語るのはあまりいいこととは思えない。教育の主体は「教育者」でも「制度」でもない。個人がいかに学ぶかが重要なはずだ。 若い世代が、「いつか役立つ」ことを学ぶことは、もちろんいいことだ。ただ、「いつか役立つ」が学ぶことの目的なら、若くない世代が学ぶことは、意味がないことにならないか? あるいは、我々は、何歳になったら学ぶ意味を失うのだろうか?  子曰、朝聞道、夕死可矣。  〔子曰く、朝に道を聞かば夕べに死すとも可なり、と。〕 こうした議論をアナクロと感じる人も多いだろ

エミー・ネーター

イメージ
(3年前の今日のFacebookへの投稿から) https://www.facebook.com/fujio.maruyama/posts/10217397751193234 DisCoCatでの女性の活躍については、ここでも紹介した。女性科学者と言うことでは、是非とも紹介したい女性がいる。数学者のエミー・ネーターだ。 数学者なら誰でも知っている名前だが、一般には、ほとんど知られていないと思う。そう言う僕も、恥ずかしながら、高校時代にネーターが女性であることを知り、びっくりしたことを覚えている。てっきり男性だと思っていたのだ。 女性科学者というと、キューリー夫人が有名だが(だったが)、今の子供達は「偉人伝」なんか読まないだろう。おそらく、キューリー夫人も知らないかも。GAFAの創始者が新しい「偉人」になるのかも。 エミー・ネーター(1882 – 1935)は、ドイツ生まれの数学者。20世紀の抽象代数学の成立に大きな貢献をした。また、対称性と保存量の関係を示した1918年の「ネーターの定理」は、量子力学にも大きな影響を与えた。 ヒルベルトもアインシュタインもワイルもウィーナーも、彼女の傑出した才能を認めている。彼女の時代、彼女は最も重要な数学者だった。 ただ、「女性」というだけで、彼女のアカデミーでの活動は、大きな制約を受けた。 彼女を、ゲッティンゲン大学に招こうとしたヒルベルトは、教授会の強烈な反対にあった。その中心は、哲学の教授たちだったらしい。 その一人は、こう言ったという。 「我々の兵士たちが、戦場から大学に戻ってきた時、女のもとで学ぶことを要求されたら、なんと思うと思うんだ。」 ヒルベルトは激怒して、「性別なんてどうでもいいじゃないか。ここは大学だ。お風呂じゃないんだ。」と言ったという。 https://goo.gl/jDzULN 結局、彼女は、正規の教員としては受け入れてもらえず、ヒルベルトの名前を借りる形で、その代理として講義をしたらしい。 先に挙げた画期的な「ネーターの定理」も、ゲッティンゲン王立科学協会で発表されたのだが、彼女は会員でないという理由で出席を許されず、発表は同僚のクラインが行なった。 大学では、正規の教授に昇進することはなかったのだが、彼女は、自宅でも喫茶店でも、熱心に教育を行い、「ネーター軍団」といっていい、優秀な数学者をたくさん育て

Paxosの働きをイメージする

 【「Paxosの働きをイメージする」を公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「Paxosの働きをイメージする」を公開しました。ご利用ください。 https://youtu.be/HsmuIRZq8ps?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回から、Paxos のアルゴリズムの紹介を始めようと思います。 ただ、Paxosのアルゴリズムは複雑なので、それがどういう状況でどのような働きをしているのかのイメージを持ってもらうことから始めようと思います。 今回は、MSのクラウドAzureのデータ・ノードの多重化と、障害が起きた際のノードの再構成の振る舞いを紹介して、こうしたメカニズムが、基本的には Paxos の働きで支えられているという話をします。 この例では、次のような障害とそれからの回復操作を想定しています。  ・ Primary の故障  ・故障したSecondaryを除く  ・修復したreplicaの追加  ・新しいSecondaryの準備 重要なことは、こうした障害に際してのシステムの再構成が、自動的に行われるということです。クラウドの高い耐障害性、高い可用性は、こうしたメカニズムで支えられています。そうしたメカニズムは、クラウド以前には存在しなかったものです。 「分散合意」というのは、複数のノードからなる分散システムが、その内部で部分的な傷害が起きたとしても、外から見ると、共通の一つの意志を持つように振る舞うということです。 Paxosでは、その意思決定に「多数決」を用いることがあります。 今回の例では、4つのセカンダリーのうち、多数の3つのセカンダリーへの書き込みに成功した時点で(1つのノードへの書き込みができていなくとも)、このシステムへの書き込みは成功したものと反応します。 今回は、具体的なPaxosのアルゴリズムには踏み込みませんが、分散システムの中で、Paxosが、どのような働きをしているかの、イメージをもって貰えばいいと思います。 スライドのpdfは、次のURLからアクセスできます。 https://drive.google.com/file/d/1Hd84oUOhU_QOfpdu3Fylld65UrfGFO1t/view?usp=s

システムの進化とその複雑さについて

【「システムの進化とその複雑さについて」を公開しました 】 https://youtu.be/_d8ncnrO5WA?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 分散システムの成立を、システムがその複雑さを増す進化として捉える見方を紹介します。再び、Jim Waldoの 2006年の議論です。 Jim Waldo "Complexity Quanta and Platform Definition" https://docs.huihoo.com/jini/10th/Complexity-Quanta-and-Platform-Definition.pdf ただ、このスライドは、タイトルだけなので、Warren Strangeによる次の要約がわかりやすいと思います。 https://wstrange.wordpress.com/2006/10/05/summary-jim-waldos-keynote-at-the-10th-jini-community-meeting/ Jim Waldo は、システムの進化を、まず、プログラミングのスタイルの質的飛躍として捉えます。 出発点は、一つのマシン上でのプログラミングです。それは、基本的には、「シーケンシャル」にプログラムが走る世界です。この時代、「人生は善良でシンプルであった 」と彼は言います。 つぎの飛躍は、「マルチ・スレッド」のプログラミングです。ただ、OSの開発に携わるような一部の人たちしか、このスキルを使いこなせませんでした。 多くの人が利用できたのは、UNIXのfork-execのような「マルチ・プロセス」のプログラミングスタイルです。 やがて、「マルチ・マシン」の時代が始まります。これまで見てきたように、「マルチ・マシン」のプログラミングは、単一のマシンでのプログラミングとは、異なるものです。 システムの進化はさらに進みます。気がつけば、我々は、「信頼できないマルチ・マシン」のただなかに立っています。 彼は言います。「それぞれの段階を通り抜ける際、 我々は、何かを失ってきた」と。にもかかわらず、「我々は、何かを得てきた」 詳しくは、ビデオをご覧ください。 スライドのpdfは、次のURLからアクセスできます。 https://drive.google.c

ネットワークの遅延について

【「ネットワークの遅延について」公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「ネットワークの遅延について」を公開しました。ご利用ください。 https://youtu.be/gR72GcwI_Fw?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 前回は、Jim Waldo の論文を紹介して、PCでPCの上で動くプログラムをプログラミングするのと、多数のコンピュータがネットワークで結ばれた分散システムをプログラミングするのとは、質的に大きな違いがあるという話をしました。 今回は、Erik Meijer の、ネットワークをまたいでデータを処理するのに要する時間は、コンピュータ内部の処理に要する時間と比べると、「桁違い」に大きいという指摘を紹介します。 人間には、コンピュータとネットワークのスピードの「桁の違い」を、感覚的に感じることは難しいかもしれません。それは、コンピュータがあまりに速いからなのですが。 彼は、コンピュータが内部で一つの命令を実行するのに一秒かかると考えてみます。これぐらいなら、そのスピードを感じることはできますね。仮にそう考えた時、ネットワークを通じてアメリカからヨーロッパにデータを送る処理には、どれくらいの時間がかかることになるでしょう? 彼の計算によれば、それには、5年かかるそうです! これも、PCの上で動くプログラムをプログラミングするのと、分散システムをプログラミングするのとは、質的に大きな違いがあるという Jim Waldo の指摘を、別の角度から裏付けるものだと思います。 スライドのpdfは、次のページからアクセスできます。 https://www.marulabo.net/docs/paxos/ Erik Meijerの “Latency as an Effect” は、次のURLからアクセスできます。 https://class.coursera.org/reactive-001/lecture/51

分散コンピューティングについての考察

 【「分散コンピューティングについての考察」公開しました 】 1/29  マルレク「分散合意アルゴリズム (1) — Paxos」にむけ、ショートムービー「分散コンピューティングについての考察」を公開しました。ご利用ください。 https://youtu.be/tbgGc71ZEfQ?list=PLQIrJ0f9gMcOTqmza5742zyEYjkApl_fF 今回のビデオは、ネットワーク・プログラミングの難しさについて、述べたものです。 Jim Waldo らの論文 "A Note on Distributed Computing" の紹介です。 基本的な論点は、ローカルなマシン上でのプログラミングと、ネットワークをまたいだプログラミングとには大きな違いがあるということです。 この論文は、1994年のもので、クラウド技術登場以前のものですが、ネットワーク上の分散コンピューティングの特性についての Jim Waldo の指摘は、正確なものだと思います。 こうした問題意識は、プログラミングでネットワーク上のサービスを組み合わせることを普通に行なっている「クラウド以降」の若い世代には、むしろ希薄なように感じています。ただ、それはいいことだとは、僕は考えていません。 スライドのpdfは、次のページからアクセスできます。 https://www.marulabo.net/docs/paxos/ Jim Waldoらの論文は、次のURLからアクセスできますので、ぜひ、お読みください。 https://dl.acm.org/doi/book/10.5555/974938 https://scholar.harvard.edu/waldo/publications/note-distributed-computing