(LCMP) [loosely-coupled multiprocessor system]
複数のプロセッサが独立した主記憶を備え、それぞれが個別のOSによって制御されるマルチプロセッサシステム、プロセッサ間通信は高速バスまたは通信リンクで行う方式。信頼性は高いが多くのプロセッサが必要。
(TCMP) [tightly-coupled multiprocessor system]
主記憶を共有しながら同一のOSで制御されるもの。
複数のプロセッサが主記憶やディスクなどの資源を共有し、互いに連絡をとりながら1つのOSによって制御されるマルチプロセッサシステムのこと。
並列化によるコンピュータの性能効果について示した法則。
並列化によるコンピュータの処理性能の向上は、並列化できず逐次実行するしかないタスクに制約を受ける。したがって高い並列化率の望める場合は、使用するプロセッサ数を増やし並列処理を行うことで大きな性能効果を得ることができるが、並列化できない部分が大きい場合は、使用するプロセッサ数を増やしても大きな性能の向上は望めないというもの。
「性能向上率を決定するのはプロセッサ数ではなくアルゴリズムである」ということになる。アルゴリズムは、これ以上並列化できないという地点に最終的に到達する。
この法則は、ある計算のうち高速化によって影響を受ける部分の割合 P とその性能向上率 S から、全体として達成可能な性能向上率を求めるものである。例えば、ある改良が計算全体の 30% を性能向上させる場合、P は 0.3 である。また、その部分が2倍に高速化されるなら S は 2 である。アムダールの法則によれば、全体としての性能向上は次の式で表される。
従来の計算時間を 1 とする。改良されたプログラムの計算時間は、改良と関係しない部分の計算時間(1 - P)と改良された部分の計算時間(P/S)の合計となる。全体の性能向上率は、従来の計算時間を改良されたプログラムの計算時間で割ったものであり、上の式はそれを表している。
アムダールの法則の意義は、コンピュータシステムの改良すべき箇所は現状分析で明らかになるということを示している点である。例えば、ある演算を非常に高速化させる改良を思いついたとしても、その演算がシステム全体から見てほとんど使われないのであれば、改良する意味はほとんど無いのである。
特殊な場合として、並列化へのアムダールの法則の適用がある。並列化できない順次実行部分の実行時間の割合を F としたとき、並列化可能な部分は (1 - F)であり、N個のプロセッサを使ったときの全体の性能向上率は次の式で表される。
が無限大に近づく極限では、性能向上率は 1/F となる。実際、(1 - F)/N が Fに比べて十分に小さくなると、Nを増やしても性能が向上しなくなる(価格性能比が悪くなる)。
例として、Fがわずか10%ならば N をどれだけ大きくしても性能向上は1プロセッサの10倍までで頭打ちとなる。このため、並列コンピューティングが有効であるのは、プロセッサ数が少ない場合か、適応領域の問題の F の値が極めて小さい場合(embarrassingly parallel と呼ぶ)に限られる。並列コンピューティングのプログラミング技法の多くは、Fを可能な限り小さくするためのものである。
一般に、デスクトップ・コンピューティングはアムダールの法則のためにマルチプロセッシングが役に立たないと言われ、マルチコア化されたマイクロプロセッサの導入も疑問視されていたが、インテルは将来的にデスクトップのアプリケーションの並列化が進むとしてマルチコアの導入に積極的である。
複数のコンピュータを相互に接続し、ユーザや他のコンピュータに対して全体で1台のコンピュータであるかのように振舞わせる技術。複数のコンピュータを1台のコンピュータを扱うように管理することができる。1台が停止してもシステム全体が止まることはなく、処理を続行したまま修理や交換が行える。この間、外部からはシステムの性能が落ちたようにしか見えない。また、接続するコンピュータの台数を増やすだけで性能の向上をはかることができる。
クラスタを構成するコンピュータの一台一台のことをノードと呼ぶ。
クラスタには、高い可用性を目的としたHA(High Availability)クラスタと、高性能な計算環境を実現することを目的としたHPC(High Performance Computing)クラスタの2種類がある。
【 HA クラスタ(High Availability Cluster) 】
一台のコンピュータでは得られない高可用性の確保を目的としたクラスタシステムをHA クラスタという。HA クラスタはさらに、その実現方式によりフェイルオーバークラスタと負荷分散クラスタの2種類に分けられる。
【 HPC クラスタ(High Performance Computing Cluster) 】
複数台のコンピュータを結合させて演算処理を分担し、一台のコンピュータでは得られない高性能を確保することを目的としたクラスタをHPC クラスタという。HPC クラスタはスーパーコンピュータの一形態ととらえることができる。通常は、主に大規模な演算を必要とする数値解析、構造解析やシミュレーションといった科学技術計算にHPC クラスタが利用される。HA クラスタとは異なり、各ノードの役割は一律ではない。HPC クラスタを構成するノードは、分担して演算を行う複数台の演算用ノード、演算用ノードを取りまとめる制御用ノード、データベースを扱うデータ用ノードなど、様々な役割をそれぞれが担っている。
www.it-shikaku.jp