FLD (Fluid/Mean-Field Approximation)
The FLD solver is based on a system of ordinary differential equations (ODEs) that provide mean-field approximations for queueing networks. The approach is grounded in Kurtz's mean-field approximation theory and is particularly effective for transient analysis and models with large job populations.
| Method | Algorithm | Reference |
|---|---|---|
default | Automatic method selection | — |
matrix | ODE-based mean field approximations | [1], [2] |
pnorm | Polynomial normalization ODE approximation | — |
statedep | Kurtz's mean field ODEs for closed models | [1] |
closing | FLD with closing method for open classes | [3] |
softmin | Smoothed statedep with softmin functions | — |
diffusion | Diffusion approximation via Euler-Maruyama SDEs | [4] |
mfq | Markovian fluid queue for single-queue systems | [5] |
Example
This example demonstrates the FLD solver on a closed queueing network with a large job population (100 jobs). The fluid approximation is particularly effective for high-population scenarios, where it provides accurate results more efficiently than state-space methods.
% Create a closed queueing network with 100 jobs
model = Network('FLD Example');
delay = Delay(model, 'Delay');
queue = Queue(model, 'Queue', SchedStrategy.FCFS);
jobclass = ClosedClass(model, 'Class1', 100, delay);
delay.setService(jobclass, Exp(1.0));
queue.setService(jobclass, Exp(2.4));
P = model.initRoutingMatrix();
P.set(jobclass, jobclass, delay, queue, 1.0);
P.set(jobclass, jobclass, queue, delay, 1.0);
model.link(P);
solver = FLD(model);
FLD(model).avgTable()
Output:
FLD analysis [method: default/matrix, lang: matlab] completed in 0.076s.
2×8 table
Station JobClass QLen Util RespT ResidT ArvR Tput
Delay Class1 2.4 2.4 1 1 2.4 2.4
Queue Class1 97.6 1 40.667 40.667 2.4 2.4
// Create a closed queueing network with 100 jobs
Network model = new Network("FLD Example");
Delay delay = new Delay(model, "Delay");
Queue queue = new Queue(model, "Queue", SchedStrategy.FCFS);
ClosedClass jobclass = new ClosedClass(model, "Class1", 100, delay);
delay.setService(jobclass, new Exp(1.0));
queue.setService(jobclass, new Exp(2.4));
RoutingMatrix P = model.initRoutingMatrix();
P.set(jobclass, jobclass, delay, queue, 1.0);
P.set(jobclass, jobclass, queue, delay, 1.0);
model.link(P);
FLD solver = new FLD(model);
solver.avgTable.print();
Output:
FLD analysis [method: default/matrix, lang: java] completed.
Station JobClass QLen Util RespT ResidT ArvR Tput
Delay Class1 2.4 2.4 1 1 2.4 2.4
Queue Class1 97.6 1 40.667 40.667 2.4 2.4
# Create a closed queueing network with 100 jobs
from line_solver import *
model = Network("FLD Example")
delay = Delay(model, "Delay")
queue = Queue(model, "Queue", SchedStrategy.FCFS)
jobclass = ClosedClass(model, "Class1", 100, delay)
delay.set_service(jobclass, Exp(1.0))
queue.set_service(jobclass, Exp(2.4))
P = model.init_routing_matrix()
P.set(jobclass, jobclass, delay, queue, 1.0)
P.set(jobclass, jobclass, queue, delay, 1.0)
model.link(P)
solver = FLD(model)
print(solver.avg_table)
Output:
FLD analysis [method: default/matrix, lang: python] completed.
Station JobClass QLen Util RespT ResidT ArvR Tput
Delay Class1 2.4 2.4 1 1 2.4 2.4
Queue Class1 97.6 1 40.667 40.667 2.4 2.4
References
- Pérez, J. F., & Casale, G. (2017). Decoupling transient and steady-state analysis in closed-form solutions of Markovian queueing networks. IEEE Transactions on Reliability, 66(3), 625-638.
- Ruuskanen, J., Berner, T., Årzén, K.-E., & Cervin, A. (2021). Improving the mean-field fluid model of processor sharing queueing networks for dynamic performance models in cloud computing. Performance Evaluation, 151, 102231.
- Bolch, G., Greiner, S., de Meer, H., & Trivedi, K. S. (2006). Queueing Networks and Markov Chains (2nd ed.). Wiley-Interscience.
- Reiser, M. (1983). Performance evaluation of data communication systems. Proceedings of the IEEE, 70(2), 171-196.
- Horváth, G., & Telek, M. (2014). Sojourn times in fluid queues with independent and dependent input and output processes. Performance Evaluation, 79, 160-181. https://doi.org/10.1016/j.peva.2014.07.011