{"id":15109516,"url":"https://github.com/dmlc/ps-lite","last_synced_at":"2025-10-25T00:02:46.536Z","repository":{"id":31068699,"uuid":"34627589","full_name":"dmlc/ps-lite","owner":"dmlc","description":"A lightweight parameter server interface","archived":false,"fork":false,"pushed_at":"2023-01-11T05:35:49.000Z","size":919,"stargazers_count":1544,"open_issues_count":73,"forks_count":544,"subscribers_count":89,"default_branch":"master","last_synced_at":"2025-04-14T22:19:52.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://ps-lite.readthedocs.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmlc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-26T19:29:30.000Z","updated_at":"2025-03-31T09:55:31.000Z","dependencies_parsed_at":"2023-01-14T18:16:49.943Z","dependency_job_id":null,"html_url":"https://github.com/dmlc/ps-lite","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlc%2Fps-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlc%2Fps-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlc%2Fps-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmlc%2Fps-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmlc","download_url":"https://codeload.github.com/dmlc/ps-lite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254337613,"owners_count":22054253,"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":[],"created_at":"2024-09-25T23:02:33.938Z","updated_at":"2025-10-25T00:02:46.495Z","avatar_url":"https://github.com/dmlc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/dmlc/ps-lite.svg?branch=master)](https://travis-ci.org/dmlc/ps-lite)\n[![GitHub license](http://dmlc.github.io/img/apache2.svg)](./LICENSE)\n\nA light and efficient implementation of the parameter server\nframework. It provides clean yet powerful APIs. For example, a worker node can\ncommunicate with the server nodes by\n- `Push(keys, values)`: push a list of (key, value) pairs to the server nodes\n- `Pull(keys)`: pull the values from servers for a list of keys\n- `Wait`: wait untill a push or pull finished.\n\nA simple example:\n\n```c++\n  std::vector\u003cuint64_t\u003e key = {1, 3, 5};\n  std::vector\u003cfloat\u003e val = {1, 1, 1};\n  std::vector\u003cfloat\u003e recv_val;\n  ps::KVWorker\u003cfloat\u003e w;\n  w.Wait(w.Push(key, val));\n  w.Wait(w.Pull(key, \u0026recv_val));\n```\n\nMore features:\n\n- Flexible and high-performance communication: zero-copy push/pull, supporting\n  dynamic length values, user-defined filters for communication compression\n- Server-side programming: supporting user-defined handles on server nodes\n\n### Build\n\n`ps-lite` requires a C++11 compiler such as `g++ \u003e= 4.8`. On Ubuntu \u003e= 13.10, we\ncan install it by\n```\nsudo apt-get update \u0026\u0026 sudo apt-get install -y build-essential git\n```\nInstructions for gcc 4.8 installation on other platforms:\n- [Ubuntu 12.04](http://ubuntuhandbook.org/index.php/2013/08/install-gcc-4-8-via-ppa-in-ubuntu-12-04-13-04/)\n- [Centos](http://linux.web.cern.ch/linux/devtoolset/)\n- [Mac Os X](http://hpc.sourceforge.net/).\n\nThen clone and build\n\n```bash\ngit clone https://github.com/dmlc/ps-lite\ncd ps-lite \u0026\u0026 make -j4\n```\n\n### How to use\n\n`ps-lite` provides asynchronous communication for other projects: \n  - Distributed deep neural networks:\n    [MXNet](https://github.com/dmlc/mxnet),\n    [CXXNET](https://github.com/dmlc/cxxnet),\n    [Minverva](https://github.com/minerva-developers/minerva), and\n    [BytePS](https://github.com/bytedance/byteps/)\n  - Distributed high dimensional inference, such as sparse logistic regression,\n    factorization machines:\n    [DiFacto](https://github.com/dmlc/difacto)\n    [Wormhole](https://github.com/dmlc/wormhole)\n\n\n### Research papers\n  1. Mu Li, Dave Andersen, Alex Smola, Junwoo Park, Amr Ahmed, Vanja Josifovski,\n     James Long, Eugene Shekita, Bor-Yiing\n     Su. [Scaling Distributed Machine Learning with the Parameter Server](http://www.cs.cmu.edu/~muli/file/parameter_server_osdi14.pdf). In\n     Operating Systems Design and Implementation (OSDI), 2014\n  2. Mu Li, Dave Andersen, Alex Smola, and Kai\n     Yu. [Communication Efficient Distributed Machine Learning with the Parameter Server](http://www.cs.cmu.edu/~muli/file/parameter_server_nips14.pdf). In\n     Neural Information Processing Systems (NIPS), 2014\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmlc%2Fps-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmlc%2Fps-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmlc%2Fps-lite/lists"}