首页 > 编程语言 >深入理解并行编程-学习笔记

深入理解并行编程-学习笔记

时间:2024-03-21 13:56:27浏览次数:33  
标签:分割 性能 编程 并行 笔记 线程 2.4

一 简介

1 并行编程的目标

并行编程(在单线程编程的目标之上)有如下三个主要目标。
1.性能。
2.生产率。
3.通用性。

线程优化:性能与扩展

通用:

需要牢记的是,并行编程只是提高性能的方案之一。其他熟知的
方案按实现难度递增的顺序罗列如下。
1.运行多个串行应用实例。
2.利用现有的并行软件构建应用。
3.对串行应用进行逻辑优化。

2.4 是什么使并行编程变得复杂

2.4.1 分割任务

对任务的分割绝对是并行计算最需要的,如果存在一个任务的最小集,那么根据线性执行的定义,它同时只能被一个CPU执行。但是,分割代码需要十分小心,比如,不均匀的分割会导致当较小的分割执行完后,剩下的部分被顺序执行[Amd67]。在不是很极端的情况下,负载均衡可以充分利用硬件,因此获得更优化的性能和扩展性。

虽然分割任务能极大地提升性能和扩展性,但是也能增加复杂性。比如,分割任务可能让全局错误处理和事件处理更加复杂,并行程序可能需要一些相当复杂的同步措施来安全地处理这些全局事件。概括地讲,每个任务分割都需要一些交互,毕竟如果某个线程基本不交互,那么它不执行也不会对工作本身产生任何影响。但是由于交互会引起开销,不仔细地选择分割会导致严重的性能下降。

而且,并发的线程数量通常是有限的,因为每个线程都会占用一
些资源,比如CPU高速缓存空间。如果同时执行太多的线程,CPU缓存将会溢出,引起过高的缓存未命中,从而降低性能。另一方面,大量的线程可能会带来大量的重复计算和I/O操作,不能有效地利用I/O设备。

2.4.2 并行访问控制

2.4.3 资源分割和复制

2.4.4 与硬件的交互

2.4.5 组合使用

2.4.6 语言和环境如何支持这些任务

第3章 硬件和它的习惯

3.1 概述

缓存命中 分支预测 电子在半导体导体中断的速率
用到才通知 可以判定了立马通知吗

标签:分割,性能,编程,并行,笔记,线程,2.4
From: https://www.cnblogs.com/ycjstudy/p/18087188

相关文章

  • 洛谷-P2178 学习笔记
    题面[NOI2015]品酒大会题目描述一年一度的“幻影阁夏日品酒大会”隆重开幕了。大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加。在大会的晚餐上,调酒师Rainbow调制了\(n\)杯鸡尾酒。这\(n\)杯鸡尾酒排成一......
  • 使用appuploder流程笔记
     1.如何没有账号去apple官网注册一个,地址:https://developer.apple.com/account2.下载解压appuploder,双击打开,用刚刚注册的账号登录,下载地址:http://www.applicationloader.net/(使用第一次后,可以点击记住密码即可一键登录)注意:未支付apple的账号需要勾选“未付苹果688”  ......
  • Java学习笔记——第二十二天
    Java高级技术单元测试概述单元测试就是针对最小的功能单元(方法),编写测试代码对该功能进行正确性测试。目前的测试方法是怎样的,存在什么问题只能编写main方法,并在main方法中再去调用其他方法进行测试。使用起来很不灵活,无法实现自动化测试。无法得到测试的报告,需要程序员......
  • 颠覆传统编程:Codigger极致体验之旅
    在数字化浪潮汹涌的当下,编程已成为推动科技发展的重要引擎。而在这其中,极致编程体验无疑是每位开发者所追求的目标。它不仅代表着工具的高效能与稳定性,更映射出开发者在编程世界中的自由与创造力。Codigger,以其领先的开发框架和卓越的设计理念,正为开发者们带来前所未有的极致编......
  • Java基础内容:第七章面向对象(下)编程题详解
            建了一个群:908722740 ,欢迎小伙伴门的加入,平时可以互相学习交流,不管是学习还是工作上的都可以多多交流,本人在校学生,技术有限,错误的地方欢迎指正。目录一、多态案例素材【1】乐手弹奏乐器【2】比萨制作【3】购买饮料二、接口案例素材【1】兔子和青蛙【......
  • Java 面向对象编程进阶四(多态、抽象方法抽象类)
    目录多态(polymorphism)多态和类型转换对象的转型(casting) 类型转换异常向下转型中使用instanceof final关键字抽象方法和抽象类抽象类和抽象方法的基本用法多态(polymorphism)        多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实......
  • 数字图像处理学习笔记(一)
    数字图像处理学习笔记(一)digital_image_process说明内容列表(已完成)第一章绪论第二章基本原理Matlab支持图片格式图像操作数据类图像类型数据类与图像数据类型间的转换数组索引例2.5标准数组运算符代码优化单元数组与结构体digital_image_process数字图像处理学习......
  • 编程设计模式-责任链设计模式
    责任链设计模式概述:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。责任链模式的主要角色如下:抽象处理者(Handler)角色:定义一个处理请求的接口,包含......
  • Java 面向对象编程进阶六(内部类 )
    目录内部类内部类的概念内部类的分类1、非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同)2、静态内部类3、匿名内部类4、局部内部类内部类        内部类是一类特殊的类,指的是定义在一个类的内部的类。实际开发中,为了方便的使用外部类的相......
  • Java 面向对象编程进阶七(字符串 String )
    目录字符串StringString基础String类和常量池String类常用的方法String类常用方法一String类常用方法二字符串相等的判断字符串String        String是我们开发中最常用的类,我们不仅要掌握String类常见的方法,对于String的底层实现也需要掌握好......