Git Product home page Git Product logo

flock's Introduction

Table of Contents

Team Members:

Name Email
Zachary Sang [email protected]
Kurt Lewis [email protected]
Zachary Collins [email protected]
Laura Tebben [email protected]
  • Faculty Advisor - Fred Annexstein

Project Abstract

Flock is a distributed computing platform-as-a-service that solves the problem of sourcing distributed computing resources by making it easier for underutilized hardware to fulfill computational needs by becoming a member of a cluster. Devices with a browser of sufficient version will be able to subscribe as a worker to the cluster, after which it will being to receive work requests from the master. Overall, this will increase utilization of computing power, while fulfilling computational needs. We're approaching building a distributed computing platform from a perspective of openness. Distributed computing has the potential to revolutionize parallel computing, but most distributed computing projects target high performance computers or are not easily accessible on lower performance devices.

Adding Docs

To add docs to this project, you will use JSDocs 'tutorial' feature. This will take your tutorials file and insert them into the docs that are generated using npm run docs from within the project_service directory. For more details view the instructions here.

flock's People

Contributors

kurtlewis avatar zacharysang avatar zcollins0 avatar

Stargazers

 avatar Dr. John Musgrave avatar

Watchers

James Cloos avatar  avatar  avatar  avatar Laura Tebben avatar

flock's Issues

Communication from project service to master

The project service should send updates to the master service. The functionality already exists on the master service.

Send a POST request to the url in the env var FLOCK_COMM_URL with the required param secret_key (in the env var FLOCK_PROJECT_SECRET) and the optional param worker_count.

I can add new fields if we come up with use cases for them.

Move deployment to a different thread

Deployment is currently done on the main thread, which makes (primarily admin facing) requests really slow when they do deployment work, in the range of ~45s.

From some rudimentary research, flask won't block me from using different threads, but it will block me from referencing the current_app object from the other thread, which also means no database access.

The answer to this problem will be marking some functions as background functions and making others do the foreground work. For instance, call deploy_project on the main thread, which gathers the necessary parameters and database writes, which then calls start_container in the background, who will have no references to current_app or get_db.

Hosting of non-owned static javascript

We need to host two javascript files:
/easyrtc/easyrtc.js
/socket.io/socket.io.js

We need to figure out how we want to manage this.

  1. We could rehost the javascript files not in the repo (I don't know where they are right now?)
  2. We could copy the files into our repo (would need to check the license on redistribution)
  3. We could link to an existing source of the files online

Any other options?

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.