Skip to content

Commit

Permalink
init commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mli committed Apr 26, 2015
1 parent 1d5f0c0 commit eaed92a
Show file tree
Hide file tree
Showing 108 changed files with 11,771 additions and 33 deletions.
45 changes: 17 additions & 28 deletions .gitignore
@@ -1,28 +1,17 @@
# Compiled Object files example/**/data
*.slo example/**/model
*.lo build
*.o third_party
*.obj **/log/**

**/cache/**
# Precompiled Headers **/output/**
*.gch *.pb.cc
*.pch *.pb.h

.*
# Compiled Dynamic libraries *core*
*.so config.mk
*.dylib **/bak/**
*.dll doc/html

doc/latex
# Fortran module files test/
*.mod test-bak

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
5 changes: 2 additions & 3 deletions LICENSE
@@ -1,4 +1,4 @@
Apache License Apache License
Version 2.0, January 2004 Version 2.0, January 2004
http://www.apache.org/licenses/ http://www.apache.org/licenses/


Expand Down Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.


Copyright {yyyy} {name of copyright owner} Copyright 2015 Carnegie Mellon University


Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
Expand All @@ -199,4 +199,3 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.

60 changes: 60 additions & 0 deletions Makefile
@@ -0,0 +1,60 @@
ifneq ("$(wildcard ./config.mk)","")
include ./config.mk
else
include make/config.mk
endif

ifeq ($(STATIC_THIRD_LIB), 1)
THIRD_LIB=$(addprefix $(THIRD_PATH)/lib/, libgflags.a libzmq.a libprotobuf.a libglog.a libz.a libsnappy.a)
ifeq ($(USE_S3),1)
THIRD_LIB+=$(addprefix $(THIRD_PATH)/lib/, libxml2.a)
endif
else
THIRD_LIB=-L$(THIRD_PATH)/lib -lgflags -lzmq -lprotobuf -lglog -lz -lsnappy
ifeq ($(USE_S3),1)
THIRD_LIB+=-lxml2
endif
endif

WARN = -Wall -Wno-unused-function -finline-functions -Wno-sign-compare #-Wconversion
INCPATH = -I./src -I./include -I$(THIRD_PATH)/include
CFLAGS = -std=c++0x $(WARN) $(OPT) $(INCPATH) $(EXTRA_CFLAGS)
ifeq ($(USE_S3), 1)
CFLAGS += -DUSE_S3=1
endif
LDFLAGS = $(EXTRA_LDFLAGS) $(THIRD_LIB) -lpthread # -lrt

PS_LIB = build/libps.a
PS_MAIN = build/libps_main.a
# TEST_MAIN = build/test_main.o

clean:
rm -rf build
find src -name "*.pb.[ch]*" -delete

ps: $(PS_LIB) $(PS_MAIN) #$(TEST_MAIN)

# PS system
ps_srcs = $(wildcard src/*.cc src/*/*.cc)
ps_protos = $(wildcard src/proto/*.proto)
ps_objs = $(patsubst src/%.proto, build/%.pb.o, $(ps_protos)) \
$(patsubst src/%.cc, build/%.o, $(ps_srcs))

build/libps.a: $(patsubst %.proto, %.pb.h, $(ps_protos)) $(ps_objs)
ar crv $@ $(filter %.o, $?)

build/libps_main.a: build/ps_main.o
ar crv $@ $?

build/%.o: src/%.cc
@mkdir -p $(@D)
$(CC) $(INCPATH) -std=c++0x -MM -MT build/$*.o $< >build/$*.d
$(CC) $(CFLAGS) -c $< -o $@

%.pb.cc %.pb.h : %.proto
${THIRD_PATH}/bin/protoc --cpp_out=./src --proto_path=./src $<

-include build/*/*.d
-include build/*/*/*.d
-include test/ps_test.mk
-include guide/ps_guide.mk
22 changes: 20 additions & 2 deletions README.md
@@ -1,2 +1,20 @@
# ps-lite <img src="http://parameterserver.org/images/parameterserver.png" alt="Parameter Server" style="width: 500px;">
A light parameter server interface
<!-- [xx](http://parameterserver.org/images/parameterserver.png) -->

The parameter server is a distributed system scaling to industry size machine
learning problems. It provides asynchronous and zero-copy key-value pair
communications between worker machines and server machines. It also supports
flexiable data consistency model, data filters, and flexiable server machine
programming.

- [Tutorial](guide/)
- [API Document](doc/)
- [Wiki](https://github.com/dmlc/parameter_server/wiki/)
- How to [build](make/)
- Examples
- [Linear method](example/linear)
- Deep neural network, see [CXXNET](https://github.com/dmlc/cxxnet) and [Minverva](https://github.com/minerva-developers/minerva)
- Research papers: System
[OSDI'14](http://www.cs.cmu.edu/~muli/file/parameter_server_osdi14.pdf),
Algorithm [NIPS'14](http://www.cs.cmu.edu/~muli/file/parameter_server_nips14.pdf)

0 comments on commit eaed92a

Please sign in to comment.