スパコンは時代錯誤なのか?

スーパーコンピューター大艦巨砲主義、時代遅れの技術だ」と言われると、そうなのかもしれないと思うのに、「素パーコンピューターは戦艦大和、無用の長物だ」と言われると、むしろ「戦艦大和に例えられるなら、むしろ必要だろJK」と思えてしまう、浪漫に弱い男の子ではありますが、そういう感傷論と離れたところで疑問に思うのは、並列コンピューティングの方が未来無くね? という事です。


安いマシンを束ねて分散して早くする。言うは易く、行うは難し。
いや、確かに科学計算の分野ではそれでやってもらった方がいいんです。最終的にはたぶんそっちの方が早いからです。変態的な頭脳を駆使して気合いで超並列なプログラムを組んで頑張って下さい。


ただ、業務プログラム……ようするに一般のユーザーが手にするプログラムの大半は、並列化とか無理です。
これは技術的な問題ではなく、人間的な問題……つまりはプログラマのスキルの問題なのですが、業務に従事するプログラマの 99.5% は簡単なプログラムさえ書けないという事実から目を背けないで下さい。彼らに「並列化しろ」と言ったところで無理です、絶対。


「いやマテ。じゃあそいつらはどうやってプログラムを開発してるんだ?」


まっとうな疑問です。確かに世の中には多くのプログラマが居て、多くのプログラムが作られています。
……その開発手法を知れば、並列化に向かない事は明らかなのですが……仕方がありません。私は彼らの秘密*1の「開発手法」を聞いた事があるので、こっそりお教えしましょう。


「コピー&ペースト + トライ&エラー」


これが彼らの標準的な「開発手法」だそうです。この手法は並列化プログラムに向いていません。
並列化プログラムにおけるバグの最もやっかいな性質は「再現性の無さ(動いたり動かなかったりする)」にあり、これが彼らの手法の中核を成す「トライ&エラー」の働きを著しく低下させるのです。


さあ、改めて問いましょう。並列化は本当に現実的な解なのですか?
この圧倒的な適応不能を前にして、並列化の「未来」は自信を持って「リアル」だと言えるものであり続けていますか?
……反省し、やり直す事は恥ずべき事ではありません。我々は考え直すべき時に来ているのではないでしょうか?
時代はむしろ直列化、直列化にこそコンピューティングの本当の未来があると思いませんか?
世界(というよりも圧倒的多数のプログラマ)はシングルプロセッサの処理能力向上を求めているのですよ!!


……プログラマの履歴書(ドキュメント)にはスレッドセーフかどうか書いてあるべきだと思う今日この頃。

*1:もちろん主に対外的な信用に関わるから秘密なんでしょう