README.md 1.31 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
30
Before building, make sure that the submodules are cloned.  If you haven't initialized the submodules, run

```sh
$ git submodule init
```

To sync the submodules, run

```sh
$ git submodule update
```

Gan Quan's avatar
Gan Quan committed
31
32
33
34
35
36
37
At the root directory of the repo:

```sh
$ mkdir build
$ cd build
$ cmake ..
$ make
Gan Quan's avatar
oops  
Gan Quan committed
38
$ export DGL_LIBRARY_PATH=$PWD
Gan Quan's avatar
Gan Quan committed
39
40
41
```

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