littlebot
Published on 2025-04-11 / 2 Visits
0

【源码】基于C++的GraphN图处理系统

项目简介

GraphN是基于C++的图处理系统,致力于解决现有并发图分析处理系统中冗余数据存储和访问开销的问题。通过改进块表信息存储结构、块表优先级调度策略以及轻量级内存管理系统,GraphN大幅提升了内存利用效率和处理速度。实验显示,GraphN的块表信息大小仅为GraphM的千分之一,同一任务所需时间缩短20%以上。

项目的主要特性和功能

  • 块表信息存储结构改进:优化块表信息数据结构,降低非必要的文件读写开销。
  • 块表优先级调度策略:采用优先级调度,将读写开销大的块缓存于内存。
  • 轻量级内存管理系统:改进内存管理机制,提高内存利用效率。
  • 并行图处理:支持在同一基础图上运行多个迭代图处理作业,提升处理效率。
  • 多种图算法支持:支持PageRank、WCC、BFS、SSSP等图算法的并行处理。

安装使用步骤

1. 编译项目

确保系统安装了支持C++11特性和OpenMP的编译器,使用以下命令编译: bash make

2. 图数据预处理

运行并发应用程序前,需对原始图数据预处理,将其分区为网格格式,使用以下命令: bash ./bin/preprocess -i [input path] -o [output path] -v [vertices] -p [partitions] -t [edge type: 0=unweighted, 1=weighted] 然后,将图分区进一步逻辑标记为块,使用以下命令: bash ./bin/Preprocessing [path] [cache size in MB] [graph size in MB] [memory budget in GB] 示例,将LiveJournal图分区为块: bash ./bin/Preprocessing /data/LiveJournal 20 526.38 8

3. 运行应用程序

使用以下命令并行运行PageRank、WCC、BFS、SSSP等应用程序: bash ./bin/concurrent_jobs [path] [number of submissions] [number of iterations] [start vertex id] [cache size in MB] [graph size in MB] [memory budget in GB] 示例,运行10次迭代,共8个作业: bash ./bin/concurrent_jobs /data/LiveJournal 2 10 0 20 526.38 8

通过上述步骤,即可成功安装并使用GraphN系统进行高效的图数据处理。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】