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 readings
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.