No196 すごい分散コンピューティング

前回、Emotetの解説の中でボットネットというのが分散コンピュー
ティングの間違った応用だということを書きました。

では、正しい分散コンピューティングとはどんなものなのでしょう?

情報セキュリティとはあまり関係ないのですが、今回は分散コン
ピューティングについて解説します。

1. 大量の計算が必要な分野

世の中にはとにかく大量の計算が必要な分野というものがあります。

典型的なのが、各種のシミュレーションです。

特に流体解析と呼ばれる液体や気体の動きを計算する処理はやたら
と計算が多いのが特徴です。

どうして計算量が多くなるのでしょうか?

流体解析では空間をたくさんのブロック(メッシュとかセルなどと
呼ばれます)に分け、そこに出入りする空気の方向や圧力を計算
します。計算といっても四則演算だけでなく微分が必要ですから、
それなりに計算にも時間がかかります。
当然ブロックが小さければ小さいほど計算量は増えますが、得ら
れる結果の精度も高いものになります。

流体解析の中でもトップクラスの難しさなのが天気予報です。

日本の気象を予想するには、北はサハリン(樺太)から南はフィ
リピンまでの広範囲の空気の動きを確認する必要があります。
また、世界は三次元ですから、地表だけでなく上空数キロまでの
範囲を確認しなければなりません。

検証すべきテーマも、気圧だけでなく、湿度、温度、山などの地形、
地球の自転、月の影響、海面からの水蒸気など考えるべき項目が
山のようにあります。

それに加えて、天気予報には厳しいタイムリミットがあります。
翌日の天気を翌々日に発表できても意味がありませんからね。
実際に計算に使える時間はせいぜい12時間といったところでしょう。

天気予報に限らず、高速な計算を求められる分野というのは意外に
多いのです。


2. スーパーコンピュータという回答

じゃあコンピュータの計算速度を上げればいいのでは?というのが
ごく素直な発想です。

実際、こういった計算に特化した、やたらと計算「だけ」が速い
スーパーコンピュータ(以下スーパーコンと略します)というもの
があります。

スーパーコンは特殊な部品を使っている、欲しい人が少ない(でも
欲しい人はどうしても欲しい)といった事情もあり、かなり高価な
コンピュータです。

スーパーコンの購入層は大きく分けて2つ。

一つは会社が製品開発や設計のために購入するケースです。
上述の自動車メーカなどはスーパーコンの開発元にとってはお得意
様ですし、化学会社、製薬会社、建設会社などもスーパーコンを
導入しているところがたくさんあります。

もう一つは研究者向けに大学や研究施設が購入するケースです。
この場合は他の研究者にも開放している場合が多いのですが、
スーパーコンは維持管理にかなりの費用がかかるため、無償で
使えることはほとんどありません。
スーパーコンは使いたくても、その課金に頭をかかえる研究者は
多いのです。

安いコストで高速なコンピュータを利用したいというのは多くの
研究者の切実な課題だったのです。


3. そのパソコン、ちょっと使わせてもらえませんか?

ビジネスシーンではオフィスソフトで資料を作っていたり、メール
を書いたり、Web会議に参加したりするわけですが、その程度の使い
方はPCにとっては遊んでいるような状態で、能力のほとんどは
使わずに眠ったままです。

特に離籍してスクリーンセーバが動いている状態などはその最たる
もので、PCの所有者にとっても単に無駄に電源が入っているだけ
です。

そこに着目した研究者がいました。
「スクリーンセーバ動かしている時だけ、オレのやりたいことを
させてもらえないかな」と考え、スクリーンセーバとして計算を
させるプログラムを提供したのです。

いわば「そのパソコン、ちょっと使わせてもらえませんか?」と
いうわけです。


4. 分散コンピューティングは福音か?

非力なPC(パソコン)でも、何十万台も集まえれば、スーパー
コンに負けない計算能力になり得ます。

それを意図的に目指したのが分散コンピューティングで、これを
実現するには、いくつかの条件があります。
 1)ソコソコ早いPC
 2)ネットワークに常時接続
 3)分散処理の管理用コンピュータ(サーバ)

ソコソコ早いというのは相対的なもので、いつの時代でも存在
しますから、それほど大きな問題ではありません。

分散コンピューティングでは随時、管理サーバとの通信が必要に
なりますので、常時接続が好ましいのは当然です。若い読者には
「何を当たり前のことを?」と思われるかもしれませんが、以前
はそうでもなかったのですよ。

最後に分散コンピューティングには、各PCへの作業依頼や終了
した作業結果の集約を行う管理用コンピュータ(サーバ)が必要
です。
何しろ遠隔地にあるコンピュータを束ねて計算させるわけです
から、依頼先のPCの故障、ネットワークの不通、などいろんな
トラブルへの対応も考えた仕組みが必要です。

こういった条件を全て満たせるようになったのは2000年前後から
です。筆者が分散コンピューティングに初参加したプロジェクトも
1999年に始まったものでした。

なお、計算量が多いからといって分散コンピューティングに向いて
いるとは限りません。

例えば、計算をたくさんのPCに分割依頼できないものはNGです
し、送信すべきデータ量が多すぎたり、データ量に対する計算量が
少なすぎる場合も不向きです。


5. どんなプロジェクトがあるのか?

具体例として、分散コンピューティングを行っているプロジェクト
を紹介しておきます。

一番有名なのはBOINC(ボインク)というプロジェクトです。

これは元々SETI@Home(セティアットホーム)という電波解析の
ための分散コンピューティングプロジェクトでした。

SETIは"Search for Extra-Terrestrial Intelligence"(地球外知的
生命体探査)の略で、「ETを探そう!」と壮大なものでした。

このプロジェクトではアレシボ天文台(2020年末に崩落した巨大な
電波望遠鏡がある天文台)が受信した電波データから規則的な無線
パターンが見つけ、地球外知的生命体が存在することを証明しよう
としました。

参加する各PC(パソコン)はSETIプロジェクトから各自の担当分
の電波データと解析プログラムを受け取り、電波データを解析して
規則パターンがないかどうかを計算します。

筆者がこのプロジェクトに参加した当初(1999年)は1ユニットの
計算に10時間以上かかっていたのを覚えています。

このプロジェクトには数十万台のPCが参加し、その計算能力は
スーパーコンの世界ランキング上位機に並ぶレベルでした。

このSETI@Homeが2005年にBOINCというプラットフォームを作り上げ
ました。これはSETI@Home以外にも分散コンピューティングへの
門戸を開くもので、計算プログラムとデータを用意すれば、誰でも
分散コンピューティングのプロジェクトを立ち上げることができる
ようになったのです。

BOINCには2021年現在、31のプロジェクトが登録されていて、数学、
物理学、生物学、暗号学など巾広い分野となっています。


6. まとめ

Emotetなどによってボットネットと呼ばれる悪意のある分散コン
ピューティングばかりが有名ですが、分散コンピューティングと
いうものはスーパーコンピュータにも比肩しうるBOINCのような
素晴らしいプロジェクトも存在しています。

こういった技術はここでも書いたように元々は良いものとして生ま
れたものです。
ですが、情報セキュリティの話ではこういった技術を悪用された
場合の話が多くなってしまいます。残念な限りです。

BOINCのプロジェクトの一つ、Rosetta@Homeはタンパク質に関する
計算プロジェクトでは、いわゆる新型コロナウイルス(SARS-CoV-2)
の研究結果の検証に活躍したそうです。

こういった研究にPCの計算能力を活かしてもらえれば嬉しくなり
ますね。

興味のある方は、BOINCの計算プロジェクトに参加されてはいかが
でしょうか。

次回もお楽しみに。

このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html


この記事が気に入ったらサポートをしてみませんか?