摘要。本科生或新手程序员经常在编程课程中受到高级和抽象概念的挑战。与构建顺序程序相比,并行和并发编程需要不同的、更复杂的控制流思维模型。现在,多核处理器已成为计算机和移动设备的标准,开发软件以利用这种额外的计算能力的责任现在落在了现代软件开发人员身上。关键词:性能、编程、线程、顺序程序、计算机体系结构。简介本文的目的是通过不仅提供定义和解释,还提供来自现实生活的例子,帮助读者理解什么是并行性和并发性,因为这样会更容易理解。有很多解释,但只有少数能让你对它们有一个很好的认识,其余的都让你感到困惑,然后你放弃理解这两个术语。你甚至不知道你不仅在编程时看到并发和并行性,而且在任何地方、任何时候都看到它。现实生活中的实现想象一下,一个人在图书馆工作,一堆新书到了。他的任务是按作者选择合适的书,然后将它们放到书架上。他完成这项任务的方式是遵循正确的步骤。他会从所有书中挑选出由同一作者写的书。将它们带到相应的位置后,他会将它们排列在书架上。为了使这个过程更有效率,他可以实施并行技术,使用两名工人并让他们同时工作。这样,他将减少两倍的时间。当然,如果他想使这项工作更有效率,他可以使用更多的工人。关于并行性,需要了解的一件重要事情是,有时您无法获得预期的性能提升,因为您可能会遇到瓶颈,这种情况发生在资源(书籍)繁忙且第二名工人无法选择所需书籍时,这就是为什么您可能会浪费与使用一名工人时相同的时间。现在,如果您想更好地优化,可以使用并发方法。因此,在进入这个主题之前,先定义什么是并发,因为很容易将并发与并行混淆,我们必须从一开始就尝试明确两者的区别: - 并行是指同时做很多事情。 - 并发是指同时处理很多事情。 并行 并行意味着在多个硬件(核心、机器等)上执行多个任务,这就是为什么这些任务并行运行并且尽可能快地执行。 并行计算机是一种在协作中使用同时处理元素的计算机或系统
并行和分布式仿真领域出现于 20 世纪 70 年代和 80 年代,由两个截然不同、相互重叠的研究团体发起。一方面,并行离散事件仿真 (PDES) 团体致力于通过利用高性能计算平台来加速离散事件仿真的执行。大约在同一时间范围内,分布式仿真团体从国防团体的研究和开发工作中发展而来,该团体专注于将单独开发的仿真互连起来,这些仿真在通过局域网和广域网互连的计算机上执行。这项研究最初侧重于用于训练目的的仿真,但很快扩展到包括物理设备的分析、测试和评估等领域。虽然 PDES 和分布式仿真之间存在重要差异,但也存在许多共同的问题。在这里,我们非正式地将并行和分布式仿真描述为一个领域,它涵盖了这两个团体在从紧密耦合的并行计算平台到通过广域网连接的松散耦合机器等平台上执行单个仿真程序时出现的问题。