# Overview

DiffLQN is a tool for the analysis of Layered Queueing Networks (LQNs) using ordinary differential equations. The main benefits are:

- The analysis is independent of the concurrency levels in the model, for example number of cores in a processor or multiplicities of a server task.
- The estimates are asymptotically exact for large enough concurrency levels.

DiffLQN accepts models using a syntax compatible with LQNS, the reference LQN solver from Carleton University and produces estimates of steady-state throughputs, utilizations, and response times of the network. In addition to differential equations, the network can also be solved using stochastic simulation.

# Download

DiffLQN is available as a single-jar command-line Java executable, available **here**. The archive also contains the documentation and sample LQN models.

DiffLQN is distributed under the Eclipse Public License v 1.0.

# Minimal Example

The file simple-qn.lqn (available in the tool distribution) is a minimal example of an LQN model of a simple client/server systems.

# This block is supported for backward compatibility # but it is not used by DiffLQN G "simple-qn.lqn" 0.0001 500 1 0.5 -1 # Processors declaration, with multiplicity P 0 p ClientP f m 10 p ServerP f m 2 -1 # Tasks declaration T 0 t ClientT r think -1 ClientP m 10 # 10 client tasks running on client processors t ServerT n serve -1 ServerP m 2 # 2 server tasks running on server processors -1 # Entries declaration E 0 s think 0.01 -1 # entry think has time demand 0.01 time units y think serve 1.0 -1 # entry think makes a synchronous call to serve s serve 0.02 -1 # entry serve has time demand 0.02 time units -1 # DiffLQN solver settings, starting with #! # These will be ignored by LQNS #! v 1.0e5 # fast rate to approximate instantaneous events #! solver ode # ODE analysis - solver sim will run simulation #! stoptime 50.0 # integration time horizon # Output performance indices #! throughput: think serve #! utilization: ServerP #! response time: serve -1 # Exports output to csv file #! export csv

It runs from the command line with

java -jar DiffLQN.jar simple-qn.lqn

The output on screen will be the comma separated list of selected performance indices:

throughput, entry, think, 99.85022466301304 throughput, entry, serve, 99.85022466300549 utilization, proc, ServerP,1.9970044932601099 response time, entry, serve, 0.020020000000000003

# Further reading

*Reference paper on LQNs:*

G. Franks, T. Omari, M. Woodside, O. Das, Olivia and S. Derisavi. (2009). “Enhanced Modeling and Solution of Layered Queueing Networks,”*IEEE Trans. Soft. Eng.,***35**(2): 148 – 161*Differential equation analysis of LQNs:*

M. Tribastone. (2013). “A Fluid Model for Layered Queueing Networks,”*IEEE Trans. Soft. Eng.,***39**(6): 744 – 756*Tool paper:*T. Waizmann and M. Tribastone. “DiffLQN: Differential Equation Analysis of Layered Queuing Networks“,

*WOSP-C 2016.*

# Contacts

- Tabea Waizmann, email: tabea.waizmann@imtlucca.it
- Mirco Tribastone, email: mirco.tribastone@imtlucca.it