发布信息

关于并行编程,你需要知道的几个问题!!

作者:软荐小编      2023-12-31 09:05:24     210

第一章简介

并行编程被誉为编程中最困难的问题之一。 关于死锁、活锁、竞争条件、非确定性、限制可扩展性的阿姆达尔定律以及滥用实时延迟的危险。

新技术总是一开始很难使用,但随着时间的推移最终会变得更容易使用。

1.1 并行编程困难的历史原因

难度分类:

1.并行系统的历史高价和相对稀有。

2. 研究人员和实践者缺乏并行系统的经验。

3.缺乏公共并行代码。

4. 并行编程缺乏广泛理解的工程原理。

5. 即使在紧凑的共享内存系统中,通信相对于处理本身来说也是昂贵的。

现在所有困难都消失了。 情况已经大大好转,无需担心上述困难。

1.2 并行编程的目标

三大目标:

1. 性能

2. 生产力

3. 通过性

1.2.1 性能

大多数并行编程主要是为了提高性能,否则何苦呢!

看看什么是“性能”?

比较广泛。 包括可扩展性和效率。 对性能的关注已从硬件转移到并行软件。 并行化是充分利用现有系统性能的好方法。

因此,首要目标是性能而不是可扩展性。

当关注并行算法时并行计算机体系结构:硬件软件结合的设计与分析,不要忽视串行算法。

1.2.2 生产力

并行计算机体系结构的分类_并行硬件和并行软件_并行计算机体系结构:硬件软件结合的设计与分析

软件开发商的投入已经占了很大的比例,这个问题不得不考虑。

硬件变得越来越便宜并行计算机体系结构:硬件软件结合的设计与分析,生产力变得越来越重要。 怎样才能既不让马吃草,又能让它们跑得快呢? 此外,马现在需要吃得更好。

1.2.3 普遍性

降低并行程序高成本的一种方法是使程序尽可能通用。 通用软件可以赢得更多用户并更好地分摊成本。

但! 多功能性会带来更大的性能损失和生产力损失。

流行的并发编程环境:

1、C/C++“锁和线程”:包括POSIX线程、Windows线程以及很多操作系统内核环境。

2. Java:很好,但比前者低。

3. MPI:低于C/C++。

4. OpenMP:用于特定任务。 这也限制了它的性能并且比C/C++更简单。

5. SQL:仅用于数据库查询。

相关内容 查看全部