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 steadystate 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 singlejar commandline 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 simpleqn.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
"simpleqn.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 simpleqn.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”, WOSPC 2016.