GithubHelp home page GithubHelp logo

josin / cloud_gunther Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 1008 KB

Web Application for running serveral algorithms on AWS/Eucaliptus

Home Page: Cloud Gunther

Ruby 85.22% JavaScript 14.73% Shell 0.04%

cloud_gunther's People

Contributors

josin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cloud_gunther's Issues

Scheduler rewrite - task termination

Task termination code dubious, doesn't take into account why instances terminated.
Needs feedback from instance_launcher and perhaps heartbeat from running instances.

Dashboard information about daemons

  • daemons should send heartbeat that they are running

  • application dashboard would show status of all application components e.g.

    outputs worker status: OK
    scheduler status: OK
    instance server: not running

models/tasks.rb re-write

Currently, we are launching exactly as many instances as instances_count, which would be good for parallel computing, but if some don't start, nothing is done about it.

In version 2, we need a machine_count variable, which will be the number of launched instances, while instances_count will be the number of problem instances. This will enable pseudoparallel computations.
The scheduler could also periodically check if there are free resources, as to maximize the number of running instances.
(task.maximize attribute, or machine_count=0)

A true parallel mode will be added where instances_count = machine_count, system will wait until exactly that many instances are running (with the possibility of re-launching failed instances) before starting algorithm.
(task.parallel attribute, or default if machine_count>0)

Version 3 will add better scheduling methods and multi-user load balancing. It will track estimated queue length and offer transfer to other cloud engines if it is too long.

ParamsReader deprecation

ParamsReader module might be replace with ActiveRecord::Base.store which is introduced in Rails 3.2.

  1. Upgrade project to Rails 3.1
  2. Upgrade project to Rails 3.2
  3. Replace ParamsReader in all model classes to ActiveRecord::Base.store and check views for dependencies

Instance_launcher rewrite

  1. If we use :addressing_type => "private", CG must be in the same network as the cloud. Then it won't be able to use multiple cloud engines, unless we use tunnels.
  2. Why are we waiting for pending->running transition with exponential back-off and for OS boot with a constant time-out?
  3. Why are we connecting with SSH 2 times to each instance?

All those would be solved if first connection went from the instance to CG.

There must be a timeout for that to happen. That will be tracked in scheduler's termination method.
It also must catch errors like direct pending->terminated transitions. (in short: system will track all launched instances)
This kind of errors will cause scheduler to re-launch failed instances. (beware of infinite loops, per-task re-launch quota?)

All instances will be launched at once and instance_service will handle initialization. (no need for threads in instance_launcher)
If the alg_runner reports errors launching algorithm, instance will not re-launch, whole task and all instances may be terminated.

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.