Sharpmark's Personal Home Page

并发编程 - 并行与分布式

如果两个事件在同一时间间隔内发生就称这两个事件是并发的,两个或多个任务在同一时间间隔内执行叫做并发执行。对我们而言,并发并不一定就表示在同一精确时刻执行,例如,两个任务可能在同一秒发生,但是每个任务在该秒的不同时间片内执行。

并发技术是的计算机程序能够在同一时间间隔或同一时限内做更多的工作,……。某些情况下,在同一时间间隔做更多的工作并不是目的所在,简化程序解决方案才是真正目的。有时把问题的解决方案看作一组并发执行的任务更合理。

并行(Parallel)分布式(Distributed)编程是达到软件并发的两种基本途径,它们是两种不同的、有时又相互交叉的编程范例。并行编程技术将程序必须处理的作业分配给一个物理或虚拟计算机内的两个或多个处理器,分布式编程技术将程序必须处理的作业分配各两个或多个处理器,这些处理器可以也可以不在同一个计算机中,也就是说分布式程序的各部分通常在不同的由网络连接的计算机上运行,或者至少在不同的处理器上运行。包含并行性的程序在同一个物理或虚拟计算机上执行,程序内的并行性可分成进程或线程。分布式程序仅能分成线程,多线程仅限于并行性。

在技术上,并行程序有时候是分布式的,例如PVM(Parallel Virtual Machine) 编程;分布式编程有时用于实现并行性,例如MPI(Message Passing Interface)编程。但是并非所有的分布式程序都包括并行性,分布式程序的各部分可以在不同时间间隔内的不同时刻执行。

软件级的并发可以分为:指令级、例程(函数/程序)级、对象级、应用程序级。

——摘自《C++并行与分布式编程》 Parallel and Distributed Programming Using C++

并行计算和分布式计算是两个容易混淆的概念,希望上面的解释可以帮助同样迷惑的你理解他们的关系。

留下 您的足印

请注意评论的语气。不要谈论违法,影响社会"河蟹"的言论。您的email永远不会被公开。