Improving key-value cache performance with heterogeneous memory tiering:A case study of CXL-based memory expansion
START
Basic
Improving key-value cache performance with heterogeneous memory tiering:A case study of CXL-based memory expansionTL;DR:提出了基于CXL的内存拓展原型和软件开发套件,并在此基础上开发KV应用。
KV是非常重要的应用,常作为缓存,保证高命中率十分重要,主要依靠 DRAM 来实现最佳性能。DRAM无法完全满足需求,向DRAM以外的内存拓展系统发展。
我们为键值缓存提供了两种不同的内存系统架构:透明分层和数据分层。在透明分层中,DRAM 和 CXL 内存作为统一内存层共存,而数据分层将 DRAM 和 CXL 内存区分为单独的内存层。特别是,我们应用这些内存系统架构来优化 Meta 的 CacheLib,这是 Meta 开发的开源进程内缓存引擎
主要贡献
开发接近商业性能的 CXL 内存扩展器原型和 HMSDK,提供两种编程模型:1) 操作系统级控制和 2) 应用程序级控制。
数据中心键值缓存工作负载内存分层的详细增强:1) 高性能,2) 高命 ...
DDC:A Vision for a Disaggregated Datacenter
START
Basic
# DDC:A Vision for a Disaggregated Datacenter
TL;DR:新的互联协议CXL出现,作者畅想了数据中心的新形态
数据中心低CPU利用率,高内存利用率应用程序分配的内存足以满足其最坏情况的使用。因此,由于没有足够的内存可用,CPU 资源可能会过多解决利用率不足问题的一个自然解决方案是完全避免资源耦合。CPU和内存分配解耦这种资源分解将数据中心从以服务器为中心转变为以资源为中心的模型,其中每种类型的资源独立于其他资源在逻辑上汇集在一起。本文采用自上而下的方法,利用传统计算机体系结构的类比。它系统地解决了内存分解的所有相关方面,提出了一个全面的模型,并提出了一个研究平台,以促进不同方法之间的定量比较
STATE OF THE ARTSplit architecture:服务器资源被分割,其中资源的一部分严格由所属服务器在本地使用,而剩余的资源则被通告以供数据中心中的其他节点使用。大多数遵循此架构的实现都是基于软件、虚拟机管理程序或操作系统的
Pool architecture:资源通过池化在一起而更加分散。通常,这 ...
精神分析
弗洛伊德的内驱力理论
攻击驱动的满足
力比多的满足力比多即性驱力,这里的性不是指生殖意义上的性,而是泛指创造、愉快、亲密、温暖、美好的感受攻击驱力,泛指竞争、追求卓越、自我攻击、攻击他人、社会
精神分析的价值父母亲如何和孩子打交道如何让孩子变得健康如何治疗和父母相处存在关系的人
和其他的学派相比
决定论的哲学观点——童年决定成人
将意识分为不同的层面——前意识与潜意识,潜意识:不自觉,未加发觉的行为。潜意识由过往的经历决定。
例:对领导和权威的关系,实际上是对父亲关系的翻版
弗洛伊德认为6岁是分水岭,6岁以后大脑已经发育完成,克莱因和科胡特认为核心人格在前语言期(两岁)决定,后人再往前推,认为4-6月已经成熟
核心人格的影响
早年良好的父母和孩子的关系,形成健康的核心人格
以后的阶段中出现重大的心理创伤,会退行到早年
精神分析眼中世界上只有三种人
精神病
人格障碍
精神症(正常人)
俄狄浦斯冲突神经症冲突
生与死
男与女
成功渴望和失败恐惧
俄狄浦斯冲突主要研究:对成功的渴望,以及潜意识里面对成功之后所可能受到的惩罚的恐惧。
例:社恐与人交流需要找话题才显得不尴 ...
Approaching DRAM performance by using microsecond-latency flash memory for small-sized random read accesses: a new access method and its graph applications
START
Basic
# Approaching DRAM performance by using microsecond-latency flash memory for small-sized random read accesses: a new access method and its graph applications
TL;DR:通过新的硬件接口和无堆栈协程隐藏延迟来优化针对SSD的小尺寸随机读取,使其接近DRAM的性能
introduction数据密集型应用,数据大小常常超出DRAM限制,需要放到SSD中。虽然SSD性能比DRAM差很多,但如果是顺序访问SSD,得益于预取和高带宽,其性能接近DRAM.但是小尺寸的随机访问会严重的影响应用的性能,由于小尺寸的随机访问每次需要发出一个请求来读一小段数据,这个请求本身会带来CPU的开销。由于随机访问,预取也不是很有效。上下文切换是传统的解决方案,但是操作系统进行上下文切换花费几毫秒
针对高速SSD,CPU处理IO请求是一种开销,为了减少开销
开发出新的硬件接口来减少CPU读请求发射和完成的开销
每个核心用数百个上 ...
FIFO Queues are All You Need for Cache Eviction
START
Basic
[Home - S3-FIFO: Simple, scalable and efficient caching (s3fifo.com)](https://s3fifo.com/)
## Introduction
S3-FIFO:simple,scalable,staic queue
LRU的问题:
- 每个对象需要两个指针,存储开销
- 它不可扩展,因为每次缓存命中都需要将请求的对象提升到由锁定保护的队列的头部
大部分数据只出现一次(one hit wonder),快速降级是十分重要的
跟其他的驱逐算法比十分高效
S3FIFO是无锁实现,
FIFO的拓展性极好,但是不够高效FIFO的限制是无法保留经常访问的对象,有研究尝试保留这些经常访问的对象,但是性能无法达到sota,作者的见解是one hit wonder十分频繁,快速删除大多数新对象是十分重要的
Design and implementationdesign3个FIFO队列
small S 占用10%的空间
mian M 占用90%的空间
ghost G 和M存储相同数量的元素(无数据)使用每个 ...
protobuf
c++基础
protobufprotobuf+RPC技术 - 知乎 (zhihu.com)定义:是与json,XML功能相似的一种结构化数据格式,是一种google定义的结构化数据格式,用于在网络通讯间的数据序列化和反序列化,以用于网络传输。序列化:将数据结构或对象转换成二进制串的过程;反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
特点:相对于其他格式,protobuf解析速度快(即序列化反序列化速度快),占用空间小,以及兼容性好,很适合做数据存储或网络通讯间的数据传输。
如何使用protobufProtoBuf 入门教程 - 梯子教程网 (tizi365.com)上面的网站介绍了protobuf的语法,非常简单、
然后用protoc将.proto文件转换为c++文件
1protoc --cpp_out=. example.proto
4. 使用protobuf 序列化数据 - 上_哔哩哔哩_bilibiliProtobuf | 爱编程的大丙 (subingwen.cn)
message的每个属性都会生成一系列函数供编程者使用
12345clear ...
Demystifying CXL Memory with Genuine CXL-Ready Systems and Devices
START
Basic
# Demystifying CXL Memory with Genuine CXL-Ready Systems and Devices
- CXL性能分析
- 内存带宽敏感性应用能够从CXL内存中受益
- CXL内存感知动态页分配策略caption来更加高效的利用CXL作为带宽拓展器。与为传统 NUMA 系统设计的默认页面分配策略相比,Caption 可以自动收敛到经验上有利的页面分配比例,从而将内存带宽密集型应用程序的性能提高高达 24%。
EVALUATION SETUPSystem and Deviceserver:two Intel Sapphire Rapids (SPR) CPU sockets一个socket有 eight 4800 MT/s DDR5 DRAM DIMMs (128 GB) across eight memory channels. 另一个socket is populated with only one 4800 MT/s DDR5 DRAM DIMM to emulate the bandwidth ...
A Lightweight Infrastructure for Graph Analytics
START
Basic
# A Lightweight Infrastructure for Graph Analytics
sosp13,比ligra晚一点
20240223 4:50——6:00
20240224 3:33——5:00
TL;DR:高性能轻量级的图计算基础设施
图分析基础设施:像ligra和powergraph都是特定的DSL:vertex program,activity是节点,邻域只能是节点在图上的直接邻居,而galois作为一种基础设施可以实现多种DSL
作为一个图分析基础设施,为了保证在不同DSL下都能实现高性能,采用精心设计的优先级调度和重新实现的内存管理

针对图的特定领域语言DSL可以在通用基础设施之上完成,基础设施需要支持
细粒度的任务
任务的自主推测执行
允许应用程序对任务调度策略进行应用程序特定的控制该基础设施的优势
针对以前 DSL 解决的一些图形分析问题 ...
Ligra:A Lightweight Graph Processing Framework for Shared Memory
START
Basic
# Ligra:A Lightweight Graph Processing Framework for Shared Memory
阅读时长:20240223 2:00——4:26
ppopp13
TL;DR:适用于遍历应用的轻量级单机图处理
## introduction
Ligra支持两种数据类型,一种表示具有顶点V和边E的图G=(V, E),另一种表示顶点 V 的子集,我们将其称为 vertexSubsets。除了构造函数和大小查询之外,该接口仅提供两个函数,一个用于顶点映射 (VERTEXMAP),另一个用于边映射 (EDGEMAP)。
由于 vertexSubset 是 V 的子集,因此 VERTEXMAP 可用于映射原始顶点的任何子集,因此它在遍历算法中很有用,或者在其他每一轮只处理部分顶点子集的算法中有用。EDGEMAP 还处理边的子集,该子集使用 vertexSubset 来指定以指示有效源,并使用布尔函数来指示每个边的有效目标。抽象的说,vertexSubset 只是包含顶点的一组整数标签,而 VERTEXMAP 只是将用户提供的函数 ...
X-Stream: Edge-centric Graph Processing using Streaming Partitions
SDM:Sharing-Enabled Disaggregated Memory System with Cache Coherent Compute Express LinkSTARTBasic
# X-Stream: Edge-centric Graph Processing using Streaming Partitions
sosp13
TL;DR:边中心,流式的处理未排序的边列表
## introduction
图计算具有一种有趣的挑战:遍历边时缺乏局部性
scale up:直观且可接受的方法时通过原始顶点对边进行排序,并且在排序的边上构建索引列表,然后通过索引随机访问来定位到点连接的边。。该设计隐含了顺序访问和随机访问之间的权衡,倾向于通过索引进行少量随机访问,以便定位连接到某个对象的活跃边,流式传输大量(可能)不相关的边并拾取连接到活动顶点的边。本文重新讨论的正是这种权衡。
基于顺序访问的大带宽来构建纯粹基于从存储中流式传输数据原理的图形处理系统,适合单机和核外。
以边为中心scatter和gather,避免对边的随机访问,对于边比点大得多的图,流式传输边更具优势,然 ...