Opened 10 years ago
Last modified 10 years ago
#3668 assigned defect
Memory allocation of the back-end and code generation grows quadratically with the system size — at Version 2
| Reported by: | Francesco Casella | Owned by: | Lennart Ochel |
|---|---|---|---|
| Priority: | high | Milestone: | Future |
| Component: | Backend | Version: | v1.9.4-dev-nightly |
| Keywords: | Cc: | andrea.bartolini@… |
Description (last modified by )
Consider the attached test package: it has one large algebraic system of equations driven by a scalar differential equation.
I have used these settings, which include some that are essential for the efficient handling of the large algebraic system:
setCommandLineOptions("--preOptModules-=clockPartitioning
--postOptModules-=detectJacobianSparsePattern --postOptModules+=wrapFunctionCalls
--disableLinearTearing --removeSimpleEquations=new
--indexReductionMethod=uode --tearingMethod=omcTearing
-d=dumpSimCode,gcProfiling,execstat,nogen,initialization,backenddaeinfo,discreteinfo,stateselection");
simulate(LargeAlgebraic.M_2000, method = "rungekutta", stopTime = 1,
numberOfIntervals = 10, simflags = "-lv LOG_STATS,LOG_LS -ls=klu");
Under Windows, the size of memory allocated by the back-end and code generation phases grows approximately as O(N2), N being the size of the algebraic system:
| N | Memory (MB) |
| 2000 | 260 |
| 4000 | 1000 |
| 6000 | 2000 |
Note that the number of non-zero elements in the incidence matrix of the system grows as O(N), as there are 3 non-zero elements in each row.
This is not sustainable for systems that have more than a few thousands unknowns.
Change History (4)
by , 10 years ago
| Attachment: | LargeAlgebraic.mo added |
|---|
comment:1 by , 10 years ago
| Cc: | added |
|---|
comment:2 by , 10 years ago
| Description: | modified (diff) |
|---|---|
| Summary: | Memory allocation of the back-end grows quadratically with the system size → Memory allocation of the back-end and code generation grows quadratically with the system size |
by , 10 years ago
| Attachment: | LargeAlgebraic_MemoryUsage.pdf added |
|---|

A first analysis of the backend memory usage for model LargeAlgebraic.