[发明专利]一种队列通信控制方法有效
申请号: | 201810089090.4 | 申请日: | 2018-01-30 |
公开(公告)号: | CN108345561B | 公开(公告)日: | 2021-08-10 |
发明(设计)人: | 王俊昌;田杨锋;付雄 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F15/163 | 分类号: | G06F15/163 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 田凌涛 |
地址: | 210023 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 队列 通信 控制 方法 | ||
本发明涉及一种队列通信控制方法,采用新单生产者单消费者无锁队列,在数据传输速率较低的情况下,能够压缩队列的长度以提高资源利用率,在数据传输速率较高的情况下,能够扩展队列的长度以防止数据资源的丢失。直接解决了现有技术中因为数据传输速率无法一直保持平衡状态而导致的系统性能极大下降以及数据丢失的问题。实验和理论结果表明,本发明在10Gbps网卡下的多核处理器间进行数据传输,本发明需要少于50个CPU周期来完成入队/出队操作,比FastForward和MCRingBuffer(两种最有名的解决方案)要高3和2倍。
技术领域
本发明涉及一种队列通信控制方法,属于多处理器/多核间数据通信技术领域。
背景技术
核间通信机制是多核处理器有效使用的至关重要的基石之一。目前,无锁的单生产者单消费者队列被认为是最为高效的核间通信机制。如今已经有许多队列算法被提出以实现无锁的单生产者单消费者队列,但是这些队列算法的设计目标大都旨在提高系统吞吐量,为了达到这个目标,批处理技术在现有队列算法中被广泛采用。然而,批处理技术从根本上要求数据传输速率达到一个平衡状态才能最大化发挥其性能,但是在实际的高性能系统中,数据传输速率通常含有抖动,不可能达到平衡这一理想状态,因而现有队列算法在大规模并行应用程序中性能遭到极大限制。
发明内容
本发明所要解决的技术问题是提供一种队列通信控制方法,能够明显提高多处理核间的信息传输效率,并且基于当前信息速率的大小合理分配队列大小,既能防止速率低时占用大量内存空间,又可以防止数据到达速率高时信息的丢失。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种队列通信控制方法,用于实现发送端基于无锁单生产者单消费者队列,向接收端发送数据的控制,包括基于发送端向队列加载数据速度大于接收端由队列提取数据速度情况下,发送端向队列加载单个数据的控制方法,如下步骤所示:
步骤A1. 判断队列中生产者指针所指向的队列单元是否为空,是则进入步骤A2;否则针对全局性失败参数量traffic进行加1更新,并提示发送端向队列加载该数据失败;
步骤A2. 将队列中的生产者指针向前移动一个队列单元,并判断此时生产者指针是否指向队列的队尾,是则进入步骤A3;否则进入步骤A6;
步骤A3. 判断全局性失败参数量traffic是否达到预设数据加载失败次数阈值,是则进入步骤A4;否则进入步骤A5;
步骤A4. 由发送端针对队列长度扩大n1倍,并进入步骤A6;其中,n1大于0;
步骤A5. 将队列中的生产者指针移回队列的队首,并进入步骤A6;
步骤A6. 由发送端根据生产者指针的指向,向队列加载该数据。
作为本发明的一种优选技术方案:所述n1等于2。
作为本发明的一种优选技术方案:还包括基于发送端向队列加载数据速度小于接收端由队列提取数据速度情况下,接收端由队列中提取单个数据的控制方法,如下步骤所示:
步骤B1. 判断队列中消费者指针所指向的队列单元是否为空,是则针对全局性失败参数量traffic进行减1更新,并提示接收端由队列中提取数据失败;否则进入步骤B2;
步骤B2. 将队列中的消费者指针向前移动一个队列单元,并判断此时消费者指针是否指向队列的队尾,是则进入步骤B3;否则进入步骤B7;
步骤B3. 判断全局性失败参数量traffic是否达到预设数据提取失败次数阈值,是则进入步骤B4;否则进入步骤B6;
步骤B4. 判断队列中生产者指针是否越过队列的中间位置,是则返回步骤B3;否则进入步骤B5;
步骤B5. 由发送端针对队列长度缩小n2倍,并进入步骤B7;其中,0n21;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810089090.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种幼儿教育电子图书
- 下一篇:多路服务器及其信号处理方法