当前位置: 首页 > news >正文

计算机系统结构之FORK和JOIN

程序语言中用FORK语句派生并行任务,用JOIN语句对多个并发任务汇合。

FORK语句的形式为FORK m,其中m为新领程开始的标号。

JOIN语句的形式为JOIN n,其中n为并发进程的个数。

例1:给定算术表达式Z=E+A*B*C/D+F经并行编译得到如下程序:

S1 G=A*B

S2 H=C/D

S3 I=G*H

S4 J=E+F

S5 Z=I+J

利用FORK和JOIN语句实现这种派生和汇合关系:

时空图:

注意:不连续的处理机(S1)遵循一明一暗选择

一明一暗:GOTO不画,JOIN画但不标示

例2:有表达式Z=A*(B+C*(D+E*F))+G*H*D在多处理机上,要求利用减少树高的方法加速运算。

(1)画出并行运算的树形流程图,并确定处理机数P和树高Tp。

(2)用FORK、JOIN、GOTO语句写出运算表达式的多处理机并行程序段。

总结:

1、对于同一级的多个任务,由最后一个执行完上一个任务的处理机随机选一个任务执行。

2、(1)同一级有加、乘任务时,没有特别要求,通常把加法任务写在前面,乘法任务写在后面。

      (2)同一级若乘任务在前、加任务在后,没有特殊说明(比如:一般认为乘运算比加运算执行时间长),加任务执行时间更长,下一个任务继续由加运算所在处理机执行。

例3:

若有下述程序:

C=A*B

D=A+B

G=E*C

H=F+D

I=G+H

(1)利用FORK、JOIN语句将其改写成可在多处理机上并行执行的程序。

(2)假设乘法运算期间比加法运算时间长,画出程序在有两台处理机的系统上运行的时间关系图。

例4:

由霍纳法则给定的表达式如下:

x=a+b(c+(d+e))+f(g(i+j))

利用减少树高来尽可能加快运算速度,要求:

(1)画出在3台处理机上并行运算的树形流程图。

(2)当P=3时,求运算级数Tp、加速比Sp和效率Ep的值。

http://www.lryc.cn/news/360263.html

相关文章:

  • Yocto - virtual/kernel介绍
  • 如何在 DigitalOcean 云服务器上创建自定义品牌名称服务器
  • 心链6----开发主页以及后端数据插入(多线程并发)定时任务
  • 【Linux】日志管理
  • AI 绘画爆火背后:扩散模型原理及实现
  • 详解智慧互联网医院系统源码:开发医院小程序教学
  • 【技术实操】银河高级服务器操作系统实例分享,数据库日志文件属主不对问题分析
  • 函数的创建和调用
  • 数模混合芯片设计中的修调技术是什么?
  • MySQL 自定义函数(实验报告)
  • 一次职业院校漏洞挖掘
  • 洪师傅代驾系统开发 支持公众号H5小程序APP 后端Java源码
  • View->Bitmap缩放到自定义ViewGroup的任意区域(Matrix方式绘制Bitmap)
  • Centos 7部署NTP
  • 【前缀和】42. 接雨水
  • 我的名字叫大数据
  • 数据库漫谈-infomix
  • 【Qt】Qt界面美化指南:深入理解QSS样式表的应用与实践
  • 七彩云南文化旅游网站的设计
  • 7-zip安装教程
  • oracle 12c DB卸载流程
  • Docker学习笔记 - 创建自己的image
  • java web爬虫
  • MySQL开发教程和具体应用案例
  • QT C++ 模型视图结构 QTableView 简单例子
  • 2024年3月电子学会Python编程等级考试(四级)真题题库
  • 深入分析 Android BroadcastReceiver (一)
  • 2024医美如何做抖音医美抖音号,本地团购、短视频直播双ip爆品引流,实操落地课
  • Debian常用指令指南:高效管理你的Linux系统
  • 什么是DELINS交货指示?