数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 2641|回复: 5

关于数据依赖问题

[复制链接]
发表于 2022-10-6 14:43:17 | 显示全部楼层 |阅读模式
是否按照附件3构造出有向图后,才能判断出读后写和写后读的的先后关系?
还有就是对于一个未被写过的变量,能否先读后写,即先进行读取,有可能读取空值,考虑这种情况吗?
发表于 2022-10-6 15:25:03 | 显示全部楼层
本帖最后由 Mooncake 于 2022-10-6 15:29 编辑

有向图的构建是根据基本块之间的邻接构造的,但是数据之间是否存在控制依赖又能够改变基本块的执行顺序。此时对于数据依赖中的读后写关系我就产生了疑问。
以图C-1为例,原本的有向图是0→①→③,假设0对变量a有一个读操作,③对变量a有一个写操作,按照该有向图执行时,块0在块③之前,两者满足读后写操作。
但是如果将有向图改为图C-2,即块0在块③在同一级执行,此时两者同样满足读后写操作;如果改为块③在块0之前执行,两者满足写后读操作。
这样是否是对于块0与块③之间,数据依赖没有对他们产生任何约束效果呢。
发表于 2022-10-6 15:26:38 | 显示全部楼层
1 是的,依据附件3构成有向图后才能判断读者的先后顺序
2 此种情况并不影响本题作答,认为存在读后写依赖即可
发表于 2022-10-6 16:06:15 | 显示全部楼层
Mooncake 发表于 2022-10-6 15:25
有向图的构建是根据基本块之间的邻接构造的,但是数据之间是否存在控制依赖又能够改变基本块的执行顺序。此 ...

数据依赖说明中指出,读后写依赖来的两个基本块是可以放到一级的。实际上,放到一级的所有基本块都是并行执行的,并行执行时按照先读后写的逻辑。所以0号和3号放到一级后,图C-2中的边仅仅是表示两个基本块在同一条流程,即同一条路径上,并不表示执行的先后顺序。
发表于 2022-10-6 22:18:06 | 显示全部楼层
D题专家 发表于 2022-10-6 16:06
数据依赖说明中指出,读后写依赖来的两个基本块是可以放到一级的。实际上,放到一级的所有基本块都是并行 ...

所以如果0模块和3模块对同一个变量分别进行读、写操作,这两个模块所在的级无论是同级、0前3后、0后3前,都是满足数据约束的吗?
发表于 2022-10-7 11:47:51 | 显示全部楼层
非常好 发表于 2022-10-6 22:18
所以如果0模块和3模块对同一个变量分别进行读、写操作,这两个模块所在的级无论是同级、0前3后、0后3前, ...

此种情3在0的下游,0和3分别对一个变量进行了读、写操作,构成读后写数据依赖。同级、0前3后均可,但3前0后步行。
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-30 19:47 , Processed in 0.100479 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表