现代数据中心中智能网卡/DPU的演进

news2024/9/23 21:28:07

数据中心是一个大型的连接服务器和存储系统池,通常由组织用于远程存储、处理或分发大量数据。组织可以拥有和管理其数据中心,也可以租用由第三方(亚马逊或谷歌云等云服务提供商)管理的基础设施,并通过互联网访问资源。

这种由第三方拥有和管理大量计算/存储资源并由租户共享的部署模式称为公有云。如今,许多组织将一些基础设施托管在公共云中,因为它更容易扩展(扩展或缩小),并且维护成本更低。

云数据中心架构

三层架构

许多传统数据中心采用三层架构,包括核心路由器、汇聚路由器和接入交换机。核心路由器通常是具有非常高带宽和高级路由功能的大型模块化路由器。

聚合路由器是中端路由器,具有更高的上行链路速度。服务器连接到接入交换机(也称为 TOR 或架顶式交换机),如下所示。

当大部分流量是南北向时,三层架构运行良好 - 它从数据中心外部进入,经过聚合,访问切换到服务器,然后向北备份以离开数据中心。大多数数据包单向通过三个网络设备。

随着虚拟化程度的提高,单个服务器托管多个虚拟机或虚拟机,以及微服务的普及(在后面的章节中解释),服务器到服务器通信或东西向流量呈爆炸式增长。三层架构在东西向交通模式中表现不佳。它增加了太多的延迟,因为服务器到服务器的通信必须通过访问、聚合和/或核心设备两次,具体取决于目标服务器的位置。此外,由于接入交换机仅与一小组聚合交换机通信,因此任何交换机故障都会导致带宽显著降低。这种架构还消耗了更多的能量,因为数据必须通过许多网络设备跳跃。

两层或脊叶架构:

这也称为 CLOS 架构。在此体系结构中,只有两层(叶和书脊)。每个叶设备都连接到每个主干设备。由于任意连接,这些设备需要高端口密度。这种架构在所有现代云数据中心中都很受欢迎,因为密集的叶脊连接支持东西向流量模式。

主干通常与枝叶交换机有直接 (40Gbps - 400Gbps) 连接。叶交换机是此拓扑中的传统 TOR 交换机。它们有 20-50 个端口连接到机架中的服务器,以及几个上行链路 (40Gbps-400Gbps) 连接到所有主干设备。

此体系结构具有多个优点

  • 两台服务器之间的东西向流量最多有四个跃点 (host-leaf-spine-leaf-host)。这有助于降低整体延迟和功耗。
  • 由于移除了中间层,因此此拓扑中的网络设备(与 3 层相比)更少。
  • 可以独立添加叶和主干设备,以增加网络的容量。这有时称为“横向扩展”体系结构。

服务器内部

服务器是数据中心的动力源。它们有不同的形式 - 机架/刀片式或塔式服务器。无论外形尺寸如何,计算服务器都包含以下基本组件:

  • 母板:托管并连接服务器的所有组件
  • 中央处理器:中央处理器。通常是来自 Intel 或 AMD 的服务器级 CPU
  • 公羊:随机存取存储器。通常,DDR 内存封装在 DIMM 或记忆棒中并插入主板
  • 固态硬盘:存储设备
  • :网络接口卡 - 连接到外部网络。在云数据中心中,NIC 将服务器连接到具有 40-200Gbps 以太网端口的一个或多个叶交换机。网卡可以直接焊接在主板上,也可以作为可插拔卡连接在现有的PCIe插槽中。
  • 可选PCIe卡:用于图形和 ML 推理和训练。它们插入 PCIe 扩展插槽。

服务器虚拟化

为了更好地利用数据中心的 CPU 资源,公有云提供商采用多租户,即服务器中 CPU 的计算能力在多个系统、应用程序和/或企业用户(租户)之间共享。

尽管资源是共享的,但租户彼此之间并不了解,并且他们的数据由服务器软件完全分开。多租户对于云计算降低硬件成本至关重要;没有它,许多企业将无法负担云服务。

在多租户中,云服务提供商有责任确保来自每个租户的数据是安全的,计算资源在租户之间公平共享,并防止嘈杂的邻居效应(其中一个或多个客户端/应用程序可能会消耗大部分接口和计算带宽)。

主机服务器中的多租户通常通过服务器虚拟化来实现。服务器虚拟化是通过软件应用程序(如 VMware Vsphere Hypervisor)将物理服务器划分为多个唯一虚拟机(或虚拟机)的过程。每个 VM 都包含应用程序以及操作系统和内核。服务器虚拟化允许每个 VM 充当唯一的物理设备。此过程可提高服务器资源的利用率。

在过去的几年里,云提供商和企业已经转向了一种不同的共享服务器资源的方法 - 使用容器。容器是 VM 的轻量级替代方案 - 它们共享主机服务器的内核,但仅具有运行在该容器上加载的特定应用程序所需的资源。微服务是一种软件架构模型,其中应用程序被分解为许多具有明确定义的接口和操作的单功能模块(微服务)。微服务链接在一起以创建“可插拔”应用程序。在容器中运行微服务是使用现代数据中心计算资源的最有效方式。

VM 和容器化微服务不仅在主机之间,而且在主机内的 VM 和容器之间创建了增加的流量模式。所有这些主机间和主机内流量都需要交换/路由和保护,这会增加服务器 CPU 的负担。

书脊/叶子通讯

从历史上看(在虚拟化之前),服务器只有一个 MAC 和一个 IP 地址。通过服务器虚拟化,这已成为每个 VM 或容器至少一个 MAC 和一个 IP 地址。

如果 spine-leaf 交换机在第 2 层 (L2) 中转发流量,则每个交换机都需要学习网络中的每个 MAC 地址。这包括所有服务器上所有 VM 的 MAC 地址。典型的服务器中通常有 60-80 个 VM。每个机架大约有 ~40 个物理服务器,大约有 20 个机架,这意味着每个主干交换机中有 64K 个入口 MAC 表。

在 L2 转发中,当目标未获知或未知时,网络设备应将数据包淹没到连接到它的所有端口。这可能会导致循环和数据包风暴。为避免这种情况,生成树协议 (STP) 用于修剪 VLAN 网段中的网络拓扑并创建树。STP 的副作用是它减少了可用的链接数量,因为它会阻止冗余路径。

但是,如果骨干-叶通信位于第 3 层 (L3) 中,则主干交换机只需对每个子网(叶交换机和与之关联的服务器)使用 IP 转发,而不需要学习所有虚拟机的 MAC 地址。 如果叶到服务器通信位于第 2 层,则叶交换机只需了解其本地 VM 的 MAC 地址。此外,ECMP可用于通过主干/叶之间的多个并行链路(称为多路径)发送流量,从而更好地利用带宽和更好的弹性。

由于这些原因,L3 转发是主干交换机和叶交换机之间的常用选择。

云数据中心的另一个关键要求是能够将虚拟机从一台物理服务器移动到另一台物理服务器,而无需更改其 MAC 和 IP 地址。如果所有虚拟机都位于单个扁平以太网网络中,则可以进行此 MAC 移动。但是,这不是一个选项,因为它删除了 VM 之间的隔离。如果我们在主干/枝叶和主机之间进行 L2 转发,我们可以使用 VLAN 创建多个网段,并且特定网段内的虚拟机可以自由移动。但是,如果只有 4K VLAN,则基于 VLAN 的分段不能很好地扩展。此外,由于前面所述的其他原因,L2 转发不是首选。

这就是VXLAN发挥作用的地方。VXLAN 隧道协议将以太网帧封装在 IP/UDP 数据包中。它使我们能够创建跨物理 L3 网络的虚拟化 L2 子网。每个 L2 子网都由 24 位 VXLAN 网络标识符 (VNI) 唯一标识。执行 VXLAN Encap/Decap 的实体(如主机或网络设备中的虚拟机管理程序等软件应用程序)称为 VTEP(VXLAN 隧道端点)。VTEP 的服务器端位于 L2 桥接域中,VTEP 的网络端是 IP 网络。

VXLAN 标头中的 24 位 VNI 转换为 1600 万个 VNI 子网;这样就可以在 IP 底层网络之上构建大规模虚拟以太网覆盖网络。还有其他覆盖协议(如NVGRE)也实现了类似的结果,但VXLAN是一个受欢迎的选择。

安全

云平台需要为每个租户提供防火墙、IPsec-VPN、微分段、加解密等网络服务,以隔离和保护其流量免受安全威胁。在较旧的数据中心中,专门的中央设备正在执行这些功能。它造成了流量瓶颈,数据包必须多次遍历数据中心网络。

现代数据中心正在适应将安全和网络功能分布在更靠近工作负载的位置,以获得更好的性能和规模。通过分配这些功能并在软件(即虚拟设备)中实现它们,数据中心能够跨多个服务器利用计算资源,而无需中央机箱。

智能网卡的兴起

使用服务器虚拟化时,需要虚拟交换机 (Vswitch) 在 VM 之间交换数据包。传统上,这些交换机是作为服务器虚拟机管理程序中的软件实体实现的。

使用分布式服务模型时,还需要在虚拟机/容器之间的所有流量上运行网络和安全功能。这会给服务器 CPU 资源带来压力。CPU 最终可能会将 30% 的内核用于这些功能。理想情况下,我们希望使用 CPU(服务器中最昂贵的组件)的所有马力来单独运行应用程序软件,而不是处理任何网络、安全或存储功能。我们将这些基础结构函数称为。

这就是智能网卡的用武之地。NIC 是一种网络接口卡,它通过以太网接口接收来自网络的数据包并将其发送到服务器 CPU,反之亦然。NIC 通过 PCIe 接口连接到服务器 CPU。几十年前,他们的主要关注点是以线速将数据包传输到 CPU 或从 CPU 传输数据包。NIC 开始添加硬件加速(使用 ASIC 或 FPGA),以减轻服务器 CPU 的基本数据包处理功能。

很明显,通过从基础架构功能中卸载服务器可以节省大量成本,越来越多的这些功能开始进入 NIC。智能网卡一词是指使用自定义 ASIC/FPGA 或基于 SOC 的硬件加速将 CPU 从网络功能中显著卸载的网卡。

具有 x16 接口的 PCIe 插槽的功率预算约为 ~75 瓦。这限制了用于加速的硬件设备的功耗。尽管基于FPGA的解决方案具有更快的开发时间,但很难满足75W的功率要求。

在 SOC 中使用处理器内核执行所有加速/卸载的方法不会产生良好的性能,因为处理器内核无法以足够快的速度处理数据平面流量以跟上 >100Gbps 以太网流量。

许多供应商都提供具有数据平面处理器内核(用于难以在硬件中实现的复杂网络功能)和可编程硬件加速器以及传统数据包处理卸载的 ASIC 的混合解决方案。这些设备通常称为 DPU 或数据处理单元。DPU 还包含自己的控制/管理平面。

在某些配置中,DPU 可以作为叶交换机的一部分集成,也可以作为叶交换机和传统 NIC 之间的线路中的凸块进行集成。但最流行的配置是将 DPU 作为 NIC 的一部分集成到服务器综合体中。

数据处理单元(最智能的 NIC?

下图显示了 DPU 中的典型子系统和接口。

以太网接口:

通常,每个端口和至少两个端口的速率为 25Gbps 到 200Gbps(一些供应商开发 400Gbps)。在配对叶配置中,需要两个端口才能连接到两个叶交换机。每个以太网接口都连接到 MAC/PCS 子系统,以提取数据包并在第 2 层级别检查数据包完整性。

与主机的PCIe接口:

通常为 Gen3/4/5 接口。可能有多个PCIe接口。一些接口与 CPU 通信,而其他接口与 SSD/GPU 通信。CPU 的整体 PCIe 接口带宽应设计为处理来自以太网接口的完整流量,以在不拥塞的情况下到达 CPU。

SR-IOV 支持: 在具有许多 VM 的高度虚拟化服务器中,依靠虚拟机管理程序(虚拟交换机)提供与所有 VM 的连接会增加 CPU 的显著开销。SR-IOV 标准允许单个 NIC 在虚拟机监控程序软件中显示为多个虚拟 NIC(每个 VM 一个)。它允许不同的虚拟机共享单个 PCIe 接口,而无需虚拟机管理程序内部的虚拟交换机。PCIe 复合体支持 SR-IOV 支持所需的 PF/VF。

实现此功能的 DPU 在数据包处理引擎中的虚拟机 (Open vSwitch) 之间进行切换。

数据包转发(L2/L3交换和其他网络功能)

DPU 通常具有复杂的数据包转发管道,支持所有 L2/L3 转发功能。非常希望有一个可编程的数据平面。P4 是用于对转发平面进行编程的首选语言。它可用于定义可编程(使用处理器内核实现)和固定功能网络处理单元中的数据平面行为。

除了基本的 L2/L3 交换外,在卸载引擎和/或处理器内核的帮助下,数据包转发逻辑还可以支持多种功能。实际实施因供应商而异。

叠加支持: DPU 可以充当 VXLAN 隧道端点 (VTEP),以从服务器中的虚拟机管理程序中卸载此功能。它可以支持 VXLAN 和其他叠加协议的内联封装/解封装。此逻辑在数据包处理引擎中实现。

数据放置处理器内核:

这些内核可用于某些数据平面功能。映射在这些内核上的功能因供应商而异。可以映射的典型应用程序是 TCP 卸载/TLS、存储虚拟化/协议处理、下一代防火墙等。

基本 TCP 函数:

TCP 校验和卸载:TCP 标头具有校验和字段。DPU 可以计算校验和并向 CPU 标记错误

TCP 分段卸载:CPU 可以将大型数据块与标头模板一起发送到 DPU。DPU 对数据包进行分段,并将 Ethernet/IP 和 TCP 报头添加到每个分段。

TCP 大型接收卸载:DPU可以采集单个流的多个TCP报文,并发送给CPU,这样CPU就不必处理很多小报文了。

接收端缩放:DPU 可以通过对五元组进行哈希处理来确定数据包的流。属于不同流的数据包可以转到 CPU 中的不同内核。这减少了单个 CPU 线程上的负载。

流表

在基于流的转发中,DPU 中的主机 (CPU) 或控制平面处理器检查前几个数据包的数据包标头。之后,处理器在流表中安装流。然后,可以使用对 L2/IP 报头和外部封装报头进行哈希处理形成的流标识字段,通过流表查找处理同一流中的其余数据包。

这可以显著提高某些应用程序的性能,因为查找流表比对每个数据包进行全面检查和评估要快得多。流表由数百万个条目组成,并存储在外部存储器中。

安全功能

DPU 本身支持多种功能,以验证和保护不同应用程序之间的流量。

加密/解密:DPU 支持 VPN 终止,可以对加密的 VPN 流量进行 IPsec 的内联加密/解密和身份验证。

防火墙/ACL: 现代数据中心依赖于分布式防火墙。防火墙可以通过数据平面处理器内核或卸载引擎来加速。防火墙功能因 DPU 而异。通常,供应商提供静态数据包过滤、访问控制列表 (ACL) 和 NAT。

TLS 加密/解密: 传输层安全性 (TLS) 对应用层流量进行加密,以便黑客无法窃听/篡改敏感信息。它运行在 TCP 之上,最初用于加密 HTTP 会话 - Web 应用程序和服务器之间的流量。最近,许多其他通过 TCP 运行的应用程序开始使用 TLS 来实现端到端安全性,因为加密/解密的硬件成本并不高。TLS 也可以在 UDP 之上运行,这种称为 DTLS 的协议正在获得动力。

某些 DPU 提供代理 TCP/TLS 服务,用于终止 TCP 会话、解密 TLS 加密流量,并在将流量发送到主机处理器之前对其进行身份验证。TCP/TLS 卸载通常由专用硬件和处理器内核组合完成。

控制平面的处理器内核:

DPU 具有一组运行 Linux 的 ARM 内核,用于运行控制(包括 Open vSwitch 控制平面)和管理协议。软件/硬件应支持安全启动和服务根。

外部存储器和缓存

它用于查找表(IPSEC/TLS 的流表和安全关联表都可以有数千万个条目)、分析等。外部存储器可以是集成在 2.5D 封装或 GDDR5/6 中的 HBM。需要片上缓存,以使常用数据更接近逻辑。

片上横杆或网络:

提供与内存和缓存的连接,并保持缓存的一致性。

QoS/流量整形

NIC 接收托管在不同 VM/容器中的不同应用程序的流量,因此需要支持 QoS。DPU 支持多个队列和优先级,以及从这些队列进行调度的复杂调度算法。还支持流量整形,以减少传出流量的突发性。

DMA 引擎

DMA 引擎可以在 DPU 和主机内存之间启动内存传输。

存储功能

随着计算资源的分解,存储分解在数据中心也获得了很大的发展势头。许多云提供商正在将存储与计算分开,以降低基础设施成本,减少要支持的服务器配置数量,并能够为数据密集型 AI/ML 应用程序提供灵活的存储资源,这些应用程序需要比本地 SSD 容纳的存储空间多得多的存储空间。

存储服务器是一组存储设备(主要是 NVMe SSD),它们充当逻辑池,可以分配给网络上的任何服务器。存储服务器中的远程 SSD 和 CPU 之间的文件和块数据传输发生在承载数据包流量的同一脊叶网络上。

NVMe over Fabric 和 NVMe over TCP 是流行的协议,它们可以使用以太网和 TCP/IP 底层在数据中心网络上使用 NVMe 传输数据。DPU 通常通过实现硬件加速引擎来支持对远程存储服务器的访问,这些引擎可以启动这些协议来读/写到 SSD。

此外,DPU 还支持 RDMA over IP (RoCE) 卸载、数据压缩/解压缩(以减少通过网络传输到 SSD 设备的数据量)以及数据加密/解密以确保安全。

负载均衡器

负载均衡器将应用程序流量分布在多个 VM/容器(运行应用程序)之间,以支持多个并发用户。一个简单的例子:谷歌地图应用程序可能托管在谷歌数据中心的许多服务器上。在地图中查询两个位置之间的路径时,每个查询的路径可能会转到不同的服务器,具体取决于这些服务器上的负载。

负载均衡器对第 4 层(TCP/UDP 标头)和/或第 5-7 层(应用程序数据)中的字段进行哈希处理,以查找可用服务器的表并使用策略分配应用程序流量。实际的实现比这个高级描述要复杂得多。它是通过卸载引擎实现的。

DPU 的未来

所有云提供商都在大力投资定制 DPU 开发工作,并过渡到基于 DPU 的智能网卡,以显著降低基础设施成本并提供更好的吞吐量/性能。

这些 DPU 尚未在企业客户中广泛渗透。它们比标准 NIC 贵得多,并且对 NIC 软件进行编程涉及工程工作。对于公有云提供商来说,由于其数据中心的规模庞大,当在所有服务器上摊销时,工程工作量并不大。对于中小型企业客户来说,情况并非如此。将卸载到 DPU 的功能和完全可编程的数据平面架构(使用标准 P4)更加标准化有助于简化开发工作。

随着云软件和 DPU 硬件团队之间更紧密的交互(硬件和软件的共同设计),有可能发现更多可以从卸载到 DPU 中受益的功能。

DPU 有可能完全分解云资源,并将 CPU/GPU/GPU 降级为连接到它们的主力。

网卡推荐

ADOP的网卡是专为高速数据中心网络设计的网络接口卡,它使用光纤作为传输介质,能够实现高速数据传输。以下是ADOP网卡的一些关键特点和优势:

高速数据传输

ADOP网卡支持多种传输速率,包括1Gbps、10Gbps、40Gbps等,以满足不同数据中心的需求。对于需要处理大量数据的服务器,ADOP提供的高速率网卡是理想选择。

多种总线接口类型

ADOP网卡兼容多种总线接口类型,包括PCI、PCI-X、PCI-E (x1/x4/x8/x16)等,确保与各种计算机或服务器的兼容性。

多样化的光纤连接器类型

ADOP网卡通常使用LC、SC或ST等类型的连接器,以适应不同的网络设备和传输距离需求。

单模与多模光纤支持

根据网络布局的不同,ADOP网卡支持单模光纤和多模光纤。单模光纤适用于长距离传输,而多模光纤适用于短距离传输。

端口数量的灵活性

ADOP网卡提供多个端口选项,支持网络冗余和多网络连接,增强网络的可靠性和灵活性。

兼容主流网络标准

ADOP网卡支持包括IEEE 802.3ae(10G Ethernet)在内的多种以太网标准,确保与现有网络设备的兼容性。

操作系统兼容性

ADOP网卡支持主流操作系统,提供驱动程序的可用性和稳定性,以确保网卡的正常工作。

低功耗和良好的散热设计

对于服务器环境,ADOP网卡的低功耗和良好散热设计可以减少能耗并延长设备寿命。

安全性和高级功能

一些高端ADOP网卡提供额外的安全性和网络管理功能,如硬件加密、流量分析等,以满足企业网络的高级需求。

 ADOP网卡在AI算力中扮演着至关重要的角色,特别是在AI超算和数据中心中,光纤网卡通过光模块和光缆提供的高速、高带宽连接方式,可以有效地减少I/O延迟,提高数据传输的稳定性和可靠性。
如果您需要更详细的产品信息或技术支持,建议直接联系ADOP公司获取最新的产品规格和技术支持。这样可以确保您获得最准确的信息,以满足您的具体需求。

ADOP - 前沿光学科技有限公司

前沿驱动创新,光学创造未来,ADOP与您精彩前行!🚀

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringBoot】配置swagger

pom.xml 安装插件 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>创建swagger配置类 import org.springframework.context.annotation.…

大数据迁移工具开发思路

数据存储MySQL中&#xff0c;迁移到hive中&#xff0c;建立数据仓库&#xff0c;为后期的大数据分析、主题订阅、消息分发提供海量数据支持。 涉及到的服务及中间件版本如下&#xff1a; 1、MySQL&#xff0c;版本&#xff1a;8.0.19 2、Hive&#xff0c;版本&#xff1a;3.0.0…

系统架构最佳实践 -- 统一身份认证系统

目录 1.系统架构设计&#xff1a; 2.用户认证与授权&#xff1a; 3.用户身份管理&#xff1a; 4.安全性保障&#xff1a; 5.日志记录与审计&#xff1a; 6.高可用性与容错性&#xff1a; 7.用户体验优化&#xff1a; 随着互联网的快速发展和应用的普及&#xff0c;人们在…

P1712 [NOI2016] 区间(线段树 + 贪心 + 双指针)

题目描述 在数轴上有 n 个闭区间从 1 至 n 编号&#xff0c;第 i 个闭区间为 [li​,ri​] 。 现在要从中选出 m 个区间&#xff0c;使得这 m 个区间共同包含至少一个位置。换句话说&#xff0c;就是使得存在一个 x &#xff0c;使得对于每一个被选中的区间 [li​,ri​]&#…

传奇引擎M2小火炬HGE绘图完整

传奇小火炉HGE绘图完整 参考资料;传奇小火炉HGE绘图完整_98999NET源码资源网

怎样用现货黄金行情软件看走势图?

不管大家用哪一款行情软件来看盘&#xff0c;都离不开K线这种记录市场走势语言。它的中文名称是蜡烛图&#xff0c;由金价每个分析周期的开盘价、最高价、最低价和收盘价绘制而成。以绘制日K线为例&#xff0c;投资者首先要确定开盘和收盘的价格&#xff0c;把它们之间的部分画…

突破编程_前端_SVG(ellipse 椭圆形)

1 ellipse 元素的基本属性和用法 ellipse 元素用于创建椭圆形状。它具有一系列的基本属性&#xff0c;允许自定义椭圆的外观和位置。以下是一些 ellipse 元素的基本属性和用法&#xff1a; &#xff08;1&#xff09;基本属性 cx 和 cy&#xff1a;这两个属性定义了椭圆中心…

【详细介绍下火绒安全】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

2011年认证杯SPSSPRO杯数学建模B题(第二阶段)生物多样性的评估全过程文档及程序

2011年认证杯SPSSPRO杯数学建模 B题 生物多样性的评估 原题再现&#xff1a; 2010 年是联合国大会确定的国际生物多样性年。保护地球上的生物多样性已经越来越被人类社会所关注&#xff0c;相关的大规模科研和考察计划也层出不穷。为了更好地建立国际交流与专家间的合作&…

pyinstaller工具打包python项目详细教程

使用 Pyinstaller工具 编译打包 Python 项目生成 exe 可执行文件 1.pyinstaller介绍&#xff1a; 介绍&#xff1a;PyInstaller 是一个将 Python 程序转换为独立可执行文件的工具。它能够在 Windows、Linux、Mac OS X、AIX 和 Solaris 等多种系统上运行。详细介绍可参考pyins…

CCF区块链论文录用资讯--ICDE 2024

ICDE是CCF A类会议 (数据库&#xff0f;数据挖掘&#xff0f;内容检索) 其2024录用了8篇区块链论文 Database technology for Blockchains I Efficient Partial Order Based Transaction Processing for Permissioned Blockchains &#xff08;针对许可区块链的高效的基于偏序…

动态规划|63.不同路径II

力扣题目链接 class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m obstacleGrid.size();int n obstacleGrid[0].size();if (obstacleGrid[m - 1][n -1] 1 || obstacleGrid[0][0] 1) return 0;vector<ve…

永久关闭 Windows 11 系统更新

永久关闭 Windows 11 系统更新 请注意&#xff0c;关闭系统更新可能会使您的系统面临安全风险。确保您了解可能的后果&#xff0c;并在必要时考虑重新启用更新。 使用组策略编辑器&#xff08;仅限 Windows 11 Pro 和 Enterprise 版&#xff09; 步骤 1&#xff1a;打开本地…

Android Surface的跨进程绘制,如何绘制xml布局给Surface,全网独一份

工作中遇到了这样一个需求 需求&#xff1a;需要将一个自定义View或者自定义布局通过跨进程方式传递给第二个应用来展示&#xff0c;第一个应用负责布局的渲染&#xff0c;第二个应用不需要关心第一个应用的业务和实现&#xff0c;仅提供SurfaceView占位及展示 方案&#xff…

嵌入式学习day16-22(2024.04.06-13)

文章目录 C语言网络编程socket主机与网络字节序转换inet_addr、inet_aton&#xff08;ip转换&#xff09;inet_ntoa 网络字节序转换为IP字符串端口转换为网络字节序网络字节序转换为端口atoi &#xff08;字符串转换为整数&#xff09; UDP通信流程UDP多进程并发服务器服务端客…

【已测 非网上加密版】全新UI彩虹站长在线工具箱系统源码下载 全开源版本

支持高达72种站长工具、开发工具、娱乐工具等功能。本地调用API、自带免费API接口&#xff0c;是一个多功能性工具程序支持后台管理、上传插件、添加增减删功能。 环境要求 * PHP > 7.3 * MySQL > 5.6 * fileinfo扩展 * 使用Redis缓存需安装Redis扩展 部署 * 下载源代码 …

【嵌入式】交叉编译指南:将开源软件带到嵌入式世界

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

Java反序列化Commons-Collections-CC1链

环境搭建 JDK8u71以下&#xff0c;这个漏洞已经被修复了&#xff0c;这个JDK的以上版本都修复了漏洞 JDK8u65 下载地址 https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html这个时候来到 pom.xml 配置Maven依赖下载CommonsCollections3.2.…

20V/1.5A替代LT1963低压差线性稳压器

概述(替代LT1963) PCD3941 是一款低压差稳压器&#xff0c;专为快速瞬态响应而优化。该装置能够提供 1.5A 的输出电流&#xff0c;典型压降为 160mV。工作静态电流为 1mA&#xff0c;关机时降至 1μA以下&#xff0c;同时压差模式下静态电流控制良好。除了快速瞬态响应外&…