Package jline.solvers.wrappers.lqns
Class SolverLQNS
java.lang.Object
jline.solvers.Solver
jline.solvers.wrappers.lqns.SolverLQNS
- Direct Known Subclasses:
LQNS
Solver interface to the LQNS external tool for Layered Queueing Network analysis.
SolverLQNS provides integration with the external LQNS (Layered Queueing Network Solver) command-line tool developed at Carleton University. This solver enables high-performance analysis of complex layered queueing networks through native C++ implementations.
Key LQNS integration capabilities:
- External tool integration via command-line interface
- LQN model serialization to LQNS XML format
- High-performance native solver algorithms
- Result parsing and integration back to LINE
- Support for complex software system models
Requirements: This solver requires the 'lqns' and 'lqsim' command-line tools to be installed and available in the system PATH. Tools can be obtained from: http://www.sce.carleton.ca/rads/lqns/
- Since:
- 1.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classEnhanced LayeredNetworkAvgTable with detailed metrics support -
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionSolverLQNS(LayeredNetwork lqnmodel) SolverLQNS(LayeredNetwork lqnmodel, SolverOptions options) -
Method Summary
Modifier and TypeMethodDescriptionstatic SolverOptionsReturns the default solver options for the LQNS solver.getAvg()final LayeredNetworkAvgTableprotected final LayeredNetworkAvgTableBody ofgetAvgTable(), split out soLineResultRecordersees what the getter RETURNED.protected SolverResultstatic FeatureSetReturns the feature set supported by the LQNS solverGet raw average tables with detailed metrics for nodes and calls.static booleanTrue if a native lqns binary is available on the PATH.static booleanTrue if LQNS can run: a native lqns binary is on the PATH.booleanisStochasticMethod(String method) The lqsim simulator is stochastic; the analytical lqns/srvn methods are deterministic.listValidMethods(Network model) parseXMLResults(String filename) voidExecutes the solver algorithm to analyze the model.voidrunAnalyzer(SolverOptions options) booleanChecks if this solver supports the given network model.Methods inherited from class jline.solvers.Solver
getMethodFeatureSet, getName, getOptions, getResults, hasResults, isJavaAvailable, isStochastic, isValidOption, listValidOptions, parseOptions, parseOptions, reset, resetRandomGeneratorSeed, resolveMethod, runAnalyzerChecks, selectMethod, setChecks, setOptions, supportsModelMethod, supportsTransientAnalysis, timeExceeded
-
Constructor Details
-
SolverLQNS
-
SolverLQNS
-
-
Method Details
-
getFeatureSet
Returns the feature set supported by the LQNS solver- Returns:
- the feature set supported by the LQNS solver
-
isAvailable
public static boolean isAvailable()True if LQNS can run: a native lqns binary is on the PATH. LINE never runs LQNS from a container image, because its licence is an evaluation agreement that forbids redistribution, so the binary must be one the user installed. To exercise a containerised build in the test suite, put a shim on the PATH withrun-tests.sh --lqns-docker. -
hasNativeLqns
public static boolean hasNativeLqns()True if a native lqns binary is available on the PATH. -
getAvg
-
getAvgTable
-
getAvgTableImpl
Body ofgetAvgTable(), split out soLineResultRecordersees what the getter RETURNED. The JAVA cross-codebase parity row is measured from that rather than from what an example printed. -
getEnsembleAvg
-
getStruct
-
listValidMethods
-
listValidMethods
-
parseXMLResults
- Throws:
IOException
-
runAnalyzer
Description copied from class:SolverExecutes the solver algorithm to analyze the model. This abstract method must be implemented by concrete solver classes.- Specified by:
runAnalyzerin classSolver- Throws:
IllegalAccessException- if access to required resources is deniedParserConfigurationException- if XML parsing configuration fails
-
runAnalyzer
public void runAnalyzer(SolverOptions options) throws IllegalAccessException, ParserConfigurationException -
isStochasticMethod
The lqsim simulator is stochastic; the analytical lqns/srvn methods are deterministic.- Overrides:
isStochasticMethodin classSolver- Parameters:
method- the method name to classify- Returns:
- true if the method returns stochastic estimates
-
supports
Description copied from class:SolverChecks if this solver supports the given network model. Default implementation returns true; subclasses should override to provide specific feature validation. -
getRawAvgTables
Get raw average tables with detailed metrics for nodes and calls. This method provides more detailed metrics than getAvgTable(), including phase-specific utilization and service times, processor metrics, and call waiting times. Returns two tables aligned with MATLAB's getRawAvgTables: - NodeAvgTable: Node, NodeType, Utilization, Phase1Utilization, Phase2Utilization, Phase1ServiceTime, Phase2ServiceTime, Throughput, ProcWaiting, ProcUtilization - CallAvgTable: SourceNode, TargetNode, Type, Waiting- Returns:
- Array containing [NodeAvgTable, CallAvgTable] with detailed metrics
-
defaultOptions
Returns the default solver options for the LQNS solver.- Returns:
- Default solver options with SolverType.LQNS
-