三种多线程编程模型 流水线 工作组 客户端/服务器 3.1 流水线编程模型What Is Pipelining Laundry(洗衣) Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutes Dryer takes 40 minutes “Folder” takes 20 minutes A B C D What Is Pipelining Sequential laundry takes 6 hours for 4 loads If they learned pipelining, how long would laundry take? A B C D 30 40 20 30 40 20 30 40 20 30 40 20 6 PM 7 8 9 10 11 Midnight T a s k O r d e r Time What Is Pipelining Start work ASAP Pipelined laundry takes 3.5 hours for 4 loads A B C D 6 PM 7 8 9 10 11 Midnight T a s k O r d e r Time 30 40 40 40 40 20 3.1 流水线编程模型 在流水线方式中,数据元素流串行地被一组线程顺序处理。 每个线程反复地在数据系列集上执行同一种操作,并把操作的结果传递给下一步骤的其他线程 3.1 流水线编程模型 3.2 工作组编程模型 数据由一组线程独立地处理 循环的“并行分解”就属于这种模式,通常这种模式称为SIMD并行处理。 也可以在不同的数据上执行不同的操作,与MIMD并行处理的定义相似。 3.2 工作组编程模型 3.3 客户端/服务器方式 客户端请求服务器对一组数据执行某个操作。 4. 多线程编程的原则及要点 负载平衡 静态负载平衡 人工地将程序分割成多个可并行执行的部分,并保证分割的各个部分能均衡地分布到各个CPU上。 动态负载平衡 程序在运行过程中来进行任务的分配达到负载平衡的目的。 如:循环的次数是由外部输入决定的 动态负载平衡中对任务的调度一般是由系统来实现的。 负载平衡的难题 程序中的可并行执行块很多要靠程序员来划分,CPU核数较少时,划分并不困难。但随着核数增多,划分的粒度将变得越来越细,划分难度增加。 负载划分的误差会随着CPU核数的增加而放大。 负载划分的难题体现在CPU核数上。 负载划分的难题体现在软件升级上。 串行化问题 加锁保护导致的串行化问题,如果任务数量固定的前提下,串行化所占的比例是随软件规模的增加而减少的,但不幸的是它会随着任务数量的增加而增加。 也就是说处理器个数越多,锁竞争导致的串行化越严重。 解决措施 少用锁,甚至采用无锁编程 使用原子操作代替锁,使用原子操作本质上并没有解决串行化的问题,只不过让串行化的速度大大提升,从而使得串行化所占执行时间比例大大下降。 从设计和算法层面来缩小串行化所占的比例。 从芯片设计方面来考虑的,在芯片层面设计一些新的并行指令 * * * * * * * * * 多线程编程方法综述 免费午餐结束了 为了充分利用多个计算核心,提高整个程序的吞吐率,主要是利用多线程 线程的基本概念 线程的同步 多线程编程模型 多线程编程的原则及要点 内容 * 1. 线程的基本概念 进程 (早期)进程作为能独立运行的基本单位。 进程是程序在计算机上的一次执行活动。 程序是死的(静态的),进程是活的(动态的)。 进程是系统进行资源分配和调度运行的一个独立单位(也称为任务)。 引入进程的目的:为了使多个程序并发执行,来改善资源利用率及提高系统的吞吐量。 引入线程的目的:为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。 线程 线程:是进程中的一个实体,是被系统调度和分配的基本单元。 每个程序至少包含一个线程,主线程。 线程拥有很少的系统资源:程序计数器、一组寄存器和栈 同一进程所属的各线程共享进程的全部资源 同一个进程中的多个线程可以并发执行,从而更好地改善了资源利用率。 1.1 线程与进程的区别 线程是轻量级的进程,是CPU调度和分配的基本单位。 传统意义的进程是重量级进程。 1.1 线程与进程的区别 调度 传统的操作系统,进程是CPU调度和分配的基本单位。 引入线程的操作系统,线程是CPU调度和分配的基本单位,而进程是资源拥有的基本单位。 进程的两个属性分开,线程轻装运行,可以显著提高系统的并发性。 同一个进程的线程切换简单。 1.1 线程与进程的区别 并发性 进程之间可以
您可能关注的文档
- 道德讲堂建设.ppt
- 道德的起源及其历史发展.ppt
- 思想道德修养与法律基础 (7).ppt
- 思想道德修养与法律基础 (4).ppt
- 思想道德修养与法律基础 (5).ppt
- 《思想道德修养与法律基础》说课讲义.ppt
- 道德与社会责任讲义.ppt
- 加强道德修养锤炼道德品质讲义.ppt
- 驾驶员职业道德规范讲义.ppt
- 社会三大生活领域中的道德讲义.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)