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
LINE is a MATLAB toolbox offering computational algorithms for queueing theory. LINE supports the solution of open queueing systems (e.g., M/M/1, M/M/k, M/G/1, ...), open and closed queueing networks, and layered queueing networks. Analysis techniques include analytical approximations, exact formulas and discrete-event simulation.
The engine offers a language to specify queueing networks that decouples model description from the choice of solver used for its solution. Model-to-model transformations enable the use of either native or external solvers, such as 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).
Advanced features include nodes to describe caching, randomly-evolving environments, computation of response time percentiles, and transient solutions.
To install LINE, expand the archive (or clone the repository) in the chosen installation folder.
Start MATLAB, change the active directory to the installation folder and run only the first time:
lineInstall
To begin using LINE, add all LINE folders to the path using the following command:
lineStart
The last command is required at the begin of every MATLAB session. You can now use LINE. For example, run the LINE demonstrators using
allExamples
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 by bootstrapping the server first
docker run -i -p 127.0.0.1:5463:5463/tcp --rm linemcr/cli -p 5463
To solve a layered queueing network (LQN), after downloading a LQN example model ofbizExample.xml, we issue a request to the server from LINE's websocket client.
cat ofbizExample.xml | java -jar lineclient.jar 127.0.0.1 5463 -i lqnx
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.
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 lqnx -s ln -a all -o json
We can also solve JMT example models. 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
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
LINE is released as open source under the BSD-3 license: https://raw.githubusercontent.com/line-solver/line/master/LICENSE
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).