小步最短路径算法的经济价值

举报
嘟嘟瑞 发表于 2024/07/12 12:34:05 2024/07/12
【摘要】 使用小步最短路径算法,可用一个比特来标记一个节点是否确定最短路径,相比于用64比特存储路径值,其可节约63比特的空间。 这对于数亿节点的网络来说,在电能、服务器资源和算法效率等方面都是非常有价值的。 比如对于1000亿节点的网络,Dijkstra最短路径算法需要640GB来存储路径值,而小步最短路径算法只需要11GB。

路径值存储分析

社交网络Facebook拥有约28亿活跃用户(2022),是目前世界上最大的社交网络。对于Dijkstra最短路径算法,若是用8字节存储节点路径长度,需要20.88 GB;对于小步最短路径算法,用1比特标记节点是否获取最短路径,需要0.326 GB

互联网是世界上最大的网络之一。根据2022年的数据,联网上约有63亿个独立主机(即连接到互联网的设备)。对于Dijkstra最短路径算法,若是用8字节存储节点路径长度,需要46.9 GB;对于小步最短路径算法,用1比特标记节点是否获取最短路径,需要0.733 GB

神经网络:人脑是一个巨大的神经网络,据估计有860-1000亿个神经元。对于Dijkstra最短路径算法,若是用8字节存储节点路径长度,需要640.37 GB - 744.83 GB;;对于小步最短路径算法,用1比特标记节点是否获取最短路径,需要10 GB – 11.6 GB

索引网页数量:根据最新的数据,目前主要搜索引擎(如谷歌、必应等)索引的网页数量大约在 600 - 800 亿页之间。实际网页数量由于存在许多未被索引的网页,实际的全球网页数量要远高于索引数量。一般估计实际网页数量在 1 - 5 万亿页左右。需要注意的是,这只是一个粗略的估计,因为网页数量是一个不断变化的动态指标。随着互联网的快速发展,新的网页不断被创建和发布,网页总数也在持续增加。

 

1小型服务器和工作站:内存容量通常在 4GB 128GB 之间,适用于中小型企业和个人工作站。2中型服务器:内存容量通常在 128GB 512GB 之间,适用于中大型企业的关键应用服务。3大型服务器:内存容量通常在 512GB 6TB 之间,适用于大型企业的数据库、大数据和虚拟化应用。4高端服务器:内存容量可超过 6TB,主要用于超大规模的数据处理、人工智能训练等。

服务器代价

1TB内存的服务器一年消耗的电能在2000美元左右,通常需要非常高的投资成本,具体的价格会根据硬件供应商、配置规格等因素而有所不同。一般来说, 配置1TB内存容量的服务器的价格大致在几万美元。除了内存容量,服务器的其他配置如处理器、存储、网络接口等,也会对最终价格产生影响。通常情况下,配置越高端,价格也会相应更高。这只是一个粗略的价格范围估计,实际价格可能会根据不同供应商和采购时间而有所波动。

对于搜索引擎这样的大型系统来说,1TB内存的服务器通常使用年限在5 年左右,这样既可以保持技术领先,又可以控制好硬件投资和运营成本。当然,实际使用年限也会根据具体的硬件配置、业务负载、维护保养等情况而有所不同。总的来说,服务器需要持续投入大量资金来更新和升级硬件,确保整个系统的高性能和可靠性。

数据集

  1. bio-CE-CX bio-CE-GN bio-DM-CX bio-HS-CX bio-SC-HT
  2. bio-human-gene1 bio-human-gene2 bio-mouse-gene bio-WormNet-v3
  3. datagen-7_5-fb datagen-7_6-fb datagen-7_7-zf datagen-7_8-zf datagen-7_9-fb datagen-8_0-fb datagen-8_1-fb

名称

节点数量

边数量

规模

大小

datagen-7_5-fb

633,432

34,185,747

S

162.3 MB

datagen-7_6-fb

754,147

42,162,988

S

200.0 MB

datagen-7_7-zf

13,180,508

32,791,267

S

434.5 MB

datagen-7_8-zf

16,521,886

41,025,255

S

544.3 MB

datagen-7_9-fb

1,387,587

85,670,523

S

401.2 MB

datagen-8_0-fb

1,706,561

107,507,376

M

502.5 MB

datagen-8_1-fb

2,072,117

134,267,822

M

625.4 MB

https://ldbcouncil.org/benchmarks/graphalytics/

 

Dijkstra最短路径算法因为需要通过更新路径值,而需要把值保留在内存中。对于每个节点,小步最短路径算法只需要一个标记为,来标记该节点是否确定最短路径,所有我们可以用一个相对很小的连续内存空间,来存储所有节点的标记。对于计算出的节点的最短路径的值,可以批量地写到外存。通过两次映射,即先把节点ID映射到等价类ID和其内部元素ID,在计算最短路径后再映射回节点ID,小步最短路径算法可节省计算机的大量内存,并且还显著提高了算法的性能。

因为硬件的问题,我们只使用了规模较小的图,无法对更大的图进行测试。上述图测试结果是Dijkstra最短路径算法需要的时间/小步最短路径算法需要时间在1.5-5左右,其中,第一类图的比值在1.5-2左右,第二类图的比值在3-5左右,第一类图的比值在2-3左右。

使用小步最短路径算法的代价

需要进行数据的预处理,把节点聚类到等价类中并编码,用得到的编码存储和访问节点是否确定最短路径。这种编码具有非常好的扩展性,即对于变化的节点,可以不用重新计算整个图节点编码。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。