Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

afanasyev-ilya/VectorGraphLibrary

Open more actions menu

Repository files navigation

CONTENTS OF THIS FILE

  • Introduction
  • Requirements
  • Installation
  • Maintainers

To learn more about VGL framework, please visit vgl.parallel.ru website.

INTRODUCTION

VGL is a high-performance graph processing framework, designed for modern NEC SX-Aurora TSUBASA vector architecture. NEC SX-Aurora TSUBASA is equipped with world highest memory bandwidth of 1.2-1.5 TB/s, which allows to significantly accelerate graph-processing.

VGL significantly outperforms many state-of the art graph-processing frameworks for modern multicore CPUs and NVIDIA GPUs, such as Gunrock, CuSHA, Ligra, Galois, GAPBS

Requirements

GCC compiler, version >= 8.3.0 NCC compiler, version >= 3.1.0 ASL (Advanced Scientific Library), version >= 2.1.0 Python, version >= 3.6

(additional for GPU API) In order to use VGL GPU API you must also have CUDA toolkit, version >= 10.0 (additional for automatic benchmarking) GNU bash, version >= 4.0

Installation

  1. Download VGL:

  2. Check sample applications in apps folder:

    cd VectorGraphLibrary/apps

    vim bfs/bfs.cpp

  3. Modify Makefile.nec if neccesarry:

    vim Makefile.nec

    you may change compiler paths:

    VE_CXX = nc++

    VH_CXX = g++

    or the path to ASL:

    -I /opt/nec/ve/nlc/2.0.0/include/

  4. Build VGL samples:

    • all sample applications:

      make -f Makefile.nec all

    • or a specific application (for example shortest paths):

      make -f Makefile.nec sssp

  5. Run automatic verification and performance testing

    • prepare testing data and compiler sources:

      python3 ./run_tests.py --arch=sx --compile --prepare

    • verification:

      python3 ./run_tests.py --arch=sx --verify

    • performance evaluation:

      python3 ./run_tests.py --arch=sx --benchmark file tests_results_sx.xlsx is created with performance and verification results for all algorithms

  6. Using VGL on Lomonosov-2 supercomputer:

    • Lomonosov-2 supercomputer is now equipped with NEC SX-Aurora TSUBASA vector engines. To start using VGL load the following modules:

      (1) nec/2.13.0 (2) anaconda3/3.7.0
      (3) slurm/15.08.1 (4) gcc/9.1

    • Download VGL to your home directory /home/user_name/ (Warning! you can'd download it to _scratch or its subfolders)

      git clone https://github.com/afanasyev-ilya/VectorGraphLibrary

    • Compile VGL on head node using either:

      make -f Makefile.nec all

    • Download input graphs from head node:

      python3 ./run_tests.py --arch=sx --download-only

    • Prepare VGL input graphs on vector host of any partition (nec/pascal/test/etc):

      sbatch -p nec ./graph_library.sh python3 ./run_tests.py --arch=sx --prepare

    • Run benchmarks and tests on vector engines:

      sbatch -p nec ./graph_library.sh python3 ./run_tests.py --arch=sx --benchmark --verify

Maintainers

VGL is maintained by Ilya Afanasyev, afanasiev_ilya@icloud.com.

About

VGL is a high-performance graph processing framework, designed for modern NEC SX-Aurora TSUBASA vector architecture. VGL significantly outperforms many state-of the art graph-processing frameworks for modern multicore CPUs and NVIDIA GPUs, such as Gunrock, CuSHA, Ligra, Galois, GAPBS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.