Skip to content
Mark Mikofski edited this page Sep 21, 2017 · 11 revisions

Welcome to the Carousel wiki!

Documentation

Please see Carousel package documentation.

Talks

Roadmap

This is the release plan and wish list for implementing new features.

Feature Wish List

Test Layer

This layer contains test data mapped to formulas that can be used to run automatic tests of formulas from the command line by using carousel test <formula|calculation|simulation|model>.

Validation Layer

The proposed validation layer can serve several purposes:

  1. model integrity check
  2. data source validation
  3. formula return output mismatch

Model Integrity

First it checks the integrity of the model. Since models are depend on a static structure, there are many components that are over constrained. This can lead to models that fail to load. The validation layer checks that the listed arguments in calculations exist in the formula. If args are specified in formulas, it verifies them against the functions argspec. It checks that formula functions can be imported and that they actually exist. The validation layer also checks the paths of specified parameter files and Python modules and packages.

Data Validation

When data is loaded from sources the validation layer reports if data is not is not the type that was specified or if it was not loaded at all.

Formula output mismatch

This check makes sure that formulas return the outputs that are specified.

Related Issues, Pull Requests and Milestones:

scrubber layer

This layer utilizes PECOS

Carousel client

This is a port of the tk client from the original proprietary project to Carousel. It allows loading of models, real time mornitoring and simulation control. The tk client is the starting point for development of a new command line which is more desirable because Carousel will most likely be run from the command line and or as a subprocess of another applicaton. A related goal of this proposal is to replace threading in the current Standalone simulation with muliprocessing over TCP sockets. This is describted in a different proposal.

Multiprocessing socket communication and server

This proposal is related to the new Carousel CLI client. A multiprocessing daemon pool that communicates via TCP sockets allows Carousel to be distributed across a computing cluster that allows varying levels of concurrency for performance and scalability.

Examples of usage:

  • embarrassingly parallel calculations in a single simulation
  • multiple simultaneous simulations in a single model
  • multiple models in a project
  • organize and simplify model execution organization for users.
  • allow remote execution and polling of carousel model simulations.