进程,进程间通信与线程(并行计算)
简介:在超级计算并行计算中,消息传递并行程序设计密切相关的一个概念就是进程,正是由于进程之间可以通信,才决定了并行程序设计平台的出现
1 进程
进程可表示为四元组,也即是(P,C,D,S), 其中P是程序的代码,C是进程的控制状态,D是进程的数据,S是进程的执行状态。任何进程都和程序联系在一起,程序一旦在系统中运行,就变成了进程;
各个进程都有其独立的执行环境,其中包括内存数据,指令地址空间,程序计数器,寄存器,栈空间,文件系统,I/O设备等;
进程有两个明显的特征:一个是资源特征,就是程序执行所必需的一些计算资源;一个是执行特征,就是进程执行过程中,一些动态改变的特性;进程的资源特征反应了进程是资源拥有的最小单元,而执行特征反应了进程是操作系统调度的基本单元;
进程在执行过程中,都涉及如下几种状态:
非存在状态,就绪状态,运行状态,挂起状态,退出状态, 其实进程除了挂起状态到就绪状态再到运行状态,进程还会出现僵死状态,僵死状态还会占用计算机资源,所以要主动清除僵死状态的进程;
2 进程间通信
进程间通信有三种形式:通信,同步,聚集
通信:进程间的通信,我们称之为消息传递,MPI(message pass interface,消息传递接口),消息传递可以一台处理机中进行,也可以在多台处理机中进行(这种情况就是并行计算了)
同步:也即是进程之间要同步,这是进程之间通信的一种方式
聚集(或归纳):将进程之间的结果都聚集起来
3 线程
为了在共享存储环境中有效的开发应用程序的细粒度并行度,将一个进程分成两个部分,一个部分是由其资源特征组成,一个部分是由其执行特性组成,称之为线程, ,进程的指令路径可以分解为并行的互不相干的多条子路径,所以就有单进程单线程执行,单进程双线程执行,单进程多线程执行;
4 消息传递并行编程环境(MPI)
1 构成该环境的所有消息传递函数的接口说明
2 并行机厂商提供的对这些函数的具体实现
其实在标准串行程序设计语言(c,c++,fortran)的基础上,再加上实现进程间通信的MPI消息传递接口函数库,就构成了MPI并行编程的的设计环境。
MPI并行编程环境也是国内外最流行的并行编程环境之一,当前,大量工业,科学与工程部门,例如气象部门,石油,地震,空气动力学,核物理等的科研与工程软件已经移植到MPI平台,包括原材料的设计和仿真;