4、动态调度的静态分析及其应用与降低STM开销

动态调度的静态分析及其应用与降低STM开销

1. 计算读写集

调度分析的第二部分是为每个激活计算读写集。我们通过关系 read : H × BC × H write : H × BC × H 来捕获读写集。例如,元组 read(act, bc, obj) 表示激活对象 act 可能到达字节码 bc ,并且这个字节码是一个可能访问对象 obj 的加载操作。读写集的计算很直接,可以用以下两条 Datalog 规则表示(其中下划线 _ 表示“任意”):

read(act, bc, obj) :-
    activationReaches(act, bc), load(bc, v, _, _),
    variablePT(v, obj).
write(act, bc, obj) :-
    activationReaches(act, bc), store(bc, v, _, _), variablePT(v, obj).

关系 activationReaches : H × BC 是一个简单的可达性谓词,它从激活对象的任务开始,沿着调用图中的所有调用边,找出该激活可能执行的所有字节码。

2. 基于调度分析的优化

基于调度分析,有三种针对并行程序的优化方法。

2.1 同步移除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值