Skip to content

RecoderChris/TaijiGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TaijiGraph

The implementation of TaijiGraph can be divided into two parts: front end and back end.

Backend

The backend of TaijiGraph is implemented in the firmware of Cosmos+ OpenSSD. Here we use the dual core as the controller and accelerator for graph computing at the same time.

To build the backend of TaijiGraph, firstly you need to replace the firmware code of Cosmos+ OpenSSD with the controller code in TaijiGraph. Then to invoke the other core in ARM A9, another core need to be programmed using the accelerator code in TaijiGraph.

Xilinx SDK can instruct the two core to run the corresponding code.

Frontend

Build

The frontend of TaijiGraph is implemented in NVMe-CLI open source project to add new NVMe command to communication with the computational storage. To build TaijiGraph front end, one needs to replace the Makefile and then put the TaijiGraph plugin to the plugins directory in NVMe-CLI file.

Use

TaijiGraph has offline stage for graph data downloading from host file to SSD flah and the graph computing using host+CSD heterogeneous architecture. Command for downloading:

./nvme TaijiGraph download-graph /dev/nvme0n1 -f file_pos -r reorder_method -n partNum -c partChoice -p partDirection -a algorithm -m max_vertex -d directed? -z low_degree_compress?

Command for graph processing:

./nvme TaijiGraph process /dev/nvme0n1 -p parallel? -n if_ISP -a algorithm -i max_iter -v start_vertex -t thread_num -r alpha -d delta -m scheduling_metric?

About

Source code of TaijiGraph

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published