Dragonfly 拓扑的路由算法

DragonFly组网方案:拓扑与业务解耦的落地复盘 网络拓扑的结构化设计决定了系统的性能、可靠性与运维成本。传统组网中,拓扑一旦固定,业务扩展和链路切换都面临高风险的割接。通过将物理连接与业务转发路径解耦,引入编排层、控制层与数据层三层抽象,可以让拓扑随业务需求动态调整。SD-WAN场景中,集中转发与本地转发的选择需结合合规要求、应用类型与中心设备能力,混合策略往往能兼顾安全性与访问体验。拓扑切换则依赖SLA阈值设计、BFD毫秒级检测和灰度回滚预案,实现业务无感迁移。拓扑图自动发现与状态可视化,进一步缩短排障路径。DragonFly方案正是以技术驱动的方式, 阅读详情
AI摘要

文章详细介绍了Dragonfly拓扑的最小和非最小路由算法,以及UGAL路由策略。评估结果显示最小路由在负载平衡方面表现良好,但对对抗性流量模式不利。非最小路由通过随机选择中间组进行负载均衡,但存在吞吐量限制和较高的中间延迟。后续的UGAL算法优化解决了部分问题,但仍需考虑全局拥塞感知和信用往返延迟来降低延迟。

Dragonfly 拓扑的路由算法

John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而文章中也提到了 针对 Dragonfly 拓扑的路由算法。本文对其中提到的路由算法进行汇总归纳。主要是讨论蜻蜓拓扑的最小和非最小路由算法。

1. Dragonfly 上的路由

图 7 显示了如何使用虚拟通道 (VC) 来避免路由死锁。为了防止路由死锁,最小路由需要两个VC,非最小路由需要三个VC。此分配消除了由于路由而产生的所有通道依赖性。对于某些应用程序,可能需要额外的虚拟通道来避免协议死锁 - 例如,对于共享内存系统,请求和回复消息需要单独的虚拟通道集。

在这里插入图片描述

(1)最小路由

Dragonfly 中位于组Gs中的路由器Rs,连接着源节点s,到组Gd中的路由器Rd的目标节点d的最小路由经过单个全局通道,由三步组成:

  • 步骤 1:如果 Gs != Gd,并且 Rs 没有到 Gd 的连接,在 Gs 内从 Rs 路由到 Ra,Ra 路由器具有到 Gd 的全局通道。
  • 步骤 2:如果 Gs != Gd,则从 Ra 经过全局信道到达 Gd 中的路由器 Rb。
  • 步骤 3:如果 Rb != Rd,则在 Gd 内从 Rb 到 Rd 路由。

这种最小路由非常适合负载平衡流量(load-balanced traffic),但会导致对抗性流量模式的性能非常差。

(2)非最小路由

为了对对抗性流量模式进行负载平衡,Valiant 的算法可以应用于系统级别 - 首先将每个数据包路由到随机选择的中间组 Gi,然后路由到其最终目的地 d。将 Valiant 的算法应用于组足以平衡全局和本地通道上的负载。这种随机非最小路由最多遍历两个全局通道,需要五个步骤:

  • 步骤 1:如果 Gs != Gi 并且 Rs 没有到 Gi 的连接,则在 Gs 内从 Rs 路由到 Ra,一个具有到 Gi 的全局通道的路由器。
  • 步骤 2:如果 Gs != Gi 从 Ra 经过全局信道到达 Gi 中的路由器 Rx。
  • 步骤 3:如果 Gi != Gd 并且 Rx 没有到 Gd 的连接,则在 Gi 内从 Rx 路由到 Ry(具有到Gd 的全局通道的路由器)。
  • 步骤 4:如果 Gi != Gd,则遍历从 Ry 到 Gd 中的路由器 Rb 的全局通道。
  • 步骤 5:如果 Rb != Rd,则在 Gd 内从 Rb 到 Rd 路由。

2. 评估

实验评估最小路由算法 (MIN),Valiant (VAL)路由,UGAL 通用全局自适应负载平衡(UGAL-G,UGAL-L)。UGAL逐个数据包在 MIN 和 VAL 之间进行选择以平衡网络负载。通过使用队列长度和跳数来估计网络延迟并选择延迟最小的路径来做出选择。实验实现了两个版本的 UGAL:

  • UGAL-L —— 使用当前路由器节点的本地队列信息。
  • UGAL-G —— 使用 Gs 中所有全局通道的队列信息(原文中是使用 Gs 中所有全局通道的队列信息,但应该是具有全局信息)。假设了解其他路由器上的队列长度。虽然难以实现,但这代表了 UGAL 的理想实现,因为负载平衡需要全局通道,而不是本地通道。

理想的 UGAL 路由称为 UGAL-G(具有全局信息的 UGAL),假设精确的全局网络状态信息可用,并使用路径上所有链路上的总队列长度来估计路径上最小的数据包延迟。令 T Q M I N TQ_{MIN} TQMIN​ 为 M I N MIN MIN 路径的总队列长度, T Q V L B TQ_{VLB} TQVLB​ 为 V L B VLB VLB 路径的总队列长度。若

T Q M I N ≤ T Q V L B + T TQ_{MIN} \leq TQ_{VLB} + T TQMIN​≤TQVLB​+T

否则为 VLB 路径。这里的 T 是一个偏移常数,可以调整它来决定路径选择将在多大程度上偏向 MIN 路径(T 的较大值优先考虑 MIN 路径)。

使用良性和对抗性合成流量模式来评估不同的路由算法。对于均匀随机 (UR) 等良性流量,MIN 足以提供低延迟和高吞吐量,如图 8(a)。 VAL 实现了大约一半的网络容量,因为它的负载均衡使全局通道上的负载加倍。UGAL-G 和 UGAL-L 都接近 MIN 的吞吐量,但在接近饱和时延迟稍高。较高的延迟是由使用并行或贪婪分配引起的,其中每个端口的路由决策是并行做出的。使用顺序分配将减少延迟,但代价是分配器更复杂。

为了测试路由算法的负载平衡能力,使用最坏情况 (WC) 流量模式,其中组 Gi 中的每个节点将流量发送到组 Gi+1 中随机选择的节点。通过最小路由,此模式将导致每个组 Gi 中的所有节点通过单个全局通道将其所有流量发送到组 Gi+1,需要非最小路由通过将大部分流量分散到其他全局通道来平衡此流量模式的负载。此 WC 流量的评估如图 8(b) 所示。由于 MIN 通过单个通道转发来自每个组的所有流量,因此其吞吐量限制为 1/ah。VAL 实现略低于 50% 的吞吐量,这是该流量的最大可能吞吐量。UGAL-G 实现了与 VAL 相似的吞吐量,但 UGAL-L 导致吞吐量有限,并且在中间负载时平均数据包延迟较高。
在这里插入图片描述

3. 存在问题

蜻蜓上的自适应路由具有挑战性,因为需要平衡的是全局通道、组输出,而不是路由器输出。这会导致间接路由问题(indirect adaptive routing)。以前的全局自适应路由方法使用本地队列信息、源队列和输出队列来生成网络拥塞的准确估计,本地队列是全局拥塞的准确代表,因为直接指示它们发起的路线上的拥塞。然而在蜻蜓拓扑中,本地队列只能通过本地通道上的反压来感知全局通道上的拥塞,并不准确。之前提到在WC流量模式下 UGAL-L 导致吞吐量有限,并且在中间负载时平均数据包延迟较高就是这个原因。

(1)吞吐量限制

UGAL-L 的吞吐量问题是由于单个本地通道同时处理最小和非最小流量造成的。例如在图 13 中,R1 中的数据包具有使用 gc7 的最小路径和使用 gc6 的非最小路径。这两条路径共享从 R1 到 R2 的相同本地通道。由于两条路径共享相同的本地队列(因此​​具有相同的队列占用率),并且最小路径较短(一跳与两跳),因此即使在饱和时,也始终会选择最小通道。这导致最小全局通道过载,并且与最小通道共享同一路由器的非最小全局通道未得到充分利用。

在这里插入图片描述

如图9所示。第一个全局通道是最小全局通道,接下来的三个全局通道是与最小通道共享同一路由器的非最小通道(h = 4),其余通道是共享同一组的非最小通道。对于 UGAL-G,最小通道是首选,并且负载在所有其他全局通道之间均匀平衡。另一方面,对于 UGAL-L,路由器上包含最小全局信道的非最小信道未得到充分利用,从而导致网络吞吐量下降。为了克服这个限制,我们修改了 UGAL 算法,通过使用单独的 VC (UGAL-LVC) 将队列占用率分成最小和非最小分量。

在这里插入图片描述

在这里插入图片描述

这种修改对于大部分流量需要非最小化发送的 WC 流量,UGALLVC 表现良好,因为最小队列负载很重。然而,对于负载平衡流量来说,当大多数流量应以最低限度发送时,各个 VC 无法提供通道拥塞的准确表示,从而导致吞吐量下降。为了克服这个限制,我们进一步修改 UGAL 算法,仅当最小和非最小路径以相同的输出端口开始时,将队列占用分为最小和非最小分量。我们的混合修改 UGAL 路由算法 (UGAL-LVC H ) 是
在这里插入图片描述

与 UGAL-LVC 相比,UGAL-LVC H 在 WC 流量模式上提供相同的吞吐量,在 UR 流量上与 UGAL-G 的吞吐量匹配,但在提供的 0.8 负载(接近饱和)下导致延迟高出近 2 倍。对于 WC 流量,与 UGAL-G 相比,UGAL-LVC H 还会导致更高的中间延迟(图 10(b))。
在这里插入图片描述

(2)较高的中间延迟

UGAL-L 的较高中间延迟是由于在检测到拥塞之前最小路由数据包必须填充源和拥塞点之间的通道缓冲区。如图13所示在此示例中,q1 反映 q0 的状态,q2 反映 q3 的状态。当 q0 或 q3 已满时,流量控制向 q1 和 q2 提供背压,如图 13 中的箭头所示。因此,在稳定状态下-状态测量,这些本地队列信息可以用来精确测量吞吐量。由于吞吐量被定义为当延迟达到无穷大(或队列占用率达到无穷大)时提供的负载,因此这个本地队列信息就足够了。然而,q0 需要完全满,以便 q1 反映 gc0 的拥塞情况并允许 R1 非最小路由数据包。因此,使用本地信息需要牺牲一些数据包来正确确定拥塞情况,从而导致以最低限度发送的数据包具有更高的延迟。随着负载的增加,尽管最小路由数据包的延迟持续增加,但更多数据包以非最小路由方式发送,导致平均延迟减少直至饱和。**为了使本地队列能够对全局拥塞提供良好的估计,全局队列需要完全满,并向本地队列提供严格的背压。反压的刚度与缓冲区的深度成反比——缓冲区越深,反压传播所需的时间就越长,而缓冲区越浅,提供的反压就越硬。**缓冲区大小变化时的仿真结果如图 14 所示。

为了克服高中间延迟,建议使用信用往返延迟来更快地感知拥塞并减少延迟。 tcrt的值可以用来估计全局信道的拥塞情况。通过使用此信息来延迟上游信用,我们加强了背压并更快地向上游传播拥塞信息。对于每个输出 O,测量 tcrt(O),并将数量 td(O)=tcrt(O) − tcrt0 存储在寄存器中。然后,当一个 flit 被发送到输出 O 时,不是立即将信用值发送回上游,而是将信用值延迟 td(O) − min[td(o)]。通过全球渠道发送的积分不会延迟。这保证了该机制中不存在循环,并允许全局通道得到充分利用。返回积分的延迟提供了较浅缓冲区的出现,从而产生了硬的背压。
在这里插入图片描述

references

[1] J. Kim, W. J. Dally, S. Scott, and D. Abts, “Technology-Driven, Highly-Scalable Dragonfly Topology,” in 2008 International Symposium on Computer Architecture, Beijing, China: IEEE, Jun. 2008, pp. 77–88. doi: 10.1109/ISCA.2008.19.

告别传统胖树:用Dragonfly拓扑构建下一代超算网络,实战参数配置指南 本文深入探讨了Dragonfly拓扑在超算网络中的应用优势,通过虚拟路由器技术和全局直径优化机制,显著降低建设成本并提升性能。文章提供了详细的参数配置指南和实战案例,帮助读者快速掌握这一革命性网络架构,适用于大规模AI训练和科学计算场景。 阅读详情

相关推荐

实战避坑:在Dragonfly拓扑中实现UGAL自适应路由时,为什么我的本地队列信息不准?

本文深入分析了Dragonfly拓扑中UGAL-L自适应路由的本地队列信息失真问题,揭示了共享本地通道、缓冲区深度与反压刚度矛盾、信用往返延迟误差三大根源,并提出了UGAL-LVC虚拟通道隔离、动态缓冲区管理等优化方案,帮助提升网络性能与稳定性。

weixin_30781775的博客 363

从零理解Dragonfly网络:最小路由与非最小路由到底怎么选?

本文深入解析Dragonfly网络中的最小路由与非最小路由算法,帮助读者理解其核心区别与适用场景。Dragonfly拓扑作为高性能计算网络的关键架构,其路由选择直接影响网络性能。文章详细比较了最小路由的低延迟优势和非最小路由的负载均衡特性,并提供了UGAL自适应算法的实战应用指南,助力优化超算中心和数据中心的网络架构。

weixin_30800987的博客 383

告别拥塞:手把手优化Dragonfly网络性能,UGAL-LVC_H算法详解与配置

本文深入解析Dragonfly拓扑网络中的UGAL-LVC_H算法,提供详细的性能优化方案。通过虚拟通道分离和混合决策机制,有效解决吞吐量瓶颈和延迟抖动问题,适用于超大规模计算环境。文章包含实战调优指南和高级技巧,帮助提升网络性能。

weixin_30530339的博客 307

【Interconnection Networks 互连网络】Dragonfly Topology 蜻蜓网络拓扑

Dragonfly 蜻蜓拓扑具有三层的分层网络,从小到大分别是路由器(router),组(group)和网络系统。

Messiah___的博客 3312

从零到一:Dragonfly拓扑路由算法实战解析与性能调优指南

本文深入解析Dragonfly拓扑路由算法,从基础原理到实战调优,涵盖MIN、VAL和UGAL等核心算法对比,以及UGAL-LVC_H混合方案等高级优化技巧。针对高性能计算集群的网络瓶颈问题,提供详细的性能调优指南和部署建议,帮助工程师解决吞吐量受限和延迟波动等挑战。

weixin_30791095的博客 402

从零到一:Dragonfly拓扑路由算法深度剖析与实战避坑指南

本文深度剖析Dragonfly拓扑路由算法,包括MIN、VAL和UGAL三大核心算法的性能特点与实战应用。通过真实场景测试数据,揭示路由选择对超算中心与大型数据中心网络性能的关键影响,并提供调优指南与避坑策略,帮助开发者最大化Dragonfly拓扑的通信效率。

weixin_30580341的博客 451

超算网络常见组网拓扑

高性能计算场景的流量关注静态时延的同时需要支持超大规模组网。然而传统的CLOS架构作为主流网络架构,主要关注通用性,牺牲了时延和性价比。业界针对该问题开展了多样的架构研究和新拓扑的设计,Fat-Tree、Dragonfly、Torus是几种常见的网络拓扑,Fat-Tree架构实现无阻塞转发,Dragonfly架构网络直径小,Torus具有较高的扩展性和性价比。Fat-Tree胖树架构传统的树...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 3042

告别网络拥堵:手把手教你用UGAL算法优化Dragonfly拓扑性能(附避坑指南)

本文详细介绍了如何利用UGAL算法优化Dragonfly拓扑性能,解决网络拥堵问题。通过解析Dragonfly拓扑的架构特点和UGAL算法的工作原理,提供实战配置指南和关键参数调优策略,帮助在高性能计算环境中实现动态负载均衡,提升网络传输效率。

weixin_30443747的博客 446

从零到一:Dragonfly拓扑路由算法实战解析

本文深入解析Dragonfly拓扑路由算法在高性能计算和数据中心网络中的应用。从基础原理到高级自适应策略(如UGAL系列算法),详细探讨了如何优化路由选择以平衡延迟与吞吐量。通过实际案例展示不同场景下的部署经验,为网络工程师提供从理论到实践的全面指导。

weixin_28683391的博客 404

告别网络拥堵:手把手教你为Dragonfly拓扑配置UGAL自适应路由算法

本文详细解析了Dragonfly拓扑中UGAL自适应路由算法的配置与优化方法,帮助解决高性能计算网络中的拥塞问题。通过对比最小路由和非最小路由的优缺点,深入探讨UGAL算法家族及其变体的适用场景,提供实战配置指南和性能监控策略,助力工程师优化网络性能。

weixin_30216561的博客 358

057、InfiniBand网络拓扑:Fat-Tree与Dragonfly

本文剖析InfiniBand网络拓扑中Fat-Tree与Dragonfly的实战差异。Fat-Tree适合千节点内全对称通信,但需规避路由僵化与链路聚合不均;Dragonfly适用于超大规模集群,凭借低跳数和局部性优势提升性能,却面临组间拥塞与死锁风险。作者强调:拓扑选择应基于应用特征、规模与运维能力,关键在于自适应路由、虚拟通道配置及带宽预留。最终结论:无完美拓扑,唯有适配之选。

Jack010169的博客 22

Dragonfly拓扑中自适应路由的挑战与优化

本文深入探讨了Dragonfly拓扑中自适应路由的挑战与优化策略,重点分析了UGAL自适应路由算法在全局拥塞感知、吞吐量瓶颈和延迟放大效应等方面的问题。通过虚拟通道分离和信用延迟反馈等优化方案,显著提升了网络性能,为大规模网络部署提供了实用参考。

weixin_30791095的博客 802

11.3 海岛微电网与工业园区的构网应用

海岛微电网与工业园区配电网是构网技术下沉应用的两大典型场景。海岛微电网以构网型储能为核心,解决孤岛系统稳定性问题,需具备黑启动、多能源协调和故障穿越能力;工业园区则侧重电能质量治理、并离网无缝切换和经济优化运行。两类场景均需解决多机并联稳定性、故障特性适配和分层协同控制等关键技术。构网型变流器的电压源构建能力、自适应控制策略及飞轮储能等特殊应用,为构建高可靠性、高经济性的分布式能源系统提供了创新解决方案。

技术工作者 1086

TERA算法:全互连网络中的高效路由技术解析

在现代高性能计算(HPC)领域,网络拓扑结构和路由算法的效率直接影响系统性能。全互连网络(Full-mesh)因其低网络直径和高连通性成为理想选择,但传统路由算法面临死锁和虚拟通道管理的挑战。TERA(Topology-Embedded Routing Algorithm)通过物理服务拓扑嵌入技术,实现了无死锁的非最小路由,显著减少缓冲区需求并提升性能。TERA特别适用于HyperX和Dragonfly等拓扑结构,在高基数网络中表现出色。其核心思想包括链路分类、路由规则设计和拓扑映射,通过优化链路排序和缓冲

weixin_30536861的博客 342

Oracle OCP 19c 认证1Z0-083考试大纲(Oracle官方版)

Oracle Database: Managing Multitenant Architecture Ed 1 course

#真题在线# 1588

Android Studio中把llama.cpp编译Android .so

本文介绍了一个在Android Studio中集成llama.cpp的最小Demo实现方案,通过JNI将llama.cpp编译为Android.so库,实现本地加载GGUF模型进行文本生成。文章详细说明了项目结构配置(SDK≥30,NDK≥28)、CMake编译设置、Kotlin-JNI-C++的完整调用链实现,以及模型文件部署方式。该Demo采用每次请求新建上下文的简化设计,包含加载模型、生成文本、资源释放等核心功能,并提供了错误排查建议。项目舍弃了上下文保持等复杂功能以确保稳定性,适合作为端侧大语言模型

Zhang Phil 519

超算中心典型网络组网拓扑分析

超算网络常见组网拓扑分析

2618

HTPA 32x32d热成像传感器实战指南:从替代MLX90640到精准测温

本文为HTPA 32x32d热成像传感器提供了从硬件连接到精准测温的完整实战指南。针对MLX90640替代需求,详细解析了HTPA传感器的核心优势、IIC通信要点、EEPROM校准数据读取与解析、独特的块数据读取模式,并逐步拆解了五大温度补偿计算流程,旨在帮助开发者克服高开发门槛,实现稳定可靠的非接触式测温应用。

weixin_29279101的博客 314

实战避坑:在Omni-Path或Slingshot网络中配置Dragonfly路由算法

本文深入探讨了在Intel Omni-Path和HPE Slingshot网络中配置Dragonfly路由算法的实战经验。通过分析Dragonfly拓扑结构及其路由算法(如MIN、VAL和UGAL),提供了详细的配置指南和性能优化技巧,帮助工程师避开常见陷阱,实现高性能网络部署。

weixin_30660027的博客 302

deepseek本地部署及应用部署指南

如果你找到的日志是[send] via NET/IB/0,则表示网络通信是通过IB网络的,但是没有开启GDRDMA技术,则会有大致5%的性能损耗(网传,未实测)。新增的环境变量配置,主要用于启用IB网络通信,而非使用以太网进行通信,详细的每一个参数的具体含义,可以在英伟达NCCL的官方网站上找到说明。下一步,我会对已经完成部署的模型进行压测,来探索系统的性能极限在哪里,以及如何在生产环境中何如进行进一步的性能优化,期待你的关注。

weixin_39797121的博客 2624

vxWorks下dosFs文件系统的创建

文件系统,是指操作系统根据目录和文件的组织形式在磁盘设备上应用的一种设备驱动,不同的文件系统对目录和文件有不同的限制(如目录名限制,文件大小限制等)。VxWorks支持多种文件系统,比较重要的有:1、dosFs:适用于块存取设备(比如硬盘、软盘),和MS-DOS文件系统兼容;2、rawFs:提供了一种简单的原始文件系统。该文件系统将整个硬盘当作一个单独的大文件;3、cdromFs:允许系统从按照I

技术联盟 1万+

从对抗性流量到负载均衡:手把手解析Dragonfly拓扑中UGAL路由算法的实战配置与调优

本文深入解析Dragonfly拓扑中UGAL路由算法的实战配置与调优,针对对抗性流量导致的网络性能问题,详细探讨了UGAL-G与UGAL-L的核心差异、虚拟通道配置、偏移常数T的动态调整策略以及缓冲区与信用延迟机制的协同优化。通过实际案例和配置示例,帮助网络架构师在高性能计算集群中实现负载均衡和性能提升。

weixin_30781775的博客 377

ABB机器人刷功能选项全一篇就够——不怕丢失程序和IO配置数据

ABB机器人刷功能选项

m0_66701835的博客 1260

完全互连网络(CIN)与LACIN设计原理及应用

完全互连网络(CIN)是一种高性能网络拓扑结构,其核心在于每个节点直接相连,实现最低通信延迟和最大带宽。这种结构特别适用于超算和数据中心等高性能计算场景,能够满足极端通信需求。LACIN(Linearly Arranged Complete Interconnection Networks)在CIN基础上引入了同端口索引连接机制和线性排列设计,显著简化了布线和路由优化。通过端口配对矩阵和极简路由算法,LACIN实现了硬件逻辑电路的高效路由,避免了传统查表路由的延迟问题。在实际应用中,LACIN不仅降低了布线

weixin_32247165的博客 260

数据库常见面试题(附答案)

1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前,其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的 2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看...

csdn问鼎 46万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

什么是Dragonfly自适应路由

Dragonfly自适应路由是一种根据网络拓扑和流量负载变化,进行动态路由决策的技术。通过主动感知链路拥塞状态,优选路径短、不拥塞的报文转发路径,达到提升网络吞吐和韧性、降低网络延迟的效果。当前Dragonfly自适应路由与直连拓扑网络配合应用于大型超算中心。

RZer的博客 1021

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 互连网络的负载平衡路由算法 (UGAL, Universal Globally Adaptive Load-Balancing 通用全局自适应负载平衡)
下一篇: 【Latex】Latex 简介和安装
正在輸入......
博客等级 码龄7年 637粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在輸入......

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值