yassirajalil / line-solver

LINE - Performance and Reliability Analysis Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LINE: Performance and Reliability Modeling Engine

Website: http://line-solver.sourceforge.net/

Latest stable release: https://sourceforge.net/projects/line-solver/files/latest/download

Docker binary release (MCR): https://hub.docker.com/r/linemcr/cli

License Hits View LINE on File Exchange

LINE is a MATLAB toolbox for performance and reliability analysis of systems and processes that can be modeled using queueing theory. The engine offers a solver-agnostic language to specify queueing networks, which therefore decouples model description from the solvers used for their solution. This is done through model-to-model transformations that automatically translate the model specification into the input format (or data structure) accepted by the target solver.

Supported models include extended queueing networks, both open and closed, and layered queueing networks. Models can be solved with either native or external solvers, the latter include JMT and LQNS. Native solvers are based on continuous-time Markov chains (CTMC), fluid ordinary differential equations, matrix analytic methods (MAM), normalizing constant analysis, and mean-value analysis (MVA).

Getting started (MATLAB SOURCE)

To get started, expand the archive (or clone the repository) in the chosen installation folder.

Start MATLAB and change the active directory to the installation folder. Then add all LINE folders to the path

addpath(genpath(pwd))

Finally, run the LINE demonstrators using

allExamples

Getting started (DOCKER SERVER)

This binary release uses the royalty-free MATLAB compiler runtime to enable users without a MATLAB license to use the main features of LINE. This release can only solve models specified using the JMT or LQNS input file formats.

To get started, retrieve the LINE container:

docker pull linemcr/cli

Let us first run the line container in client-server model

docker run -i -p 127.0.0.1:5463:5463/tcp  --rm linemcr/cli -p 5463

bootstraps the server. To solve a layered queueing network (LQN), after downloading a LQN example model ofbizExample.xml, we issue a request to the engine using LINE's websocket client.

cat ofbizExample.xml | java -jar lineclient.jar 127.0.0.1 5463

Note that the first invocation tends to be slightly slower than the following ones.

The command will print in JSON format the results of the mean performance metrics calculation functions of LINE, getAvgTable and getAvgSysTable.

Getting started (DOCKER CLI)

It is also possible to run LINE in direct CLI mode, but incurring a longer bootstrap time due to the MATLAB compiler runtime startup, for example:

cat ofbizExample.xml | docker run -i --rm linemcr/cli -i xml -s ln -a all -o json

We can also solve JMT example models. We first download example_openModel_3.jsimg to a local directory and then run

cat example_openModel_3.jsimg | docker run -i --rm linemcr/cli -i jsimg -s mva -a all -o json

Documentation

Getting started examples and detailed instructions on how to use LINE are provided in the User Manual and on the Wiki.

A number of functions in MATLAB document their I/O behavior, e.g.:

>> help Solver.accurateOdeSolver
  FUN = accurateOdeSolver()
  Return default high-accuracy non-stiff solver

Further help on the Docker container options can instead be obtained as follows

docker run -i --rm linemcr/cli -h

License

LINE is released as open source under the BSD-3 license: https://raw.githubusercontent.com/line-solver/line/master/LICENSE

Acknowledgement

The development of LINE has been partially funded by the European Commission grants FP7-318484 (MODAClouds), H2020-644869 (DICE), H2020-825040 (RADON), and by the EPSRC grant EP/M009211/1 (OptiMAM).

About

LINE - Performance and Reliability Analysis Engine

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


Languages

Language:MATLAB 99.5%Language:C++ 0.1%Language:Objective-C 0.1%Language:Java 0.1%Language:C 0.1%Language:M 0.1%