README.md 1.12 KB
Newer Older
zzhang-cn's avatar
zzhang-cn committed
1
# Deep Graph Library
Minjie Wang's avatar
Minjie Wang committed
2
[![Build Status](http://216.165.71.225:8080/buildStatus/icon?job=DGL/master)](http://216.165.71.225:8080/job/DGL/job/master/)
Minjie Wang's avatar
Minjie Wang committed
3
[![GitHub license](https://dmlc.github.io/img/apache2.svg)](./LICENSE)
zzhang-cn's avatar
zzhang-cn committed
4
5
6
7
8
9

## Architecture
Show below, there are three sets of APIs for different models.
- `update_all`, `proppagate` are more global
- `update_by_edge`, `update_to` and `update_from` give finer control when updates are applied to a path, or a group of nodes
- `sendto` and `recvfrom` are the bottom primitives that update a message and node.
Zheng Zhang's avatar
Zheng Zhang committed
10
11

![Screenshot](graph-api.png)
zzhang-cn's avatar
zzhang-cn committed
12
13
14
15
16

## For Model developers
- Always choose the API at the *highest* possible level.
- Refer to [the default modules](examples/pytorch/util.py) to see how to register message and node update functions as well as readout functions; note how you can control sharing of parameters by adding a counter.

Gan Quan's avatar
Gan Quan committed
17
## How to build (the `cpp` branch)
zzhang-cn's avatar
zzhang-cn committed
18

Gan Quan's avatar
Gan Quan committed
19
20
21
22
23
24
25
26
27
28
29
At the root directory of the repo:

```sh
$ mkdir build
$ cd build
$ cmake ..
$ make
$ export DGL_LIBRARY_PATH=$PWD/build
```

The `DGL_LIBRARY_PATH` environment variable should point to the library `libdgl.so` built by CMake.