LITL论文复现

本文档详细介绍了LITL论文中三种特色锁方法的复现过程,包括在Ubuntu 16.04环境下安装、编译与测试步骤。作者创建了一个竞争程度可调的互斥程序,通过不同线程数量和访问概率比较锁的效率,并提供了编译和运行测试代码的示例。实验结果显示,在特定测试中,一种锁方法表现优于另一种。
摘要由CSDN通过智能技术生成

LITL论文复现及测试

作业4:

  1. 阅读pdf文件,找到其中你觉得在测试效率结果上最有特色的三种锁方法,根据这三种方法的参考文献并看他们与mutex的不同
  2. 对应1中的锁方法的源码(https://github.com/sslab-gatech/shfllock),根据论文中的数据集(自行查找)运行代码重现1中你觉得“特色”的结果
  3. 写一个竞争程度可以调整的互斥程序,要求基于一定数量的线程通过上述三种锁完成互斥访问,具体要求通过设定不同线程数量(第一个参数)
    a. 每个线程必须上锁去访问一组数组的元素,数据元素100万个自定义结构体,128字节对齐
    b. 每个线程在100万个元素上访问100000000次,以一定概率t(程序第二参数)对0号元素访问,以1-t的概率随机访问其他999,999个元素
    c. 统计不同线程数量下、不同冲突概率时,不同锁方法的效率对比

环境是Ubuntu16.04 ,作业4基本全部更新到GitHub上了,暂时不打算同步到csdn。
水平有限,大家自行甄别吧。

LITL安装

编译部分

首先要安装papi,如果在之前有编译过的,应该要将原来的删掉,安装papi之后再编译

sudo apt-get update
sudo apt-get install libpapi-dev

进入ulocks/src/litl/目录。

使用make -C .命令编译,因该

这些新生成的sh文件,应该就是编译的结果吧。

在这里插入图片描述

测试部分

根据readme中的信息,我们可以用./xxxxxxx.sh myprogram的方式运行生成的锁,

在这里插入图片描述

解下来,就可以测试锁啦,我从网上随便复制了一段锁测试代码。

#include <stdio.h>

#include <pthread
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值