Git Product home page Git Product logo

scape1989 / nimbus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from omidm/nimbus

0.0 2.0 0.0 233.37 MB

nimbus: a cloud computing framework for high performance computations

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.17% CMake 0.26% C++ 46.91% Python 0.79% Shell 0.16% Protocol Buffer 0.02% C 43.18% CSS 0.05% Perl 0.04% M4 0.01% Batchfile 0.02% HTML 7.79% ApacheConf 0.01% XSLT 0.48% DIGITAL Command Language 0.01% Yacc 0.02% Objective-C 0.02% Lex 0.01% R 0.01% TeX 0.08%

nimbus's Introduction

Nimbus Project

Nimbus is a framework for fast cloud computing applications. It is developed by a group of researchers at Stanford University. Nimbus supports jobs with short tasks and hight task rate. The range of applications includes machine learning, graph processing and graphical simulations. Nimbus's control plane implements a novel abstraction, called execution termplates that allows Nimbus to scale out and provide orders of magnitude higher task throughput compared to counterpart frameworks. Nimbus introduces a simple geometric based interface and a translation layer for automatic distribution of graphical simulations in the cloud. For more information please refer to Nimbus website.

Followings are concise instructions on how to build and use Nimbus. For the complete instructions please refer to the docs folder or access an online version of the Nimbus documentation.

Building Nimbus

Nimbus is built using make and requires a gcc compiler. We have tested Nimbus with gcc versions 4.5, 4.8 and 5.4, on Ubuntu 12.04, 14.04 and 16.04. Also, you might be able to build Nimbus on OSX (although it is not officially supported). To build Nimbus, first install make and gcc on your system (you most probably already have them). For example, on Ubuntu:

$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install make

Then issue make at Nimbus root directory:

$ make

It builds the nimbus core library and external library dependencies along with a group of applications. Nimbus library uses boost, protobuf, and leveldb header files and libraries. However, you do not need to install them separately. They are locally installed as part of Nimbus built, automatically.

The build might take few minutes. You could use -j <number of threads> option with make for faster turn around. After the build is successful, you can test basic functionalities by running simple end-to-end applications. For example, at the root, issue:

$ make test-basics

For complete building instructions and how to build and run graphical simulations with Nimbus please refer to the documentations, at Building Nimbus.

Running Examples

You can run basic, one controller one worker, application examples with a single script. From the root directory call ./scripts/run-examples.sh. For example, you can run logistic regression application as follows:

$ ./scripts/run-examples.sh lr 

To see other available examples through this script use the -h options:

$ ./scripts/run-examples.sh -h

Also, You can run more complex examples easily with one controller against multiple workers. Use the scripts to launch controller and workers from the root directory. To launch the controller against two worker, and split the application domain along x-axis, issue:

$ ./scripts/start-controller.sh -w 2 --split 2 1 1

This script starts the controller locally and redirects the controller stdout/stderr to files in logs/ folder. If you want to run the controller in the foreground and flush the logs in to current console use the --fg option. There are numerous options that you can use for the controller. For the entire list, issue:

$ ./scripts/start-controller.sh -h

Now you need to launch the workers to run against the controller. To launch the two workers to run for example the k-means application, issue:

$ ./scripts/start-workers.sh 2 -l applications/ml/k_means/libk_means.so

This script launches two workers, and redirects their stdout/stderr to files in logs/ folder. To print the logs in the console use the --fg option; in case of multiple workers it opens a terminal for each worker. Also, workers have multiple options, to see the complete list:

$ ./scripts/start-workers.sh -h

nimbus's People

Contributors

alim907 avatar bmistree avatar flexfl avatar jiazhihao avatar omidm avatar phil-levis avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.