You can read this blog in any language using google translate as follows:

Goto http://translate.google.com/
Paste URL in the box and select "Japanese for From Language" and "To Language". Then click "Translate".

English translated pages are here:
http://bit.ly/xPuXoy

你可以閱讀這個博客,在任何使用“Google”的語言翻譯

本ブログのアクセス統計: 60万アクセスを達成しました。ご訪問ありがとうございました。

60万アクセスまでの経過

2009年12月に始めた本blog。2011年7月ごろに10万アクセスを達成し、2011年12月13日には15万アクセスを達成。
その後、私も更新しておらず、アクセスは少し減りましたが、3月1日には18万アクセス。2012/4/18に20万アクセス、2012/8/21に25万アクセス、2013/1/18に30万アクセス、2013/12/17に40万アクセスを達成しました。しばらく見ていなかったら、2015/5/1に50万2584アクセスになっていました。またまた、しばらく更新しないうちに、2017/6/11に60万7197アクセスになっていました。久しぶりに更新します。

2011年11月14日月曜日

次の技術に投資しないと、じり貧になる - スパコンとiPS細胞への投資の差

特定候補者を支持するつもりはないが、自民党 河野太郎衆議院議員も、スパコンプロジェクトには疑問を挟んでいる(以下リンク)。彼のblogの方が簡潔で分かりやすい。技術的にも正確である。が、文科省から妥当な回答が得られていないらしい。あいかわらずである。 http://www.taro.org/2011/12/post-1128.php

コンピュータの世界も、巨大スーパコンの時代から、安いコンピュータを沢山つなぎ、ソフトウェアで信頼性を保障する、GoogleやFacebookなどデータセンターの手法に時代は変わりつつある。新たな手法は、技術的に以下の難しさがある。
  • 沢山のコンピュータをつなげたときに、どこかが性能ネックにならないようにするのは難しい。少ない台数なら簡単である。何万台もつないだ場合、だれかに、とりまとめをさせると必ず性能ネックになるので、基本設計に工夫が必要なのである。
  • 2年に一度故障するコンピュータでも、沢山つないで全部動かそうとすると、故障率が上がる。たとえばn台つなぐとする。1台が1時間に1度故障する確率がpだとしても、n台つなぐと、1時間に故障が起きる確率は、1 - ((1 - p)^n) となる。後ろの項が、n台全部が健全である確率になっている。nが大きくなると、後ろの項が0に近づくので、故障する率が上がるのである。たとえば2年に1度故障するPCを1万台つなぐと、毎日数台は故障することになる。しょっちゅう誰かが故障するので、それでもまともに動くシステムを作るのは大変難しい。安易に作るなら、お金をかけてハードをめちゃくちゃ高信頼にすることになる。もう少し正確な計算と考察を本blog末尾につける。
  • 並列に動かすと、思いもしないところで、すれ違いが起きる。Racingという現象である。簡単にやるには、みんな歩調を合わせて動かせば良いが、沢山のものを歩調を合わせるのはハードウェアが大変なので、性能がでない。そもそも安い市販の高性能CPUが使えない。理由は、最近のCPUは内部のPLLという回路でクロックを作り、低電力や発熱上限管理のための電力制御のために勝手に内部でクロック周波数を可変しているからである。それぞれが自分の速度で動く必要がある。別な速度でそれぞれを動かしても、Racingがおきないようにソフトを作れば、安くて高性能なコンピュータが、安い市販の部品で作れる。
  • 上記をやるには、何度でもソフトを書き直して、シンプルでエレガントに書かないと、思いもかけないエラー状況だらけで、とてもまともに動くものは作れない。なにしろ、相手が答えを出すタイミングが予想できないうえに、何かをさせている相手がしょっちゅう故障するのである。そして、そういう相手を同時に沢山動員して効率よく仕事を割り振らないとならない。
    頭を柔軟にしないと、起こりうるエラー状況すら想定しきれない。
    駄目なときは、何度でもプログラムを作り直す姿勢が必要がある。作り始めて不可解なことが初めて発見されたときに、的確に手を打つには、自分で構想を練り、自分でプログラムして、自分で分析するのが一番である。そうしないと、良いものは作れないし、複数人でこれを分割してやれば、時間ばかりかかるであろう。
    ところが、日本では、最初に設計をして仕様書を書いて、下請けにプログラムをさせようとする。その時点でもはや最適なシステムを構築できようがない。作り直しもままならないし、シンプルでエレガントなプログラムになりようがない。日本政府は、そういう時代遅れのやり方を踏襲しているところに、国費を投資しているように思う。
難しそうであるが、最新のコンピュータ技術ではこれを達成している。ソフトでやれば、優秀な人が10人もいればできる。

ハードでやると大変)
ところがハードを開発しようとすると、この100倍の人数では効かないだろう。Intel,AMD,ARM陣営が相当数の人数を投入してプロセッサを開発しており、それに相乗りできるなら、それが一番コスト的に有利だと思う。コンパイラやOSなどソフト開発環境も、どんどん進化する既存のものが使える。

京速コンピュータで使っているSPARCというベースのプロセッサ命令セットは、残念ながら、もはや非常にマイナーなCPUである。世の中の主流は、もはやMIPSでもSPARCでもPowerPCでもなく、PCに使われるIntel x86か、SmartPhone/Tabletに使われるARMの命令セットに移ってしまっている。プロセッサなどLSIは量産効果がすべてなので、量が売れないと値段も下がらないし、設備投資もできない、設計費用も回収できないので、競争に勝てない。

SPARC:  http://ja.wikipedia.org/wiki/SPARC

もしも、SPARCを支援したいなら、中華人民共和国のように国策で所定のプロセッサしか使わないようにすれば良い。中華人民共和国はMIPS系のGodsonというプロセッサを使わせようとしているように思う。

Godson: http://news.mynavi.jp/articles/2011/09/15/hot_chips23_godson-t/index.html

日本には、かつてTRONという、非常に先進的なプロセッサとOSが研究されていた。これを教育界に導入しようとしたが、アメリカの横やりであえなく挫折している。TRONは、1984年に初代Macintoshが売り出されたときに、すでに、その価値を見抜いていた。それを超えdesktopにもnotePCにも産業用にも使える、並列・分散システムの研究開発計画が日本にあったのである。日本語フォントをどう美しく扱うかはもとより、キーボードまで再デザインしているのである。提唱した、東大 坂村先生の先見性には、本当に驚くばかりである。

TRON: http://ja.wikipedia.org/wiki/TRON%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88

半導体技術のためのテクノロジドライバにするのか?)
日本が1980年から1990年にかけて、世界トップに君臨した半導体技術を再び世界トップにするための、テクノロジドライバとして、京速のLSI製造を利用するなら、国費投入の意味があるかもしれない。そして、OSやソフトも自前開発するなら。これについてどうなっているのか、今後調べてみたい。富士通のLSIは45nmテクノロジを用い、試作こそ富士通がやったが、製造は台湾のTSMCが行ったようである。

なぜソフトでやろうとしないのか)
冒頭に書いたような開発手法がとれないのは、日本のソフトやハードの設計法が、きわめて遅れているからなのだと思う。これは、以下に書いた。が、何度主張しても、分からない人には分からない。従来の日本のやり方が正しいと思い込んでいる。高信頼なものを作り、メンテし続けるには、分業が必須だと思い込んでいる。実際は、エレガントにシンプルに設計することこそが解なのである。
2011年11月12日土曜日 外注を使うのは日本だけ
京速コンピュータは、信頼性をハードウェアで保障しようとしている。なので、プロセッサも複雑なものを自作して、個々のCPUは高価な割にパソコンのプロセッサほどの性能も出せていない。通信は、がんばっているが、ありきたりな速度だといえよう。

ハードウェアで信頼性を確保しようとするから、高価で、でかいものをオリジナルで時間をかけて作らないとならないし、巨大で電気を食う割に遅いのである。

以下に比較したが、Intelの売れ筋プロセッサに比べてぱっとしないように思える。NECのSXのようにベクトルプロセッサなら本質的に計算原理が違うが、スカラプロセッサなので、Intelコアとはスペックが同じならば、機能的に大差がないと思う。違いはハードウェアの信頼性なのであるが、これは、上述したように、ソフトウェア手法で対処するのが、最新手法である。

京速コンピュータ)  http://ja.wikipedia.org/wiki/%E4%BA%AC_(%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)

CPUの比較)
京速コンピュータのCPU: 2GHz, 8コア。金がかかる水冷で信頼性をあげている。
      浮動小数点性能: 128 GFLOPS/CPU (= 8 FLOPS/Clock  × 8コア×2GHz)    
      L2 cache 6MB, 主メモリ帯域 64GB/sec
Intel core i7  (3930K) : 3.2GHz, 6コア, 空冷 - turboをつかうと3.8GHzまで行く。
     浮動小数点性能: 153 GFLOPS/CPU (理論値)  (= 8 FLOPS/Clock × 6コア x 3.2GHz)
        http://ja.wikipedia.org/wiki/FLOPS
     L3 cache 12MB, 主メモリ帯域 51.2GB/sec
     値段: 1CPU(ソケット) 583ドル
     Intel Core i7: http://ja.wikipedia.org/wiki/Intel_Core_i7

ひょっとすると、京速のCPUの浮動小数点性能は倍精度(64bit長)かもしれない。Intelの性能は、単精度(32bit長) x 4個のSSE x 2演算同時発行での計算である。計算に倍精度が必要な場合にはIntelの性能は半分になる。ただし、もしそうだとしても、京速コンピュータのようなスカラー型スパコンでの計算に倍精度浮動小数点演算が必要なのかを検証する必要がある。収束速度は速いが計算精度が必要な陰解法は、実世界現象を扱うと、非常に疎な行列の逆行列演算を行わなければならず、内在する並列性がきわめて小さくなる。スカラー型並列スパコンでは、たいへん扱いにくいように思う。実は、このへんの研究は、UCB(カリフォルニア大学バークレイ校が進んでいる。実用問題を解くための並列アルゴリズムまで検討して、アーキテクチャを選定するのが、本筋なのだが。)

Linpackで性能を測って一喜一憂するのは馬鹿げている)

そもそも、演算アルゴリズムを変えると解の収束性が変わる。収束性が100倍以上よい。つまり計算時間が短い解法として、陰解法がある。簡単にいうと、tの時点の値Ytから微係数 at を求め、そのatから、次のY t+1を求めるのが陽解法である。一方、陰解法では、t+1とt時点の両方から微分係数atを求めるのでatの精度が高い。が、atを用いてYt+1を計算するので、数値積分をするのに逆行列演算が必要になる。実問題では、極近傍の時間や空間からのみ微係数が影響をうけるので、係数マトリクスは非常に疎な行列になる。つまり陰解法の計算は、非常に疎な行列の逆行列演算となる。疎行列の逆行列演算は、本質的に内在する並列性が極めて少ないため、どういった並列マシンを使っても、高い並列度は得られない。また、データがマシン上に分散してしまう、GPGPUや超並列マシンでは、その小さい並列度を引き出すだけでも大変である。

 ベクトルスパコンでは、共有メモリに効率良くアクセス出来る上に、インデクスを用いたマトリクスの間接フェッチができるので、まだ扱える。
 このへんの解法の違いを考慮しないで、密行列の逆行列計算であるLinpackの性能評価でスパコンの性能の善し悪しをきめるのは大変馬鹿げている。

GPGPUの利用)

用途によっては、さらにコスト性能比が良いGPGPUも利用可能である。これは、東工大のTsubameなどで実績がある。これも倍精度演算や陰解法は不得意である。
    http://ja.wikipedia.org/wiki/GPGPU
    Tsubame) http://ja.wikipedia.org/wiki/TSUBAME

ネットワークの比較)
京速コンピュータ:
        100GB/s = 5GB/s × 10接続 × 2(送信+受信)
通常技術: 8Gbps = 1GB/s と換算される。
        Ethernet:    10Gbps or 40Gbps(最新) / 接続
        Infiniband: 32Gbps or 56Gbps(最新) / 接続
 Infinibandは、RDMAと呼ばれるremote memory accessの機構を持っている。メッセージを用いた同期メカニズムは無い。

    32Gbpsのinfinibandが4GB/s なので、京速コンピュータの接続の速度は、ほぼ、これの性能といえよう。ただし、京速コンピュータの接続は電力を食う電気接続なのに対し、InifinibandやEthernetでは、信号エラーが少なく長距離伝送が可能な光ファイバー接続である。以下のサイトによると、大きさは京速よりも、ちょっと大きいかもしれないが、値段は1接続$500ぐらいだろうか。

        Infiniband製品: http://www.atmarkit.co.jp/fnetwork/tokusyuu/51ib01/01.html

値段を簡単に比べてみよう)
 京速と同じ88,128ノードのシステムを考える。詳細は検討していないので、かなり荒っぽい。まず、Infinibandを10接続もつけても無駄。PCIe 3.0接続になっているので、そこのバンド幅(通信性能)が足らない。ここは改善の余地がある。QPI直結が良いであろう。つまり、もしそうだとしても、最悪ネットワークボードだけを作り直せば用が足りる。オリジナルプロセッサだと、ソフトウェア環境にも金がかかる。量が売れないものは、ソフトの整備に苦労し、最後には敗退していくのは歴史が証明している。
アメリカでもネットワークをカスタムで作った並列コンピュータを扱うベンチャーがある。そして価格は格段に安い。今の世の中価格性能比が悪ければ、商売にはならない。

ネットワークを除くノード全て:  1,183ドル x 88,128ノード = 95Mドル、76億円=(1ドル 80円換算)


内訳)
  CPU 583ドル
  マザーボード 200ドル
  HDD, SSD: 300ドル

ネットワークに関しては後日考えたいが、プロセッサノードだけから考えると、1,200億円もあれば、かなりおつりが来るように思う。

記憶容量の増大にこそ着目すべき)
半導体技術の進化で一番恩恵を受けるのは、計算速度ではなくて、記憶容量である。LSIは物理限界と電力限界でスピード(動作クロック)向上は2003年頃に限界に至っている。となると速度をあげるのは並列処理が主体になる。素子数をNとすると、並列処理では、せいぜいO(N)の速度向上になる。これは、Nに比例ということである。ところが、記憶(状態数)はNの指数に比例する。O(2^N)=2のN乗に比例して状態数が爆発的に増えるのである。状態数の爆発的な増加を生かせるような計算アルゴリズムの改善こそが重要だと思う。
これについては以下に書いた)

2011年12月16日金曜日: LSIの進化の貢献は速度ではなく記憶容量にこそある


iPodで音楽が全部持ち出せるのも、デジカメにいれたFlash memoryに1万枚近く、何ヶ月分もの写真が十分な精細度で入るのも、電子ブックなら32GBの半導体メモリに1万5千冊越えと一生読み切れないほど本が入るのも、640MBのCDROM 1枚に人間の全遺伝情報が入る=32GBのUSBに50人分の遺伝子情報がはいる(一人分は、1.44MBのフロッピーでも十分という話もあるが。。)のも、記憶容量の急速な増大の恩恵であるが、さらに状態数という観点に注目すれば、その恩恵は天文学的な量の差につながり、質的な変化を及ぼしそうな予感がする。

世界2番では駄目なんですか?)
地球シミュレータが、長きにわたりLinpackというベンチマークで世界トップを達成したが、日本のIT産業はさほど活性化していない。

地球シミュレータ)
http://ja.wikipedia.org/wiki/%E5%9C%B0%E7%90%83%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF

なのに、またもLinpackというベンチマークでの世界トップを狙って京速コンピュータを作った。世界トップが達成されたので、以前文句を言った方も両手放しで喜んでいるようである。

が、政府の事業仕分けでの質問「世界2番では駄目なのですか?」には誰も答えられていない。地球シミュレータが長期に渡り世界トップに君臨して、産業界にどういう貢献をしたかを理解できていれば、直ぐに答えられたはずなのに、常識的な質問をしただけの議員さんを、よってたかっていじめたのは、「魔女狩り」「村八分」以外の何物でも無い。メンタリティが時代遅れすぎるように思う。

第2次世界大戦の終わりに、空母と航空機の時代に変わり、制空権もないのに、戦艦大和と武蔵を作って、戦闘に向かうまえに航空機に撃沈されたのを思い浮かべてしまう。大和と武蔵は、戦艦としては非常に高性能であったし、造船所も毎日1艦を製造できるくらいの能力があったらしい。与えられた問題の中で最も良い解をだすのは、日本人は得意である。だが、問題自体が間違っていたら何にもならない。

日本は、ITの方法論、すなわち時代が変わったのに気づかず、1,200億円もの巨額の税金を投資して巨大戦艦を作ってしまったように思うのは私だけだろうか。。

京速コンピュータを支援した、ノーベル賞の学者先生は、このへんの工学技術のことを本当に理解していたのだろうか。。餅は餅屋に聞くべきではなかったのだろうか。ま、上記ソフトウェア開発の手法を考えると、餅屋も分かっていない節はある。

とにかく必要なのは、世界トップになったと両手放しで喜んでいないで、本当のところはどうなのかをちゃんと反省することであろう。

京速コンピュータ、世界一奪取への軌跡)
   http://special.nikkeibp.co.jp/ts/article/aa0g/110507/

そして、以下の中頃にも書いたが、IT技術に関していえば、アメリカは企業ですら、研究環境が破格によく、給与も破格によい。性能のよいスーパコンピュータがあるだけで、良い研究者が来ると考えるのは、現実を無視した夢物語にすぎないように思う。Stanford大学も、研究環境は日本の大学よりも破格に良いし、そもそも金も優秀な学生も、すでに沢山あつまっている。
2011年11月12日土: 日本の大企業を駄目にしているのは
アメリカはみどころのある生まれたての技術に投資している)

京大の山中先生が、人工幹細胞であるiPS細胞を発明した。世界で誰も考えていなかった画期的な発明である。マウスでは2006年8月に単独世界初。ありえないと、世界中から激しい批判にさらされた。続くヒトiPSでは、米ウィスコンシン大のジェームス・トムソンと同時に、2007年11月に発表している。が、山中先生らの用いたのは、難しいヒトの大人の繊維芽細胞であり、実証検証も進んでいたようである。さらには、その後つづくガン化防止の研究も山中先生らの手法は非常に着眼点が良い。ガン遺伝子c-Mycなしでの3因子化、細胞死(アポトーシス)の活用などである。

iPS細胞についてはいろいろ勉強したので、以降は、いろいろ追記して、そのうち別記事に移すと思う。山中先生や高橋先生をはじめとする山中研の研究者スタッフの研究者としての才能には、本当に感心してしまう。

名前がおしゃれ。それまではES細胞とか2文字が普通だったが、iPod, iPhoneにならってiPSとしたらしい。

 ES細胞: 胚性幹細胞(はいせいかんさいぼう、Embryonic stem cells)- 受精卵を使うので倫理問題がある。
http://ja.wikipedia.org/wiki/%E8%83%9A%E6%80%A7%E5%B9%B9%E7%B4%B0%E8%83%9E

iPS細胞: 人工多能性幹細胞(じんこうたのうせいかんさいぼう、Induced pluripotent stem cells)- 体細胞に3種類の遺伝子を作用させて作る。遺伝子を導入するときにウィルスを使うので、安全性の問題があるが、京大 山中研など日本勢の卓越した研究能力で急速に進化している。 http://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E5%A4%9A%E8%83%BD%E6%80%A7%E5%B9%B9%E7%B4%B0%E8%83%9E

京大山中研究室のhome pageは以下) http://www.cira.kyoto-u.ac.jp/yamanaka_group/?cat=12


どんな臓器にでもなれる人工多能性幹細胞(万能細胞とはちょっと違う)が、日本人により実現したのである。自分の体細胞から誰にも頼らずに予備の臓器が作れ、免疫問題がなく移植できる可能性があり、究極の医療技術につながる。脊髄損傷とかも治療できる可能性がある。(ちょっと誇大宣伝なので、詳しくは山中先生の本を)。

山中先生の本を何冊か読んだのだが、関係者によると、山中先生はノーベル賞をとれるかもしれないが、もはや実用化ではアメリカに持って行かれることが確定しているとのことである。

その理由は投資と研究環境の差である。アメリカでは、ニューヨーク州で1,200億円(向こう10年間)、カリフォルニア州が3,000億円(向こう10年間)の投資を決めている。ところが、日本では、山中先生が苦心された結果、大学間の共用で100億円(向こう5年間)の投資がとれたにすぎない。アメリカのは州の投資である一方、日本のは国の投資である。おまけに、カリフォルニア州は大赤字の州である。

(参照:「 iPS細胞 ヒトはどこまで再生できるか。」田中幹生(編著), 日本実業出版社 1,500円、2008年7/20 - 第3版、p.197より)

また、日本には研究を阻害するような規制も多い。人間の体細胞を扱うのを阻害する規制も多く、特許の問題や研究費配分の問題などである。(上記の本など)

同様に規制によって、GoogleやYahooに対抗しようと早くから研究していた日本の検索エンジンは全滅している。

    日本の検索エンジン業界の全滅)  http://agora-web.jp/archives/1257144.html

山中先生にとっても、究極の医療技術を完成させるのが夢なので、ご家族の事情等がなければ、引く手あまたで研究環境が全然良いアメリカに行ってしまうであろう。

政治家が文系ばかりで技術についてよく分かっていないから、昔の技術に投資して、次の技術への投資がちゃんとできない。

生まれたばかりの次の技術は最初は弱いのであり、そこに重点的に投資しないとならない。すでにある産業は放っておいても自分で動くはずであり、そうならないのは業界構造が腐っているからだと思う。そんなところに、金を投入しても、どぶに税金を捨てているようなものだと思う。

村社会だからこうなる)
日本は基本的に村社会なので、仲間内を守る、古い産業を守る、古い仕組みを守る。出る杭を打つ。変わり者は能力にかからず除外する。

卑近な例を挙げると、芸術や料理でも、画期的なものは日本では絶対に認められない、みな外国にでて、外国で相当に評価されてから逆輸入されている。

昨今の情報産業は、Dog Yearといわれるほど、競争が激しい。逆輸入を待っていては、もはや手遅れだと思う。

日本の村社会の特色とそれが破綻しつつあることついては、以下でも触れた)

2011年11月12日土曜日:平等・差別の日本社会。日本をやり直しのきく社会にするのは簡単ではないが、いずれやるべき

解説: 並列システムの信頼度計算)

http://oshiete.goo.ne.jp/qa/3474351.html にあるPCパーツの信頼性データを参照する。

ただし、
  • 上記のwebにある平均故障間隔(MTBF)から計算すると、マザーボード(MTBF: 10万時間) ATA-HDD(MTBF: 40万時間RAIDなし-コモディティボードを想定) とする。これを用いて、サーバノードを構成し、並列につなぐとする。ネットワークや電源の信頼度はここでは考えない。実は、電源が一番故障率が高いらしいが
  • 1時間で1台のサーバ(以下ではノードとも言う) が故障する確率は12.5ppm (1年間に1台のサーバが故障する確率は10.75%)となる
  • 並列システムを構成するノード=N が増えると、単体故障率がpの場合。1 - (1-p)^N に一度故障する
これを計算したのが以下の表になる。通常のPCの部品を1万個使って1万ノードのシステムを作ると、1日に3回どこかが故障することになる。


IBMでも、京速コンピュータでも、俗にHPCといわれる科学技術計算システムは、ハード的に信頼性を担保している。それでもどこかが壊れると、それまでやってきた計算は全部失われる。

一方、Googleで用いている、ソフトウェア手法のMap Reduceは低信頼の普通のノード(パソコンに毛の生えた信頼度のサーバノード)をたくさん用いる。そして、サーバが途中で死んでも、その部分だけやり直して結果は程なく得られる。これが世の中の主流に思う。

IBMの場合には、縮退運転という台数を減らした運転ができない。なので、どこかが故障すると、システムをそこを境に分割して、2つのシステムとして運用しないとならない。
それを避けるために、プロセッサや通信機構には、様々なハード的な高信頼化機構(ECCや冗長構成など)が投入されている。当然オリジナルプロセッサになるので、トランジスタ数は増えるし、値段は高い。それでも、性能を落とさずに技術で高信頼化させようとしている点では、がんばっているといえよう。


blog comments powered by Disqus