コンピューターの話で分散処理とか並列処理という言葉を聞いたことがあるか。日本語の意味としては同じような感じです。何かを分けて処理するのでしょうということはなんとなくわかるよな。ですが何をどう分けて、分散と並列ではどう違うんでしょう。その違いやどういう特徴があるのかを、実際に会社で分散処理を使ったプログラム開発をしていたプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。分散処理のプログラム開発経験も。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

似ているようでちょっと違う分散と並列

image by iStockphoto

コンピューターの世界には「分散処理」と「並列処理」という言葉があります。どちらも複数のコンピューターを使って何かの作業をするという意味では似ている部分も。しかし、コンピューターの世界では別のものとして分けて考えます。

この違いはざっくり言えば、違う仕事を分担するのが分散処理、同じ仕事を分担するのが並列処理です。この違いについて実例や歴史なども踏まえて説明していきます。

分散処理:1つの仕事を役割を分けて分担する

分散とは漢字の通り、「分けて」「散らす」こと。何かの計算や作業などを分担することを指します。例えば、大きな食堂では料理を作る人と、できた料理を運ぶ人は別ですよね。会社も色々な役割で組織が分かれています。コンピューターのプログラムも、いくつかのコンピューターで役割を分けることがあるわけです。

こう書くと難しそうですが、普段パソコンやスマホで使っているゲームやサービス、ウェブサイトなどもすべて「分散処理」。手元のパソコンやスマホと、ネットの先にあるコンピューターが連携して動くことでサービスを受けることができます。

\次のページで「並列処理:大量の仕事を細かく分けて分担する」を解説!/

並列処理:大量の仕事を細かく分けて分担する

分散処理は料理を作る人と、その料理を運ぶ人の役割分担している状態です。一方、並列処理は同じ仕事だけど複数のコンピューターで分けること。例えば、大きなスーパーではレジがいくつもありますよね。どのレジも仕事は同じですが、いくつかのレジがあることで会計する客の待ち時間を減らすことができます。「並列」とは2つ以上のものが並ぶこと。違う場合もありますが、同じものが並んでいることを指すことが多いです。

コンピューターの並列処理も、同じ内容の処理を多くのコンピューターを使うことで計算時間を少なくするのが目的。最初のざっくりした説明に補足すると、何台かで違う役割を作業分担するのが分散処理です。一方、並列処理はひとつひとつは小さいが大量にあるものを分けて分担します。

集中処理から分散処理へ?コンピューターの歴史

image by iStockphoto

今のパソコンやスマホはたいてい分散処理です。その分散の反対語は集中になります。しかし、ここに至るまでのコンピューターの歴史では、集中処理から分散処理へと変化してきました。その歴史を振り返りながら、集中処理と分散処理について説明します。

コンピューター黎明期:最初は集中処理だった

世界最初のコンピューターはENIACと言われています。このENIACの大きさは幅30メートル、高さ2メートル以上、奥行きも1メートル近くと巨大なもの。会社や研究所などの大きな部屋をまるまる1部屋使うくらいのものになります。パソコンもスマホもなく、インターネットもありませんので、使いたい人がコンピューターのあるところに行くことに。

コンピューターが物理的に大きく高価で数も少ない頃は、限られたコンピューター単体で使うのがメインです。そのため「集中処理」と呼ばれています。1台のコンピューターだけで処理するので集中。パソコンやスマホも、インストールしたアプリでネットを使わないでパソコンやスマホの中だけで動くものは集中処理になります。

コンピューター普及期:ネットワークの普及で分散処理が普及

パソコンの登場で会社の中では大きなコンピューターとパソコンを組み合わせて使うようになります。そうなると、会社で使うさまざまな業務用プログラムも作業分担することに。これが分散処理です。

例えば何かのデータを入力するプログラムがあったとします。ある項目で金額を入れるとすると、数字以外を入力したら注意して欲しいですよね。集中処理の時代は大きなコンピューターに入力したものを送り、そこでチェックしています。ただ、送る前にチェックしてくれたら手間が省けますよね。そのため、手元のパソコンでチェックするようになります。これが分散処理の始まりです。

インターネット時代:分散処理が主流へ

2000年以前はまだインターネットが普及前のため、このような分散処理は会社や学校などのある程度大きなところで使うものでした。しかし、2000年以降は一般にもインターネットが普及します。スマホなども登場して、ウェブが普通に使われるものに。

こうなってくると多くのものが分散処理が当たり前に使われるようになります。ゲームもスマホやゲーム機でのオンラインゲームが増加。オンラインゲームではゲーム画面の表示などは手元のスマホやゲーム機でしています。しかし、目の前のモンスターなどがどう動くか、HPなどのパラメーターがどう変わるかはネットの先にあるゲーム会社のコンピューターで計算。これも分散処理です。もはや分散処理はなくてはならないものになっています。

\次のページで「何が違う?並列処理の特徴とは」を解説!/

何が違う?並列処理の特徴とは

image by iStockphoto

ここまで分散処理について説明してきました。分散処理は違う内容のものを複数のコンピューターで分担するものを指します。では、並列処理とはどう違うのか。そこを説明していきます。

特徴その1.ひとつひとつは小さな大量のデータを扱う

例えば会社の商品の売上など、何かの数字が10万個あり、その合計が必要になったとします。この時、1万個の足し算をするのに1秒かかるとすると、1台のコンピューターで計算すると10秒かかりますよね。では、10台のコンピューターで1万個ずつ合計した後、その10台の結果を合計するとします。そうすると1秒ちょっとでできることになりますよね。

人間が作業する時に、ひとつひとつは大した手間はかからない。しかし、大量で時間がかかるという作業があります。コンピューターの場合も同じ。数多くのコンピューターで分けて処理すると早く終わります。これが並列処理です。分散処理は違う役割を分担することで、並列処理は多くのものを手分けするイメージになります。

特徴その2.小さな力を集めて大きな力を発揮

先ほどの例えですが、10倍速いコンピューターを使えば同じように1秒で計算できます。では、なぜ10倍早いコンピューターを使わないのか。その理由はコンピューターの性能には限界があるため。10倍早いコンピューターは100倍の値段がするかもしれないし、そもそも実現できないかも

このように高速なコンピューターを使うことが金額や技術的に難しいこともあります。その時に、並列処理を使うことで安価に実現できることも。ひとつひとつは小さな力でも集めれば大きな力になるわけです。実際、2000年代初め頃にはスクリーンセイバーを使って宇宙人を探すものや白血病の治療のための計算をするというものが流行しました。コンピューターを使っていないときに動くのがスクリーンセイバー。しかし、その空いているコンピューターで大量の計算の一部を世界中で分担していたのです。

特徴その3.仕事の割り振りと取りまとめが大変

分散処理は今ではあちこちで使われていると説明しました。しかし、並列処理は分散処理ほどは広く使われていません

その理由は、並列処理では大量の計算を数十台から数百台、数千台のコンピューターに振り分ける必要があるため。また、その結果を取りまとめる必要もあります。言ってみれば、大きな会社の社長みたいなものです。多くの従業員に対して指示して会社を運営するのと同じようなことをプログラムでもする必要があります。そこでミスが起きれば会社自体が倒産してしまうかも。それだけプログラムをつくるのも難しいのです。

\次のページで「分散と並列の違いは分担の仕方」を解説!/

分散と並列の違いは分担の仕方

分散処理と並列処理はどちらも複数のコンピューターを効率的に動かすための仕組みです。ただ、その目的が違います分散処理では異なるコンピューターで役割を分担。例えば、ゲームなどではゲーム世界全体に影響するあらゆることはゲーム会社のコンピューターで計算します。しかし、その結果を画面に表示するのは手元のパソコンやスマホの役割。役割を分けることで全体がスムーズに動くようになっています。

大量のものをこなすのに向くのが並列処理ひとつひとつは大した手間ではないが、とにかく大量のもの多くのコンピューターで手分けします。大した手間ではないので、それぞれのコンピューターは非力でもよいのです。そのため、トータルとしては安価に実現できることもあります。

" /> 簡単でわかりやすい!分散処理と並列処理の違いとは?相違点の実例をプログラマーがわかりやすく解説 – Study-Z
IT・プログラミング雑学

簡単でわかりやすい!分散処理と並列処理の違いとは?相違点の実例をプログラマーがわかりやすく解説

コンピューターの話で分散処理とか並列処理という言葉を聞いたことがあるか。日本語の意味としては同じような感じです。何かを分けて処理するのでしょうということはなんとなくわかるよな。ですが何をどう分けて、分散と並列ではどう違うんでしょう。その違いやどういう特徴があるのかを、実際に会社で分散処理を使ったプログラム開発をしていたプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。分散処理のプログラム開発経験も。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

似ているようでちょっと違う分散と並列

image by iStockphoto

コンピューターの世界には「分散処理」と「並列処理」という言葉があります。どちらも複数のコンピューターを使って何かの作業をするという意味では似ている部分も。しかし、コンピューターの世界では別のものとして分けて考えます。

この違いはざっくり言えば、違う仕事を分担するのが分散処理、同じ仕事を分担するのが並列処理です。この違いについて実例や歴史なども踏まえて説明していきます。

分散処理:1つの仕事を役割を分けて分担する

分散とは漢字の通り、「分けて」「散らす」こと。何かの計算や作業などを分担することを指します。例えば、大きな食堂では料理を作る人と、できた料理を運ぶ人は別ですよね。会社も色々な役割で組織が分かれています。コンピューターのプログラムも、いくつかのコンピューターで役割を分けることがあるわけです。

こう書くと難しそうですが、普段パソコンやスマホで使っているゲームやサービス、ウェブサイトなどもすべて「分散処理」。手元のパソコンやスマホと、ネットの先にあるコンピューターが連携して動くことでサービスを受けることができます。

\次のページで「並列処理:大量の仕事を細かく分けて分担する」を解説!/

次のページを読む
1 2 3 4
Share: