クラウドコンピューティングによって変わるもの
私は、クラウドコンピューティングそのものに全く新しい技術があるのではなく、それが生まれた背景や、コンピュータに対する認識のシフトに違いがあるのだと、常々思っています。
私が、大学生だった80年代後半は、授業は大型機計算機センターのマシンを使い(ある意味クラウドっぽいですが、センターまで出かけて行ってましたね)、論文書くのは、研究室にあったPC-98でした(裕福な学生は個人で買っているのを見てうやましかったのを覚えています)。当時は、第5世代コンピュータが脚光を浴びていて、LispやPrologでプログラム書いていたのを覚えています。
クラウドが当たり前に使えるようになってきて、たとえば、学生さんのコンピュータに対する感じ方は変わってきていると思うのですよね。高価でなかなか使えなかった計算機は使いたい放題だし、一台ではなく複数の計算機を使った処理が当たり前になってきました。昔は、プログラミングといえば、メモリをいかに使わないか、とか、頻繁にコアダンプするプログラムをいかにデバッグするか(これは単に私のプログラミングスキルの問題かもしれません。。。)に心を砕いていたものですが、いまは、いかにオンメモリにデータを置くかとか、マルチスレッドや、分散環境でのプログラムをどう書くかというところにプログラミングの真髄があるように思えます。そのようなメンタリティのシフトはとても重要で、それが新しいアルゴリズムやシステムの変化につながっていくのだと思います。
そのようなコンピュータに対する認識のシフトを扱った本が、GoogleのLuiz Andre Barroso とUrs Holzle氏による ”Datacenter as a Computer”です。PDF版は無料でダウンロードできます。少し前になりますが、この本の翻訳が刊行され、私は監訳という形でお手伝いさせて頂きました。
Googleクラウドの核心 - 巨大データセンターの変貌と経済学
タイトルはどうであれ :-) 私が、この本を日本語で紹介したかったのは、この本には、上で述べたコンピュータに対する認識のシフトが述べられているからです。これからコンピュータを学ぶ学生さんや技術者が、データセンター単位で計算機を考えられたら、並列化することの原則、ソフトウエアとハードウエアの協調設計(co-design)が当たり前のように頭の中にあったら、世界は変わるのだと思います。