王恒宇-async-rdma 用Rust实现RDMA异步编程库‍.pdf

编号:153875 PDF 27页 1.96MB 下载积分:VIP专享
下载报告请您先登录!

王恒宇-async-rdma 用Rust实现RDMA异步编程库‍.pdf

1、async-rdma:用Rust实现RDMA异步编程库主讲人:王恒宇演讲嘉宾介绍王恒宇async-rdma项目维护者 中科院软件所基础软件国家工程研究中心在读研究生 DatenLord社区RDMA相关开源项目贡献者 对RDMA、CPU、OS、Rust、Cloud Native等技术领域有广泛兴趣CONTENT目录2023K+01RDMA技术简介Rust异步RDMA编程库异步RDMA框架设计原理0203Part 01RDMA技术简介 RDMA概念简介 RDMA应用痛点RDMA概念简介传统以太网RDMA主要概念App工作请求(Work Request,WR):RDMA操作指令,包含操作类型如Rea

2、d/Write,和数据的位置和大小。工作完成(Work Completion,WC):工作请求完成标识,描述完成的情况如操作成功与否,错误代码等。Lib&DriverWR,WC映射为驱动层中的工作队列元素(Work Queue Element,WQE)和完成队列元素(Completion Queue Element,CQE),并最终与硬件网卡交互。RDMA概念简介操作类型SEND&RECV(双端操作)Send前需要对端先Receive对端CPU需要感知每次收发操作用于交换元数据等小数据量操作READ&WRITE(单端操作)请求发送前对端无需进行操作对端CPU不感知单端操作,网卡自动响应RDMA

3、的主要优势所在,适用于大数据量传输RDMA概念简介RDMA概念简介RDMA 编程接口-Verbs API以太网下基于Socket API编写应用;RDMA下基于Verbs API编写应用。支持IB/iWARP/RoCE三大RDMA协议,统一的接口使得RDMA程序可以无视底层的硬件和链路差异运行在不同的环境中。RDMA应用痛点RDMA 编程接口-Verbs API接口示例struct ibv_mr*ibv_reg_mr(struct ibv_pd*pd,void*addr,size_t length,enum ibv_access_flags access)int ibv_post_send(s

4、truct ibv_qp*qp,struct ibv_send_wr*wr,struct ibv_send_wr*bad_wr)数据结构示例struct ibv_send_wrRDMA应用痛点RDMA 开发痛点安全性难以保障裸指针传递参数,无法确定所指数据是否有效,容易遇到空指针、野指针、内存泄露和多次释放等常见内存安全问题。指针传递过程中可能丢失类型信息,造成类型安全问题。CPU、RDMA NIC 共享内存,多线程并发执行,存在并发安全问题。接口抽象水平低,易用性差Verbs 接口及其参数贴近硬件实现而非应用语义。参数繁多,概念复杂,错误信息不完善,开发效率低,调试困难。资源管理困难本地需管

5、理设备、连接、队列、内存等资源,远程内存需要多端协同管理。内存管理方面存在高性能和高资源利用率之间的矛盾。RDMA应用痛点RDMA 开发常见问题示例gid_index默认初始化为0,导致ipv4环境下连接失败rnr_retry设置为7,无限重发导致死机Part 02Rust异步RDMA编程库 Rust语言特性 简化编程接口 辅助资源管理Rust语言特性Rust从语言层面解决了RDMA安全相关问题类型安全强类型语言,编译时进行严格类型检查,保障safe代码块类型安全。内存安全Rust中的每一个值都有一个对应的变量作为它的所有者。在同一时间内,值有且仅有一个所有者。当所有者离开自己的作用域时,它持

6、有的值就会被释放掉。同时可以有多个不可变引用或一个可变引用,但不能同时存在。并发安全所有权和类型系统在编译时检查并发安全问题。提供Send、Sync特性,将并发保证拓展至自定义类型。简化编程接口一个直观的对比:执行一次RDMA READ操作async-rdma:high-level Rust async RDMA API从建链到请求完成LOC:10+rdma-sys:low-level Verbs Rust binding从建链到请求完成LOC:1300简化编程接口高抽象层级API用例建立连接let rdma=Rd

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(王恒宇-async-rdma 用Rust实现RDMA异步编程库‍.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠