{"id":15028757,"url":"https://github.com/tencent/plato","last_synced_at":"2025-05-15T16:03:23.197Z","repository":{"id":37432271,"uuid":"220415098","full_name":"Tencent/plato","owner":"Tencent","description":"腾讯高性能分布式图计算框架Plato","archived":false,"fork":false,"pushed_at":"2021-08-14T05:54:28.000Z","size":6313,"stargazers_count":1910,"open_issues_count":35,"forks_count":331,"subscribers_count":79,"default_branch":"master","last_synced_at":"2025-04-07T21:12:07.311Z","etag":null,"topics":["graph-computing","plato"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tencent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-08T07:52:21.000Z","updated_at":"2025-04-05T14:41:59.000Z","dependencies_parsed_at":"2022-07-12T13:33:52.026Z","dependency_job_id":null,"html_url":"https://github.com/Tencent/plato","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2Fplato","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2Fplato/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2Fplato/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2Fplato/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tencent","download_url":"https://codeload.github.com/Tencent/plato/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374400,"owners_count":22060609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph-computing","plato"],"created_at":"2024-09-24T20:09:02.122Z","updated_at":"2025-05-15T16:03:23.174Z","avatar_url":"https://github.com/Tencent.png","language":"C++","readme":"# Plato(柏拉图)\n\n[![Build Status](https://travis-ci.org/Tencent/plato.svg?branch=master)](https://travis-ci.org/Tencent/plato) [![docker-build workflow](https://github.com/Tencent/plato/workflows/docker-build/badge.svg)](https://github.com/Tencent/plato/actions?workflow=docker-build) \n\n**A framework for distributed graph computation and machine learning at wechat scale, for more details, see [柏拉图简介](doc/introduction.md) | [Plato Introduction](doc/introduction_en.md).**\n\nAuthors(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.\n\nContact: plato@tencent.com\n\nSpecial thanks to [Xiaowei Zhu](https://coolerzxw.github.io/) and many for their work [Gemini](https://coolerzxw.github.io/data/publications/gemini_osdi16.pdf)[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](http://madsys.cs.tsinghua.edu.cn/publications/SOSP19-yang.pdf)[2] which served as foundation of plato's [walk-engine](plato/engine/walk.hpp).\n\n## Dependencies\n\nTo 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.\n\n```bash\n# install compile dependencies.\nsudo ./docker/install-dependencies.sh\n# download and build staticlly linked libraries.\n./3rdtools.sh distclean \u0026\u0026 ./3rdtools.sh install\n```\n\n## Environment\nPlato was developed and tested on x86_64 cluster and [Centos 7.0](https://www.centos.org/). Theoretically, it can be ported to other Linux distribution easily.\n\n## Test \u0026\u0026 Build\n\n```bash\n./build.sh\n```\n\n## Run\n\n### Local\n\n```bash\n./scripts/run_pagerank_local.sh\n```\n\n### Production\n\n*Prerequisite:*\n\n1. A cluster which can submit MPI programs([Hydra](https://wiki.mpich.org/mpich/index.php/Using_the_Hydra_Process_Manager) is a feasible solution).\n2. An accessible [HDFS](https://hadoop.apache.org/) where Plato can find its input and put output on it.\n\nA sample submit script was locate in [here](./scripts/run_pagerank.sh), modify it based on your cluster's environment and run.\n\n\n```bash\n./scripts/run_pagerank.sh\n```\n\n## Documents\n\n* [支持算法列表](./doc/ALGOs.md)\n* [集群资源配置建议](./doc/Resources.md) | [Notes on Resource Assignment](./doc/Resources_en.md)\n\n## Reference\n\n[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)\n\n[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)\n","funding_links":[],"categories":["Infrastructure"],"sub_categories":["Graph Computing Frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Fplato","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftencent%2Fplato","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Fplato/lists"}