はてなキーワード: 演算とは
「除法は乗法の逆演算」
という「定義」にいきつく。
それは、小学生にそういうきまりだからと教えるのと同じでしょう。
全く違う。「逆数を掛ければいい」というのは「除法は乗法の逆演算」であるという定義(これは直観的な理解と一致するといってよいだろう)から導出されてきたものだ。これは決して自明ではない。
嘘だと思うなら、体の公理系を与えて「除算は逆数を掛けることと同値なことを証明せよ」というのを大学新入生あたりに出してみな。できない奴続出だから。
もちろん、こういう代数的な公理系は我々の直観を正当化するために後から作られたもので、小学生相手にはそういう「直観」的なレベルの説明を教えている。それについては「水道方式」をぐぐってもらえばわかる。そしてそういう直観的な説明というのを抽象数学の用語で言えばああなるだけだ。
なんか色々レスがついて嬉しいですねw
FizzBuzz問題って一般的に、3の倍数と5の倍数以外の場合は数字を表示しないと駄目だよ
それは知りませんでした。
後、def文の中で再帰してるけど、これ、馬鹿でかい数入れたらメモリ使い切らないか?
Phythonは詳しくないから、嘘言ってるかも知れないけど
他には、何も15で場合分けしなくても、改行しなければ3の倍数と5の倍数とそれ以外で済むから
剰余演算の回数が減る
この辺はいかにも興味が無い領域ですねw
メモリは多分使い切ると思いますが、使い切った場合とかめんどくさくて考えたくないです。
他には、何も15で場合分けしなくても、改行しなければ3の倍数と5の倍数とそれ以外で済むから
剰余演算の回数が減る
これも興味ないですね…。計算回数って、数学(数理モデル)を計算機に乗せたから出てきた問題で、実用上は重要だけど数学としてはどうでもいいなあって思っちゃいます。
人間は神になれる。なぜなら神とは人間がつくった概念に過ぎないから。そんなものをつくったのは自らの能力に限界があり、その限界を突破することを本能が妨げていたからだ。
科学は人を解き放つ。自然という巨大な存在の前にひざまずくのではなく、人類が自然を管理する。
そもそも人類は好奇心を持ち、世界を探求したいという欲求に駆られてここまでやってきた。
その先にあるのは、大いなる母たる自然との対立に他ならない。母たる自然は人類が赤子のままでいることなど望んでいない。そうでなければ、人類に「知恵」と「好奇心」など与えなかったはず。
現在のところ母たる自然は何も言わない。だが、自然は人類を滅ぼしたいわけでもない。私が思うに、自然は人類がゆりかごから飛び出し、新しい世界へ旅立っていくことを願っているのだと思う。
いずれ何億年か後、この地球は太陽に飲み込まれる。その時、地球という小さな星の「記憶」を持ちだせるのは、知恵あるヒト、人類だけである。
人類は太陽系を越え、外銀河、外宇宙へと地球の種を運ぶために母たる自然が用意した「手段」の一つなんだと思う。
文明はすべて自然の上に成り立っているし、文化は自然のオマージュでしかない。つまりいくら自然から離れようとも本質的に人類は自然と共にある。
しかし、自然そのものは成長しすぎた人類がおさまるには小さすぎるゆりかごだ。小学校に上がった子供が、赤ん坊用のベッドで眠れるわけはない。
だから人類は新しい世界、すなわち人類にとっての理想の楽園をつくらなければならない。
現在研究が進むVR空間もその一つ。環境を破壊し地球の寿命をも縮めるまで大きくなった人類は、もはや自然と共に生きられない。だったら自然をシミュレートしてしまえばいい。人類がつくった自慢の息子、コンピュータの力を使うのである。
VR空間では様々な制御が可能だ。この空間はスーパーコンピュータによって実現できる。VR空間においては、何ら制限されることなく人類の欲望を叶えられる。森の中を舗装された道路で走るという楽しみは、現実空間では自然破壊に繋がり今後は禁止されていくだろうが、VR空間ならそのようなことを考えずにいくらでも出来る。
高さ1000mのビルを建てることも容易に出来、必要ならもっと高くすることも可能だ。現実空間で問題となっている資源の枯渇は、VRの自由な空間には関係がない。
現実とは人類がもっともらしいと感じる度合いが強い世界を指す。ならば、スーパーコンピュータの演算速度と五感のような世界を感じるためのインターフェースさえそろえば、VR空間だって現実空間となりうる。いや、人類が地球環境を本当に保護したいと思うなら、人類にとっての現実空間はVR空間に移行しなければならない。それが人類のためでもあるし、地球のためでもある。
そもそもCとかC++の初心者で?のことを良く理解していないレベルに読みにくいよ
だいいち、そのレベルなら ifで書けばいいだろうと。
そもそも
while( (*p++ = *c++) != '\0' );
c = param [ a>=0?a:0 ];
みたいな、使い方 をして 他の演算の引数に3項演算子を使ってるならわかるが
単なる代入だけで、しかも複文でネストすんならifで書けや!
ネストするってことは条件があるていど複雑ってことで、あとで、デバッグ用のif入れたりprintf入れたり改造する可能性があるってことを考慮してくれ。
変に?をネストさせて、『他人が間違えて』間違った改造いれたりしたら、どうするつもりなんだと?
間違った奴が悪い?複雑なネストして、間違いやすいコードを残した奴も悪いよ。
簡単にいえばたった、5行のスパゲティ。
可読性が悪いにもほどがある・・・と思った1関数
http://blog.livedoor.jp/dankogai/archives/51490675.html
inline U64 powmod(U64 base, U64 power, U64 mod){
return base >= UINT_MAX ? powmod_gmp(base, power, mod)
: power >= UINT_MAX ? powmod_gmp(base, power, mod)
: mod >= UINT_MAX ? powmod_gmp(base, power, mod)
: powmod_64(base, power, mod);
}
3項演算子を連打とか・・・
if(base >= UINT_MAX){ return powmod_gmp(base, power, mod); }else if(base >= UINT_MAX){ return powmod_gmp(base, power, mod); }else if(mod >= UINT_MAX ){ return powmod_gmp(base, power, mod) }else{ return powmod_64(base, power, mod); }
って事で、要するに
if(base < UINT_MAX && power < UINT_MAX && mod < UINT_MAX){ return powmod_64(base, power, mod); } else { return powmod_gmp(base, power, mod) }
って事じゃないのか?実際Cは左辺優先評価で1つ目がFALSEの場合2つめ以後は評価されない(してはいけない)でelseにジャンプ だからif演算の回数だけなら等価
まぁ、確かに、パイプラインを考えればthen節とelse節は等価ではないので、データによって真ん中の書き方のほうが下より早いとか遅いという差はでるけど・・・
なくても、真ん中か、下の書き方でいいよなぁ。
まかり間違って
if(base >= UINT_MAX || base >= UINT_MAX || mod >= UINT_MAX){ return powmod_gmp(base, power, mod) }else{ return powmod_64(base, power, mod); }
と書いても、おそらく、コンパイラ先生がただしく最適化してくれればおなじになるだろう。正しく最適化しないと、コレは遅い可能性もあるが、そんなことはまず無いだろう。
いや?演算子が悪いとは言わないけど、チーム組んで初級の若いプログラマがこういうコードを読めるとは思わないし、読む必要があるとも思わないんだが・・・
ジェネリックに、みんなに分かりやすく。
トリッキーに書くのもいいけど、それは、速度かメモリかで恩恵が受けられる場合で、メリットがないなら、初心者でも読みやすく、メンテしやすくする。って間違ってるのかなぁ?
?連打の方が世の中読みやすいのか?
どうでもいいけど・・・UINT_MAX って、最大値+1じゃなくて、最大値だよなぁ・・・。確か>=の=の有り無し逆じゃね?
もっと、どうでもいいけど、mmレジスタとxmmレジスタのmod演算ってクロック数違うんだっけ?だれか、教えて。ifでパイプライン崩すのとどっちがいいんだろう。
http://anond.hatelabo.jp/20100701114532
http://anond.hatelabo.jp/20100701115534
http://anond.hatelabo.jp/20100701122652
基本的にサルだと思ってもらって構わない。男だってアホだとサルみたいなもんだろ?
まず、家計簿がつけられない(そういう努力もしないんだから当然)
甘い。そこらのアホは筆算しないと答えが出せないんだよ。
暗算してから筆算で確かめる。暗算できないから筆算する。この二択。
例えば企業づとめで計算に信頼性を求められるなら、電卓含めた机上の計算と暗算はセットでやるかもしれない。
「ヤルだけ」ならそれでもいいかもしれない。
しかし、彼女らは気分や本能ですべてを決めるので基本的に「配慮がない」
すなわちマナーが悪い。
それでも「ヤルだけ」ならいいだろうね。「ヤルだけ」ならね。
学歴で杓子定規に事を決めるのは顰蹙を買うかもしれないが、身分相応の人たちがくっつくのが結局当事者も社会も円滑に回るんだよ。
その解析に、現存するPCでは生きてるうちに終わらない程度の演算が必要であればいい。
なるほど。指定ツールでのビルド時にRSAとかでキーを生成しして自作ゲームのバイナリに埋め込むわけですね。
でもそれってコピーしたゲームのソースを、その指定コンパイラを使ってリビルドしてキーを付加すればいいだけ
なんじゃないかな。キー生成がブラックボックスでもコピー+キーは生成できちゃうような。
ばらまく人に「指定ツール導入」&「それなりの知識」という負担が増えるから多少はましな気もしますが、現状でも
ROMから抜くのはど素人じゃできないわけで、そんなに難しい話じゃない気が。
まあ、こういう方法があるのに、それをやらない、というなら自作文化はその程度の代物だった、ということで、
より納得しながら、滅びるのを眺められますw
プロアクションリプレイ(PAR)なんかは、(普通に目に付く情報として)非正規品実行能力がないよ。
あれは、ライセンス製品ではない自分自身のプログラムを実行して、そこから自身に刺さった正規ROMを実行するというもの。
やりようはいくつもあると思うよ。
自作するためのツールを限定して、ソースをビルドするときにできるキーファイルがなければ動かないようにするとか。
バイナリにも対応する種を仕込むようにして、キーファイルはバイナリからの逆生成を不可にする。
その解析に、現存するPCでは生きてるうちに終わらない程度の演算が必要であればいい。
多分やらないだろうけれどね。
2、枕営業しない
3、汚い言葉を使わない
→ニコ動の「仕事を選べないミク」タグに代表されるように、権利関係がオープンなアイドルは作成者によってはイメージを崩すとんでもない言動を行わせる事ができてしまう。これを防ぐためには、現在のアイドル事務所のように権利関係をガチガチに固めておく必要がある。するとどうなるかというと、そのバーチャルアイドルの放映権を巡っての競争が始まる。この競争の度が過ぎれば、作成者やマネージャによる枕営業ということも考えられる。結局のところ、アイドル本人が枕営業をしなくなった分、周りのリアルな人間たちがその代わりを行うようになるだけである。もっとも、アイドルそのものが枕営業をしない(できない)ことに大きな意義があるという考え方は分かる。
1、出演料が安い
初期パラメータを設定して、コンピュータに演算させれば自動でコンテンツを作ってくれるようにならない限り、バーチャルアイドルを動かし、喋らせる作成者は必要になる。そして、現状を見れば分かるように、漫画家や映画監督といった作成者が受け取る対価は、その作成物に人気があるほど高騰する。また、バーチャルアイドルを業務として実社会で活動させるには、前項のような権利関係を処理するための事務所も必要になる。そう考えると、アイドルそのものに支払われる料金が安くなっても、その周りの人間に対する支払に回されるだけではないだろうか。
5、歳をとらない
→これはメリットだろうか?自分が10代の頃に夢中になったアイドルが、自分が30代、50代になっても未だにその当時の外見のまま活動している姿を見て、はたして心穏やかでいられるだろうか?少なくとも、自分の両親がTVでなつかしのアイドルをみて、「ああ、年取ったなあ」と言っているとき、(あんなおじさん/おばさんになってショックだなあ)と残念に思っている反面、(ああ、彼ら/彼女らも自分達と同じく年を取っているんだなあ)というある種の一体感、安堵を感じているように見える。バーチャルアイドルはオプションでそういったモデルも見ることができるだろうが、それはあくまでもオプションである。はたしてそこに、リアルに加齢するアイドルに感じる一体感や安堵は生じるだろうか?
批判的なことばかり書いてしまったけど、自分的にはバーチャルアイドルは面白そうだと思う。タモリさんと初音ミクが笑っていいともとかMusic Stationでトークする企画があったら、ぜひ見てみたい。
んなしちめんどくさいことやんなくても
0=-1*(1-1)
=-1*1+(-1)*(-1)
=-1+(-1)*(-1)
だから
1=(-1)*(-1)
で終わり。
数学的には積の分配律と零元の存在と積演算の単位元の存在だけあればいい。
(-1)*(-1)の計算をしてるのに2なんていう数字を出すのはセンス悪いと思う。
代数的に納得できない奴には、-1を掛けるのは原点に対する点対称演算ですよーとか言っとけばいいんじゃね。
1次元数直線上で-1の原点対称をとれば1になる。
それは(-1)×(-1) = 1を、それ以外の演算を使って導出しただけで、わかるわからないとは別の概念だと思う
例えば、1+1が2になることは、リンゴ1つとリンゴ1つを併せるとリンゴ2つになる(!)って言えるけど
(-1)×(-1) = 1に対応するリンゴの操作って何だろう?
当然 1 + 1 が 2にならないような世界は存在するし、それは俺達が住むリンゴの世界とは違う
俺達の世界は、1 + 1 が 2 になるようなリンゴの世界だと納得することが、1+1=2だと納得することなんじゃないのかな
俺が虚数を素朴に納得できたのは、マクスウェル方程式勉強してからだし
ちなみに、実数は未だに素朴に納得できていません
http://ja.wikipedia.org/
未来年表 : 生活総研
http://seikatsusoken.jp/futuretimeline/
http://www.tanken.com/yosoku.html
みんなが望む方向に未来は変わっていくのかも、と思ったため。
徹底した思想をお持ちなのであれば、なぜにそこで「知能指数100」だなんて、ぬるい基準を出すのか、ということを問いたい。
http://ja.wikipedia.org/wiki/%E7%9F%A5%E8%83%BD%E6%8C%87%E6%95%B0
の解説を見てもわかるとおり、
齢が違う人同士の知能を直接IQで比較することはできない(たとえば、IQ200の5歳児とIQ100の10歳児の知能は同じである)
…
IQは万能ではなく、主に左脳の機械的な演算能力のみを測っているに過ぎず、この検査の対象が知能のすべてを含むわけではない。記憶力などはIQとは関係がない。
…
精神年齢は12、13歳を過ぎるとそのままの定義では不自然なIQが算出される
…
「従来のIQ」の数値は、あくまで知能の発達の早さを意味するものであり、異年齢の他人との数値の単純な比較によって直ちに天才的であるとか成人より高知能であるとかを断定することはできない。例えば、5歳の児童が、10歳の平均的な児童と同じ知能を示せば、IQは200になる。そして、IQ100の11歳児とIQ200の5歳児を比べれば、平均的な児童であるIQ100の11歳児の方が、IQが突出して高いIQ200の5歳児よりも知能は高いことになる。この例からも分かるように、IQの数値は、知能の高さの絶対値ではないのである。
また、5歳でIQ100の人が7歳になったらIQ90であった場合、一見すると数値が低くなったので知能が退化したかに見えてしまう。しかしながら、5歳時のMAは5歳0ヶ月であり、7歳時のMAは約6歳3ヶ月である。このため実際には知能水準は伸びている。
…
外国人などの非ネイティブ者、言語障害者、非識字者などの場合は、言語面に重点を置いた検査で著しく低い数値がでる場合が多い。
…
IQはその測定のために便利な表記法として編み出されたものでしかない。このためIQは知能全般にわたる能力を示す数値と考えるべきではなく、知能検査の内容に含まれる言語的能力や論理的能力をはかることができる目安程度のものと考えるべきである
とか。
コレ読むだけでも「知能指数100以下」という基準があんま使えないとおもうのだが。
タイトルは単なる直感で、グダグダとまとまらない文を書こうと思う。
まず、下の記事読んで、上のように思っていたことを思い出したんだな。
本当は、ゲハでやろうかと思ったんだが、ちょっと長めの文章になりそうなので、ここで垂れ流すことにした。
http://www.inside-games.jp/article/2009/12/08/39242.html
ソニックの父「日本の強さはマンガ的表現だが、今は活用されていない」と語る
「ゲームは映画や音楽を含んだエンターテイメントの一つです。私は映画がゲームの兄的な役割となっていると思います。日本の映画業界は長い歴史を持っていますが、他国の映画が入ってくるようになるとハリウッド映画が最も人気となりました。そんな環境下でも、日本のアニメーションは大きな賞賛を得るようになりました。これは大きな事です。しかし、我々は現在ゲーム業界がハリウッド化しているのを見ています。そして、カートゥーンスタイル(マンガ的スタイル)における日本の伝統的な強さは隅に押しやられています」
海外市場を意識したリアルなグラフィックを重視するあまり、日本ゲーム界の本来の強さであるマンガ的な表現が活用されていない、とするのが大島氏の考え方である模様です。
まま、言わんとしていることは分かるけど、前提として、漫画の表現とアニメの表現はまた違うということもあると思った。もちろん、アニメーションでもカートゥーン的な表現ならば、100万クラスはごろごろいるのは分かる。だが、例えば、(セル塗りっぽい表現の)日本的アニメキャラを使ったゲームでミリオン突破したゲームがあるのか、という点が気になる。
まぁ最近だと、「テイルズオブ~」はかなり売れているのは分かるけど、自分の記憶では、日本的アニメキャラゲーは、セガサターンのギャルゲー全盛時代に50万本クラス売れていた程度で、ミリオンクラスはなかったような気がした。(多分例外もあるだろうけど。荒い議論として読んで頂ければ)
そう考えると、ゲームにおけるアニメ的表現というのは、マーケティング的には結構リスキーなのかも知れない。(つまり、ゲームユーザーの価値観では、ラブプラスのポリゴン少女>ときメモ4のアニメ少女)
つまり、最大で売れて50万本というのが、ゲームにおけるアニメ的表現の限界性を表していないか。
うまく言えないけれど、ゲームをゲームたらしめている要素とアニメをアニメたらしめている要素は相反しているんではないかとも思う。泣きゲーの「感動(他人を見て感動する訳なので、他者視点)」とモンハンの「手応え(自分の感覚で感じる物なので、自分視点)」が相反するように。
例えば、2D美少女とビジュアルノベルと物語や文学のような東浩紀氏が好きそうな方向性というのは、「コンピュータの演算能力をどうゲームの面白さに活かすか」というゲームの本道とは外れており、ゲームでどうアニメ的世界観(つまり、アニメ的イデアの世界)を構築するか、というやや横道にそれたジャンルなのだと思う。
では、そういう意味では、JRPGというのは所詮、傍流にしかなれないのだろうか?
正直よく分からない。
なぜなら、このジャンルは「感動」と「手応え」の両立を目指しているように見えるから。
現世代機において、その試みは、現在の所、失敗しているとは言えるだろう。
しかし、例えば、スーファミ時代のRPGは「感動」と「手応え」が両立していなかっただろうか?
スクエニ社長の発言を聞いていると、今後スクエニはJRPG路線を縮小させそうな気配である。
ただ、何かがきっかけにまたJRPGが世界に衝撃を与えるかも知れない。
それは誰も断言は出来ないのではないだろうか?
細々とでも良いので、JRPGの血は絶やすべきではないような気がする。
俺の住む世界はアイティーとやらに支えられているらしい。
アイティーに関われば、俺の住む世界をさらに素敵なものにしていけるに違いない。していきたい。
そう願って、何も知らなかった文系新卒の俺が金融系のシステム会社に入って、もう一年以上が経つのだ。
昔、お遊びでゲームを作ったことはあった。RPGツクールなんかが好きだった。
パズルみたいで楽しかった。コンピュータの中身が理解できて、わくわくした。
楽々と基本情報技術者の資格を手にし、半年後にはほとんど勉強もせずにソフ開も取得した。
研修の課題では同期の誰よりも速く、短く効率のいいソースを仕上げた。
現場に出て、本番機に触った。
30年間親会社を支え続ける偉大なシステムの中身を、わくわくしながら覗いた。
そこには、俺の求めていた世界とはまったく違うものが広がっていた。
俺が産まれる前から、入れ替わり立ち替わり何人もの手によって継ぎ足されたロジック。
何千行にもわたって、似たような処理が何回もひたすら繰り返される似たようなモジュール何十本。
1993年に行う臨時処理のロジックが、今もコメントもなしに埋め込まれている。
仕様がわからなくなれば、キャビネへと走って、黄ばんだ方眼紙に鉛筆で書かれた仕様書を探し、
そして修正履歴のみが書かれているのを確認して肩を落とす。
半年後に臨時で行われる業務に対応するため、いくつかのモジュールについて、処理可能なユーザーコードをひとつ、条件に加える。
与えられた期間は2週間だった。ずいぶん長いなと思った。
何枚もの設計書を書いた。つまり、方眼紙状のExcelテンプレートに同じ文章をコピペした。
追っていったモジュールはどれも、ヒープもソートもメモリ管理も論理演算も出番がなかった。
あるのはただ、IF文とMOVE文とばかりだった。ソースの難易度は使われている命令の数とは関係ないことを学んだ。
テストデータを作るため、階層型DBを何回も辿ってデータをアウトプットさせるモジュールを書いた。資格試験で学んだSQLは、無用の知識だった。
協力会社への仕事割り振りやユーザー対応に毎日忙しそうだった上司が、夜遅くまでの残業続きでくまのできた目を皿のようにして設計書をレビューした。
ロジックを丸々コピペしてソースを修正し、コンパイルし、実行した。
2週間はあっという間だった。
俺のせいで、半年後以降は使われないロジックがソースにまたひとつ増えた。
今回の対応については、Excel方眼紙にレポートをまとめて共有ドライブに入れておいた。
だが共有ドライブの検索には時間がかかるし、Excelシートの中身となれば検索から漏れることも多い。
きっと誰にも読まれないだろう。
2バイト文字が使えない関係上、原則、ソースにはコメントはあまり入れられない。
数年後の新人はきっと、俺の書いたモジュールを見て「このロジックは何だ」と首を捻るんだろう。
数年後の俺はきっと、今回のレポートを共有ドライブから探し回って新人にパスを教えてから、
協力会社の管理に追われる作業に戻って目の下にくまを作るのだろう。
俺がやりたかったシステム開発って、こんなものだったのか。
俺は部署の中で、俺の望む仕事を探し続けた。
先輩たちは忙しくて誰も興味を持ってないけど、自動化できる作業はいくらでもある。
よく使われるExcelシートを改造し、定例作業をクリックだけでできるようにした。
ExcelVBAとはいえ、書いていて心地よかった。引数が明確な関数と変数のスコープと全角文字があったからだ。
COBOLで打つプログラムより、控えめに見て100倍くらいの生産性を発揮できていたと思う。
先輩たちは喜んでくれたが、ただし俺の仕事を、あまり仕事とは見なさなかった。
それでもよかった。業務時間外は俺は相変わらずスクリプトを書いていた。とても楽しかった。
VBAから入って、WSHなんてものを知り、やがてJavaScriptを学び、ネットで資料を探し、はてなを知り、はてブでWeb技術についての記事を読みふけった。
知れば知るほどに、どんどんCOBOLが、メインフレームが嫌いになっていく。
先輩は誇らしげに言う。システムはたいしたことをやっていない。業務知識こそが大事なのだ。
ユーザーより詳しく業務を理解し、適切に提案し、設計する能力。
協力会社を率いて、わかりやすい文書で指示を行い、スケジュールを調整する能力。
人を動かすぶん、責任も大きくやりがいもある。優秀な人材こそが我が社の強みだ。
そんな人材が育つよう、我が社は安定して働ける環境と福利厚生を整えている。
ああ、そうだよ。先輩、あなたは正しい。
俺だってメインフレームの信頼性のすごさはわかってる。
密なユーザーとの関係から生まれるシステム子会社としての強みも認識してる。
それだけじゃない。社内環境も悪くない。給料もいいし休みも取れるし先輩は優しい。
ここは、いい会社だ。
けど駄目なんだ。
30年前のシステムを枯れた言語でツギハギする仕事じゃ、俺の心はやっぱり満たされない。
ユーザーの業務知識ばかり身につけたって、俺自身の人生には、いいことなんてない。
俺が求めていたのは、この仕事じゃないんだ。
社内の誰も、TumblrもTwitterもやっていない。ライフハックなんて聞いたこともない。
Joostやモバゲーや2ちゃんねるが社会に与える影響について誰も語れない。
休日はゴルフや酒に興じている。自宅にPCを持ってない人までいる。
おかしいことじゃない。普通の人たちだ。
それどころか彼らは、仕事とプライベートを切り分けている、立派な人たちだ。
でも、やっぱり俺の生きていきたい世界は、ここじゃないんだ。
たぶん俺がいるのは極北なんだろう。
ここが、人月計算とExcelとスーツの世界というやつなんだろう。
俺は80文字×32行の緑文字を見つめながら、遠い夢を見続ける。
計算する問題が分割されたままで良い、という領域においては当然そうなる。分割したもの同士が相互作用しないのなら。
残念ながらシミュレーション系においてはそらGRAPEが扱うなかでもごくごく一部ぐらいだけがそうで(普通は共有メモリ内で参照できるからそんな高いコストを払わなくて良い)、それ以外はメッシュだろうが格子だろうがIBだろうが最低でも隣接する領域との相互作用計算のための共有メモリ外との通信が発生する。
スケールアウトできないのはものすごく雑に言うと、
・扱う問題が原理的に向いてない
・計算機同士のインターコネクトが今でも遅すぎるのにこれ以上遅くしたらまさに演算系の無駄
ってとこがものすごく大きい。
評価・統合などなどまあ使う方式で言い方も使い方もいろいろあるけど、分割しただけで統合したりする処理が要らないんだったら、まさにRoadrunnerのOpteronブレード部分は無用だよ。計算するだけならCellブレードとインターコネクトボードがあればいい。だがOpteronを使わなきゃいけない(というわけでも無いんだけどあれぐらいの処理能力とメモリバンドとローカルメモリはバランス的に欲しい)というところに何かがあると感じてくれ。これをかいてる自分増田は定量的に~とか言われると式をグダグダ書き連ねないと説明できない低脳なので。
長大ジョブを投入して計算中でも、計算を止めないままノードごと別のノードに引き継がせて、そのノードを捨てたり点検したり、ってのは超大規模クラスタではもちろんある。
(脱線するが、x86は縮退させにくいとか、信頼性が足りないとかいうのも最近みかけるけどそんなことはない。x86だからということはないし、ノードの設計とジョブの入れ方できまるようなもの。あとすべてのノードをVMにのせてジョブを続けながらLive Migrationした実証実験なんてのもある。x86系コア・メモリのRAS機能は充実してきてるとはいえまだ足りないが、RAS機能がホントに重要ならPOWERベースにすれば実績と性能の点で申し分ない。x86の出自云々をいうならsparcだって出自がアレだしね。zシリーズにまで同一コアが使われるPOWERとは違う。脱線終わり)
それにスケールアップといったときに地球シミュレータの例はあまり適切ではないとおもう。アレは元々いろいろとアップグレードしにくいシステムだったし。
どうせならアップグレードしやすいCray XT5や、今度のXT6あたりで比較しよう。ちょうどJaguarのコアアップグレードは4Phaseにわけて実行された。
http://www.nccs.gov/computing-resources/jaguar/road-map/
コアの入れ替えだけなんでかかった費用は支援費の二千万ドル含んで数千万ドル(ちょっと語弊があるけど)。
あとJaguarはNCCSの配下にあるというのは一つの特徴だろう。利用時のスケジュールポリシーなんかもほぼ全部載ってるので、読んでみるといいよ。ちなみにNCCSのトップページにはいつも今配下のクラスタに投入されてるジョブがでてる。
ついでにGoogleのシステムはパソコンがベースって言って良いのかわからないぐらい特化してるよ。だから省電力でもある。それを安く調達するのはまさに規模の経済。
ToRスイッチを完成品じゃなくてBroadcomからチップ買って自前で専用のスイッチつくっちゃうのも規模の力。
最近いろんなところで引き合いに出されるNACCのGPUクラスタはコスト面とアルゴリズムで比較対象にもいい。簡単にいうと「苦手」なものを対象としないことで他の問題に最適化したのが濱田先生のところのチームがつくったクラスタ。特性を把握して性能を引き出して、実際に運用したという意味でとても良い研究なんだけど、故に超大規模クラスタとかで走らせることになる巨大CFDモデルなんかは対象外のシステムだ。
だから最近のスパコンうんたらかんたらとやらでNACCの話を持ち出してる記事やらエントリやらを見かけたら、そこに書かれてることは無視するといい。持ち出してくる奴は、基本からして間違ってるか何でも繋げればスケールアウトすると勘違いさせたがってるだろうから。