Home

Overview 

Overview1

Overview2

Overview3

Overview4

CSPモデルプログラミング   CSPJAPAN.ORG 2008

Home  Overview  JCSP  CSP for .NET(C#)   C++CSP2  OCCAM   Links

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Overview-1

 

CSPモデルと並列・分散処理

 

CSPモデルの原点は、C.A.R.Hoareのプロセス代数Communicating Sequential Processesにありますが、その発想は安全な並列処理を如何に簡単に実現するかという点にあります。

 

並列処理は、右図に示すように1つのプログラムを複数のプロセッサで寄ってたかって一斉に処理してしまおうとする処理形態です。複数のプロセッサが効率よく同時に動作できれば、高速な並列処理システムが期待できます。

 

 

 

 

 

 

説明: 説明: 説明: D:\CSPJAPAN_HomePage\cspjapan_Ver2_111021_Pre_UpLoad\overview\overview01_image001.gif

 

もし、1つのプログラムが右図のようにS1S2S3に3分割でき同時に3つのCPUで処理できる(並列処理できる)とすると3倍の処理速度が期待できます。3人の共働きの状態です。

 しかし、実際にはプログラムをどのように分割するか、どのようにプログラムを記述するか、どのように処理するか等々多くの問題が相互に絡み合い一般に複雑なシステムになります。過去に様々な並列処理システムが開発されましたが、それぞれ一長一短があり誰もが簡単に利用できる並列処理システムは出現しませんでした。

 

説明: 説明: 説明: D:\CSPJAPAN_HomePage\cspjapan_Ver2_111021_Pre_UpLoad\overview\overview01_image002.gif

 

 

 

 

 

 

 

 

一方、並列処理(パラレル処理)とよく混同される処理方法に並行処理(コンカレント処理)というのがあります。並行処理は、分割されたプログラムを通常1つのCPUで時分割処理し見かけ上、同時進行させる処理方法です。論理的・巨視的な同時性が保たれます。例えるなら、「テレビを見ながら勉強する」ながら病です。実働する処理装置が増えるわけではないので処理速度は向上しません。

 

 

説明: 説明: 説明: D:\CSPJAPAN_HomePage\cspjapan_Ver2_111021_Pre_UpLoad\overview\overview01_image003.gif

CSPモデルでは、図中のS1S2S3に相当するプロセスとこれらを接続する通信路であるチャネルを用いてプログラムを構成します。これらのプロセスは、チャネルを介した通信以外は独立しています。チャネルを介して互いに通信しながらプログラム(プロセス)が進行する(並列処理する)モデルは、あたかも、「遠隔地の人と必要に応じて電話で用件を伝えながら同時に仕事をする」ようすに似ています。

 

 

説明: 説明: 説明: D:\CSPJAPAN_HomePage\cspjapan_Ver2_111021_Pre_UpLoad\overview\overview01_image004.gif

このようなCSPモデルに基づいて構成されたプログラムは、1つのCPUで、コンカレント処理することもできますし、右図のように個々のプロセスをネットワーク上の離れたコンピュータに分散配置する事も容易であることが推測できます。

さらにマルチコアCPUでは、各コアにプロセスを配置して並列処理する方式もCSPモデルとの相性が非常に良く、今後コア数の増大とともにCSPモデルプログラミングに対する期待が増大しています。

 

 CSPモデルプログラミングは、高速ネットワーク時代・マルチコアCPU時代のプログラミングパラダイムであると言っても過言ではありません。

 では、次ページから具体的なCSPモデルプログラミングの解説です。

 

説明: 説明: 説明: D:\CSPJAPAN_HomePage\cspjapan_Ver2_111021_Pre_UpLoad\overview\overview01_image005.gif

 

 

 

 

 

 

 

---  次へ ---

            

Copyright 2007 CSPJAPAN. ORG. All Rights Reserved