NEWREEL
Feature

いまの自分に疲れている人のための あおぞら技術用語
「マルチスレッドの巻」

清水幹太 清水幹太 Dec 20 2018

清水幹太さんによる技術用語連載、第8回は「マルチスレッド」について。わかりやすさはもちろん、みんみんの餃子が食べたくなる解説となっています。

FacebookTwitterLinePocket

「みんみん」と「正嗣」

餃子といえば宇都宮だ。少なくとも私にとっては宇都宮だ。いや、浜松だという人もいるだろう。宇都宮と浜松の二都市は、毎年のように総務省の「年間餃子消費量」のトップを争ってきた。かつてはこの「年間餃子消費量」、宇都宮の独壇場だった。しかし長年の宇都宮の牙城を浜松が崩したのが2011年。続く2012年も浜松がトップ。2013年に宇都宮が捲土重来でトップを奪還したものの、翌年2014年から3年間は浜松が餃子日本一を守った。

そして2017年。宇都宮はトップを取り戻した。このように、宇都宮と浜松は、さながら春秋時代の呉越のように、栃錦と若乃花のように、弱虫ペダルの総北高校と箱根学園のように、常にしのぎを削ってトップを争いお互いを高めあって来たのだ。たぶん。

とはいえ、宇都宮の餃子と浜松の餃子は結構違う。まず、宇都宮の餃子は野菜が多い。浜松は肉が多い。そしてその野菜部分、これも違う。宇都宮の餃子は白菜ベースであり、浜松の餃子はキャベツと玉ねぎだ。つまり、宇都宮の方がシャキシャキしている。しかし、浜松の餃子はこのシャキシャキ感を(たぶん)付け合せで補完している。それが、浜松餃子のシンボルでもあるところのもやしである。浜松の餃子には必ずもやしが付け合せでついてくる。宇都宮の餃子に付け合せはない。

皿を囲むように並んだ餃子、その真ん中にもやしが乗っている。それが浜松餃子だ。一方で宇都宮餃子はもっとストレートだ。6個とか12個の餃子が細長い皿に屈託なく置かれている、いわゆる多くの人がまっさきに想像する餃子のあるべき姿を体現している。

で、私にとって餃子の街は宇都宮だ。別に浜松がどうということではなく、単純によく食いに行っていたのだ。大学時代、ジャズサークル仲間だった岩下くんと車を飛ばして、よく宇都宮に向かったものだ。当時はろくに学校も行っていなかったし、原則的にとても暇だったので、単純に「餃子食いに行く」というだけの目的のために何回も宇都宮に行った。行き帰りの車の中では、常に大音量でジャズを流していたから、今私が住んでいるニューヨークのジャズライブなどに行って懐かしい曲を耳にすると、宇都宮の餃子を思い出したりする。

ところが宇都宮の餃子というカテゴリーの中にも、二大勢力がある。「みんみん」と「正嗣(まさし)」だ。両方とも餃子専門店の名前だ。原則として、宇都宮ではこの「みんみん」と「正嗣」のどちらかが正しい餃子とされていて、その人気を二分し、各々根強いファンを持っている。「みんみん」と「正嗣」の本店は、宇都宮の中心部というか、JRと東武の駅の間くらいに位置し、徒歩1分くらいしか離れていない。二店とも、常に行列ができている。まあなにしろ「みんみん」と「正嗣」なのだから当然のことだ。ちなみに、みんみんも正嗣も宇都宮各所に支店があるが、(たぶん)本店が一番おいしい。

筆者の理解だと、「みんみん」は王道というか、餃子オブ餃子であり、なんというか、有無を言わさない王者感がある。「正嗣」は、ニンニクを駆使した攻撃的な餃子だと思う。筆者はどちらかというと「みんみん派」ではあるが、岩下くんと宇都宮に行く際は、常に「みんみん」と「正嗣」をハシゴし、合計して各々数十個もの餃子を頂いたものだ。

以上の、宇都宮の餃子に関する文章は、あまり今回の本筋とは関係ない。書き出したら止まらなくなってしまっただけだ。しかし、自分にとって宇都宮の餃子の「良さ」というか「強さ」というのはもう1つ別のところにある。

宇都宮の餃子の「強さ」

それは、メニューである。

「みんみん」も「正嗣」も、餃子専門店である。餃子専門店ということは、餃子以外の食い物を出さないのだ。いや、正確に言うと「みんみん」のメニューには「ライス」がある(「正嗣」も、一店舗だけライスを出す店があるらしいが、本店にはない)。しかし、メニューに並ぶのは「焼餃子」「水餃子」「揚餃子」。以上だ。「正嗣」に至っては、揚餃子も出さない。焼きと水のみ。この竹を割ったような「餃子しか出さない」感が、東京でラーメン的なものもチャーハン的なものも一緒に出す餃子屋しか知らなかった自分にとっては、平手打ちを食らったかのような新しさだったのだ。そこにあるのは餃子だけだ。

このレベルで「うちは餃子しかない」と言われてしまうと、当たり前だが、私たち客は、餃子と正面から向き合うほかなくなる。なんていうか、餃子が面になって迫ってくるのだ。これは強い。

自分にとってもこの体験は大きく、広告の仕事をするようになった後、会議でコンセプトがブレそうになったときなどに、「そんなにいろんなことを伝えようとすると何が言いたいのかよくわからなくなっちゃうんですよ。宇都宮スタイルで行くべきですよ。みんみんスタイルですよ。」などと言っては、会議をさらに混乱させたことも一度ではない。

「みんみん」も「正嗣」も、なぜそんなに美味しく感じるのかというと、この割り切ったストロングスタイルとは無関係ではないと思う。これらの餃子専門店は、なんていうか、リソースを100%餃子に注いでいるので、そういう迫力のある餃子になる。「みんみん」の厨房では、餃子以外をつくっていないのだ。

ここでやっと、技術用語の話になる。「みんみん」を1つのプログラムとする。プログラムというものは、何がしかの処理を行うものだ。足し算のプログラムは、受け取った2つの数字を足して合計を出す、みたいな処理をする。「みんみん」もまた、処理をしているのだが、それは「餃子をつくる」という1つの処理(工程)である。「みんみん」は、とにかく1つの厨房をつかって餃子をつくり続ける。厨房も餃子用につくってあるから効率がいい。高速に餃子をつくれる。

コンピュータプログラムの処理の流れの単位を「スレッド」と呼ぶ。「みんみん」の場合、やっていることが1つだから「シングルスレッド」のプログラム、ということになる。

今回のテーマである「マルチスレッド」は、「マルチ」すなわち「複数」なわけだから、つまりこういう「処理」を複数実行している状態のことを言うようにも考えられる。

では、宇都宮外にあるような、ラーメンもチャーハンも出す餃子店(仮に「餃子の大将」とする)は何をやっているのかというと、1つの厨房で、ラーメンとチャーハンと餃子をつくっている。ラーメンをつくりながらチャーハンをつくり、それをやりながら餃子を焼いたりする。やっていることは多岐にわたる。なんだったら天津飯とか、そういう結構イレギュラーなものまでつくってしまう。マルチにいろいろつくっている。だから「みんみん」の「シングルスレッド」に対して「マルチスレッド」なのかというと、これは実はそうでもない。「餃子の大将」はそれでも「シングルスレッド」だ。

なぜかというと、厨房が1つだからだ。厨房が1つである限り、それは、ラーメンとチャーハンと餃子と天津飯を入れ代わり立ちかわりつくっているに過ぎないからだ。

この状況は、実は筆者自身の状況にも似ている。筆者は、テクニカルディレクターという仕事をしている。これはつまり、技術やプログラムを理解しながら、同時にコンセプトであるとかアイデアも理解し、関係各所に適切な説明と指示をしてものづくりを進めていくという仕事だ。要するに、「しゃべれる技術屋」だと言ってもいい。

筆者は、プログラマーとしてはまあ大したことがない。二流である。様々な言語でプログラムを書くことはできるが、各々の言語や開発領域についてすごく専門的な知識があるかというと、本当に専門にやってきている人には勝てないし、世の中には魔法のような、信じられない仕組みをプログラムでつくってしまうプログラマーは存在するし、誰が見てもわかりやすいよくできたプログラムをさらっと書けるような人もいる。

そういう人たちは、プログラムを書いているだけでも十分やっていける。「みんみん」が餃子をつくっていれば良いように、彼らもプログラムを書いていれば良いのだ。

一方で私はプログラマーとしては二流なので、技術をわからない人にそれを説明したり、技術的なアイデアを出したり、アドバイスをしたり、ときにはデザインと絡めて指示を出したり、チーム設計をしたり、とにかくプログラミングと別の仕事を一緒にやって、合わせ技にしていくことで生きていくことにした。他の技能との合わせ技にすることで二流を一流にするのだ。

しかし、私の脳は1つなので、1つの脳でそういったいろいろな作業を順番にやっていくことになる。

30分で企画書を書いて、30分でお客さんに説明をして、30分でプログラムを書いて、30分で見積もりを書いて、みたいな感じでどんどん仕事内容をスイッチしていく必要がある。この状況は、ラーメンとチャーハンと餃子と天津飯を入れ代わり立ちかわりつくっている「餃子の大将」に非常に近いといえる。これは前述の通り「シングルスレッド」だ。

最初の企画書の段階で何かトラブルがあって遅れると、その後の作業が全部遅れることになる。

パソコンでソフトをつかっていて、途中で砂時計が出てうーんと考え込んでうんともすんとも言わなくなることがある。あの状態みたくなる。

会社はマルチスレッドだ

では、今回のテーマである「マルチスレッド」とはどういうことなのか、というと「厨房を増やす」ということである。

要は、「餃子ばっかりつくってる厨房」と「ラーメンばっかりつくってる厨房」と「チャーハンばっかりつくってる厨房」を分けて、各々で各々の仕事に集中してもらい、平行に進めるのだ。この形にすると、ラーメンとチャーハンと餃子と天津飯を同時進行でつくる、ということが可能になる。

これが「マルチスレッド」という仕組みである。この方法にすると、「みんみん」の味を維持しながら高速に他の料理を供することができる(ただ、厨房の広さにも限界があるので、あまりいろんなことをやりすぎると逆に遅くなる)。

そこで、いろんな作業をシングルスレッド的に行っている自分がマルチスレッド化するためにはどうすればいいのか。それはつまり、企画書の専門家、プレゼンの専門家、プログラムの専門家、経理の専門家、みたく、仕事を各々の専門家に並行して任せる、ということになる。

それは結局どういうことかというと、つまり「会社」だ。1人だとシングルスレッド化してしまうから、みんなマルチスレッドにするために会社をつくって働くのだ。会社というのは並列処理だ。

マルチスレッドにも効率的なマルチスレッドとむしろ遅くなってしまうマルチスレッドがある。分担がうまく行っていなければ、マルチスレッドはうまくいかない。人数が少ないのに多くの仕事を分業的に分けてしまうと、むしろ効率が悪くなったりする。つまり、並列処理がうまく行っている会社こそ良い会社と呼べるのではないだろうか。

などと、Newspicksとかで書いてそうな結論にむりやり結びつけつつ、この文章で何が言いたかったのかというと、宇都宮最高、みんみん最高、ということであり、それ以上ではない。みんみんのテーブルを前にしたとき、スレッドがどうのとかプロセスとかタスクがどうのとかは無意味で、そこには焼餃子と水餃子と揚餃子以外のメニューはないのだ。餃子と向き合うべきなのである。

(マンガイラスト・ロビン西 )

清水幹太

バーテンやトロンボーン吹き、デザイナーを経て、ニューヨークをベースにテクニカルディレクターをやっている。

BASSDRUM( http://bassdrum.org