Skip to content
腾讯高性能分布式图计算框架Plato
C++ Python C Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows add github docker-build workflow. (#33) Nov 27, 2019
3rd
benchmark FIX: remove '-Werror' from benchmark/BUILD and example/BUILD Nov 18, 2019
build_tools Update BUILD_glog Dec 8, 2019
data prepare for v1.0 Nov 12, 2019
doc Remove LDA from open sourced algorithm list. Dec 7, 2019
docker feat: add tlinux support. Dec 12, 2019
example algo support local fs. Dec 17, 2019
plato Merge branch 'master' of https://github.com/Tencent/plato Dec 22, 2019
scripts add scripts, docker support and fix bugs to help building more smooth… Nov 26, 2019
.bazelrc
.gitignore add scripts, docker support and fix bugs to help building more smooth… Nov 26, 2019
.travis.yml add scripts, docker support and fix bugs to help building more smooth… Nov 26, 2019
3rdtools.sh fix: build failed in case sensitive fs. Dec 25, 2019
CONTRIBUTING.md Update introduction Nov 14, 2019
LICENSE update LICENSE Nov 15, 2019
README.md readme add authors Nov 29, 2019
WORKSPACE prepare for v1.0 Nov 12, 2019
build.sh add scripts, docker support and fix bugs to help building more smooth… Nov 26, 2019

README.md

Plato(柏拉图)

Build Status docker-build workflow

A framework for distributed graph computation and machine learning at wechat scale, for more details, see 柏拉图简介 | Plato Introduction.

Authors(In alphabetical order): Benli Li, Conghui He, Donghai Yu, Pin Gao, Shijie Sun, Wenqiang Wu, Wanjing Wei, Xing Huang, Xiaogang Tu, Yangzihao Wang, Yongan Li.

Contact: plato@tencent.com

Special thanks to Xiaowei Zhu and many for their work Gemini[1]. Several basic utility functions in Plato is derived from Gemini, the design principle of some dual-mode based algorithms in Plato is also heavily influenced by Gemini's dualmode-engine. Thanks to Ke Yang and many for their work KnightKing[2] which served as foundation of plato's walk-engine.

Dependencies

To simplify installation, Plato currently downloads and builds most of its required dependencies by calling following commands. You should call it at least once before any build operations.

# install compile dependencies.
sudo ./docker/install-dependencies.sh
# download and build staticlly linked libraries.
./3rdtools.sh distclean && ./3rdtools.sh install

Environment

Plato was developed and tested on x86_64 cluster and Centos 7.0. Theoretically, it can be ported to other Linux distribution easily.

Test && Build

./build.sh

Run

Local

./scripts/run_pagerank_local.sh

Production

Prerequisite:

  1. A cluster which can submit MPI programs(Hydra is a feasible solution).
  2. An accessible HDFS where Plato can find its input and put output on it.

A sample submit script was locate in here, modify it based on your cluster's environment and run.

./scripts/run_pagerank.sh

Documents

Reference

[1] Xiaowei Zhu, Wenguang Chen, Weimin Zheng, Xiaosong Ma. Gemini: A computation-centric distributed graph processing system. 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’16)

[2] Ke Yang, Mingxing Zhang, Kang Chen, Xiaosong Ma, Yang Bai, Yong Jiang. KnightKing: A Fast Distributed Graph Random Walk Engine. In ACM SIGOPS 27th Symposium on Operating Systems Principles (SOSP ’19)

You can’t perform that action at this time.