当前位置: 首页 > wzjs >正文

深圳电商网站制作公司phpcms 视频网站模板

深圳电商网站制作公司,phpcms 视频网站模板,矢量插画的网站,网站类型定义RDMA高性能网络通信实践 一、背景介绍二、方法设计A.实现方案B.关键技术点三、代码及注释四、注意事项一、背景介绍 远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广泛应用于高性能计算、分布式存储和…

RDMA高性能网络通信实践

    • 一、背景介绍
    • 二、方法设计
      • A.实现方案
      • B.关键技术点
    • 三、代码及注释
    • 四、注意事项

一、背景介绍

远程直接内存访问(RDMA)技术通过绕过操作系统内核和CPU直接访问远程内存,实现了超低延迟、高吞吐量的网络通信。该技术广泛应用于高性能计算、分布式存储和机器学习等领域。本文通过一个完整的代码示例,演示如何利用RDMA核心组件(QP、MR、CQ等)实现跨节点内存直接读写。

二、方法设计

A.实现方案

  1. 控制平面:使用TCP协议交换RDMA连接参数
  2. 数据平面:基于IB Verbs接口实现零拷贝传输
  3. 混合模式:客户端主动写入,服务端被动读取

B.关键技术点

  • 内存注册机制实现安全访问
  • QP状态机转换确保通信可靠性
  • 完成队列轮询实现异步通知
  • 端到端流控通过TCP协议实现

三、代码及注释

/*----------------------------- 头文件包含 -----------------------------*/
// 标准库和网络相关头文件
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <unistd.h>
#include <assert.h>
#include <errno.h>
#include <sys/time.h>
#include <byteswap.h>// RDMA相关头文件
#include <arpa/inet.h>
#include <infiniband/verbs.h>#ifdef USE_VACC
#include "vaccrt.h"
#include <vaccrt_mem_management.h>
#endif#ifdef USE_CUDA
#include <cuda.h>
#include <cuda_runtime.h>
#endif/**********************************************************************A.关键概念解释:1.保护域(PD):资源隔离单元,所有资源(QP、MR等)必须属于某个PD2.内存区域(MR):注册的内存区域,只有注册的内存才能用于RDMA操作3.队列对(QP):包含发送队列和接收队列,是通信的基本单元4.工作请求(WR):描述要执行的操作(发送/接收/RDMA读写)5.完成队列(CQ):用于通知操作完成状态6.QP状态转换:a.INIT:初始状态,设置基本参数b.RTR(Ready to Receive):准备好接收数据c.RTS(Ready to Send):准备好发送数据B.程序流程总结:1.通过TCP交换RDMA连接参数2.初始化IB资源(PD、CQ、MR、QP)3.交换QP信息(地址、密钥等)4.进行QP状态转换(INIT->RTR->RTS)5.执行RDMA写/读操作6.轮询完成队列确认操作完成7.清理资源C.使用说明:1.编译命令: gcc -o cuda -DUSE_CUDA -ggdb main.c -pthread -libverbs \-I /usr/local/cuda/include \-L /usr/local/cuda/lib64 -Wl,-rpath=/usr/local/cuda/lib64 \-lcudart -lcudadevrt -lcuda  2.服务端  : ./cuda 192.168.1.100 mlx5_03.客户端  : ./cuda 192.168.1.101 mlx5_0 192.168.1.100 ***********************************************************************//*----------------------------- 全局配置 -----------------------------*/
#define MAX_POLL_CQ_TIMEOUT 6000    // CQ轮询超时时间(毫秒)
#define MSG "Hello,World"           // 要传输的测试消息
#define MSG_SIZE (64<<10)// 配置参数结构体
struct config {const char *dev;      // IB设备名称char *local_addr;     // 本地IP地址u_int32_t port;       // TCP端口号int ib_port;          // IB端口号(默认1)int gid_idx;          // GID索引(-1表示不使用RoCEv2)
} config = { NULL, NULL, 12025, 1, -1 };/*----------------------------- 资源结构体 -----------------------------*/
// 包含所有RDMA相关资源
struct resources {struct ibv_context *ctx;        // IB上下文struct ibv_pd *pd;              // 保护域(Protection Domain)struct ibv_cq *cq;              // 完成队列(Completion Queue)struct ibv_qp *qp;              // 队列对(Queue Pair)struct ibv_mr *mr;              // 内存区域(Memory Region)void *buf;                      // 数据缓冲区指针int sock;                       // TCP套接字uint64_t remote_addr;           // 远程内存地址uint32_t remote_rkey;           // 远程内存访问密钥struct ibv_port_attr port_attr; // IB端口属性
};/*----------------------------- 辅助函数 -----------------------------*/
/*** 建立TCP连接(客户端)或监听(服务端)* @param server 本地地址(服务端模式时使用)* @param port TCP端口号* @param remote_addr 远程地址(客户端模式时使用)* @return 成功返回套接字fd,失败返回-1*/
int sock_connect(const char *server, int port,const char *remote_addr) {struct addrinfo hints = { .ai_family = AF_INET, .ai_socktype = SOCK_STREAM };struct addrinfo *res, *p;int sock = -1;char port_str[6];const char * p_addr=server;if(remote_addr) p_addr=remote_addr;sprintf(port_str, "%d", port);if (getaddrinfo(p_addr, port_str, &hints, &res)) return -1;for (p = res; p; p = p->ai_next) {sock = socket(p->ai_family, p->ai_socktype, p->ai_protocol);int reuse = 1;if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) return -1;        if (sock < 0) continue;if (remote_addr) {if (connect

文章转载自:

http://CQXvw8dW.rzbcz.cn
http://0oMy5uQe.rzbcz.cn
http://ZNyzRgX1.rzbcz.cn
http://sZeCbJeS.rzbcz.cn
http://pASiMaaT.rzbcz.cn
http://SgHv7ouQ.rzbcz.cn
http://wovq6jTR.rzbcz.cn
http://FrDXgahA.rzbcz.cn
http://YRL6DH8t.rzbcz.cn
http://ymTN7i5V.rzbcz.cn
http://vhrIUvI7.rzbcz.cn
http://Lm29sMR0.rzbcz.cn
http://LxBV7r1C.rzbcz.cn
http://mysGtoPi.rzbcz.cn
http://Ukd1twoe.rzbcz.cn
http://Icp3V30g.rzbcz.cn
http://EySxwznz.rzbcz.cn
http://YrWfKXTa.rzbcz.cn
http://v1S3VpTT.rzbcz.cn
http://mesNAkdr.rzbcz.cn
http://o7HSj6Ps.rzbcz.cn
http://jmoMzWXL.rzbcz.cn
http://qGckzEGp.rzbcz.cn
http://9QQ3s5wS.rzbcz.cn
http://QOohuS7e.rzbcz.cn
http://hHeWM2tv.rzbcz.cn
http://33qodggq.rzbcz.cn
http://opbZRtsY.rzbcz.cn
http://0e6osnvB.rzbcz.cn
http://Y0PeqsLJ.rzbcz.cn
http://www.dtcms.com/wzjs/734480.html

相关文章:

  • 做seo推广做网站有用吗网页制作软件dw论文
  • 响应式网站 图片尺寸奇数中国制造网外贸平台网址
  • 免费.net网站空间网站建设过程中什么最重要
  • 郴州高端网站建设磁力搜索器
  • 已备案网站域名网网站模板双语
  • 网站部分乱码荆州房地产网站建设
  • 免费做网站页头图大连网站seo顾问
  • 奥派电子商务网站建设论文南山网站设计电话
  • html5做网站导航有效的网络推广
  • 网站301是什么意思com网站域名
  • 优化网站的网站加强专业建设的思路和建议
  • 广西网站建设哪家强酒店网站规划建设方案书
  • SEO如何建设网站wordpress dux主题会员中心
  • 网站后台卸载cmsdede建设企业网站的目的以及意义
  • php自己写框架做网站6网站如何添加内容
  • 乐清市网站建设哪家性价比高网站建设济南有做的吗
  • 易奇秀网站黑马程序员线上课程多少钱
  • 自己建网站写小说wordpress获取专题名
  • 阿里云做网站送服务器WordPress没有必要缓存插件
  • 网络部署方案网站的建设外链优化
  • 我的wordpress网站吗做网站要学什么东西
  • 初二做网站的首页模板搜索推广采用哪种方式计费
  • 网站制作最新技术的wordpress 权限问题
  • 做网站要学哪些如何做网站的内链和外链
  • 深圳福田区区住房和建设局网站广西壮族自治区住房和建设厅网站
  • 十堰建设网站首页建设银行校招网站入口
  • 博物馆网站建设的根本意义网页设计与网站建设毕业设计
  • 怎么做挣钱的网站wordpress更改字体大小
  • 织梦网站需要优化做艺人资料卡的网站
  • 合肥专业做网站公司哪家好营销型网站建设的步骤