final

tech2023-11-24  93

AITrans2 final_test VS. pretrain_test

一. 数据集变化二. 测试环境变化三. 提交方式变化四. 算法实现变化五. 总结六. paper ideal

一. 数据集变化

1: blocks数据集的格式发生改变, 但影响不大,毕竟我们不对数据集进行处理 2: 参数丢失,block_info中的split_nums丢失,cc_info中的evevt_time丢失(cur_time更新遇到问题),丢失了data的全部信息,丢失了block的子packet信息 3: 参数含义改变:Extra中的inflight表达的含义从包的数目变成未收到包的字节大小,单位字节(Bytes) 4. send_rate,从发送的包的数目大小转变为发送的比特数大小,单位是比特(bit/s)

二. 测试环境变化

需要部署到docker环境代码需要修改为C++版本

三. 提交方式变化

一共有3次提交,最后测试环节,不允许有提交.增加了真实系统的测试决赛系统采用了QUIC重传机制在调度2(拥塞控制)中,选手算法处理的事件是从上一次调度开始未处理的所有事件,这就意味着在选手未作出反馈(更新cwnd或rate)时,系统默认使用上一次调度反馈的参数进行运转. 也就是决赛调用CC时,不再是像初赛一样,每个事件都调度1次,而是会把当前时刻未处理的所有事件一次性以链表的形式传递给选手CC,所以如果选手CC耗时比较久,积留给下次CC的事件就会越多(表现就是算法控制不及时)。

四. 算法实现变化

选包策略,从选择block中的某一个特定packet转变为选择block中的任意一个packet(通过生于block大小进行实现),这样可以降低算法的计算空间. 并且blocks不是按照时间顺序逐一被给,而是一次性全部可以获取并进行选择.拥塞控制策略,每一次event发生都以drop包信息或ack包信息为单位(粒度于预赛一致),但是决策粒度不一致.CC算法不是每个事件都调度1次,而是会把当前时刻未处理的所有事件一次性以链表的形式传递给选手CC决赛系统,选手算法本次运行时间越长,积留给下次调度的事件数量也就越多。

五. 总结

决赛相对于预赛直观感觉区别很大,尤其是模型的输入.但整体而言,很多都是对于预赛模型的优化,例如将block中packet同质化,降低包调度的算法空间,降低拥塞控制的复杂度.其余的实质性差异有以下几点:

模型需要部署在docker环境中,代码需要修改为C++版本.整个决赛23天时间,一共仅有3次提交机会,并且增加了真实系统的测试.CC算法不是每个事件都调度1次,而是会把当前时刻未处理的所有事件一次性以链表的形式传递给选手CC决赛系统.采用了QUIC重传机制.

六. paper ideal

本次比赛选择数据传输的粒度为blocks,考虑的是网络传输过程中是否会出现miss_deadline,进行最大化用户的体验.但是本比赛仅仅考虑的是网络侧的数据传输,对于终端侧的传输没有涉及.由于其是通过封装的block进行数据传输,这将极大的增加网络传输过程中端到端的传输时延(终端处理时延+终端侧等待时延+网络侧传输时延),所以如何在利用miss_deadline的前提下降低网络的端到端时延,降低传输的粒度,提高稳定性,获取最优的用户体验是一个挑战.

本比赛选择采用block的原因: DTP划分block主要是希望底层传输能够拥有优先级,miss_deadline,等信息,来优化传输.


如有任何问题,欢迎留言.

最新回复(0)