MCPcopy Create free account
hub / github.com/Tencent/plato

github.com/Tencent/plato @v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.1 ↗ · + Follow
3,071 symbols 6,820 edges 203 files 296 documented · 10% updated 4y agov0.1.1 · 2021-03-29★ 1,91034 open issues

Browse by type

Functions 2,442 Types & classes 629
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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)

Core symbols most depended-on inside this repo

Shape

Method 1,792
Function 650
Class 597
Enum 32

Languages

C++100%
Python1%
C1%

Modules by API surface

plato/util/libcuckoo/tests/Catch/single_include/catch.hpp980 symbols
3rd/jni6.0/include/jni.h260 symbols
plato/util/concurrentqueue.h165 symbols
plato/util/libcuckoo/libcuckoo/cuckoohash_map.hh150 symbols
plato/util/libcuckoo/libcuckoo-c/cuckoo_table_template.cc72 symbols
plato/util/libcuckoo/tests/pcg/pcg_random.hpp61 symbols
plato/util/object_buffer.hpp55 symbols
plato/util/stream.hpp34 symbols
plato/engine/walk.hpp32 symbols
plato/util/archive.hpp29 symbols
plato/util/hdfs.hpp26 symbols
plato/graph/base.hpp24 symbols

For agents

$ claude mcp add plato \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page