Directory doc/performance/benchmarks/tests/

Directory Created:
2011-11-20 15:42
Directory Deleted:
2012-06-11 11:03
Total Files:
0
Deleted Files:
26
Lines of Code:
0

[root]/doc/performance/benchmarks/tests

Lines of Code

doc/performance/benchmarks/tests/ Lines of Code

Developers

Author Changes Lines of Code Lines per Change
Totals 58 (100.0%) 105430 (100.0%) 1817.7
adrpo 32 (55.2%) 105430 (100.0%) 3294.6
perost 26 (44.8%) 0 (0.0%) 0.0

Most Recent Commits

perost 2012-06-11 11:03 Rev.: 12014

- Moved the benchmark test models from doc/performance/benchmarks/tests to
testsuite/benchmarks.
- Added benchmark models from Marco Bonvini.

0 lines of code changed in 26 files:

  • doc/performance/benchmarks/tests: BigModel.mo (del), HumModOMCTotal.mo (del), README.txt (del), _LoopsTotal.mo (del), checkBigModel.CircuitL1.mos (del), checkBigModel.CircuitL2.mos (del), checkBigModel.CircuitL3.mos (del), checkBigModel.CircuitL4.mos (del), checkBigModel.CircuitL5.mos (del), checkBigModel.CircuitL6.mos (del), checkBigModel.CircuitL7.mos (del), checkBigModel.CircuitL8.mos (del), checkBigModel.CircuitL9.mos (del), checkBigModel.mos (del), checkEngineV6.mos (del), checkEngineV6_analytic.mos (del), checkHumMod.mos (del), checkRobotR3.mos (del), dym_checkEngineV6.mos (del), dym_checkEngineV6_analytic.mos (del), dym_checkHumMod.mos (del), dym_checkRobotR3.mos (del), instEngineV6.mos (del), instEngineV6_analytic.mos (del), instHumMod.mos (del), instRobotR3.mos (del)
adrpo 2012-03-28 03:21 Rev.: 11578

- add new heuristic to Compiler/BackEnd/BackendDAEOptimize.mo
if two aliases have different start value choose the one more closer to the top of the instance hierarchy.
- add ComponentReference.crefDepth in Compiler/FrontEnd/ComponentReference.mo'
- fixed testsuite/mosfiles/nonConstantParam.mos output

- more paranoiac checks of arguments in CevalScript.buildModel function Compiler/Script/CevalScript.mo
- moved symbol table to a more sane place in output arguments of buildModel and return the simflags too
- use simflags when calling the generated system executable.
- fixed System.getUsesCardinality for bootstrapping as it should return the value because is not pass by reference.

- added comment that we should check the encoding in Util.escapeModelicaStringToXmlString, maybe
give an warning and force UTF-8 conversion.

- update models in doc/performance/benchmarks/tests/

Compiler/susan_codegen/SimCode/CodegenC.tpl
- minimize the .c file size for MetaModelica support.
- generate literals in the header not the c file
- rename all .targXX to .cXX as i have no idea from where the name "targ" comes and what it means!
".cXX" means component XX from the structure.
- got rid of spurious defines that make no sense
- got rid of some of the comments.
- use the tmpMeta array for the inputs/outputs in match(continue) expressions.

4 lines of code changed in 2 files:

  • doc/performance/benchmarks/tests: HumModOMCTotal.mo (+1 -1), _LoopsTotal.mo (+3 -3)
adrpo 2011-12-09 15:24 Rev.: 10682

- add scripts to test each CircuitLX.
- shuffled a bit the models in BigModel.mo

67 lines of code changed in 10 files:

  • doc/performance/benchmarks/tests: BigModel.mo (+40 -40), checkBigModel.CircuitL1.mos (new 3), checkBigModel.CircuitL2.mos (new 3), checkBigModel.CircuitL3.mos (new 3), checkBigModel.CircuitL4.mos (new 3), checkBigModel.CircuitL5.mos (new 3), checkBigModel.CircuitL6.mos (new 3), checkBigModel.CircuitL7.mos (new 3), checkBigModel.CircuitL8.mos (new 3), checkBigModel.CircuitL9.mos (new 3)
adrpo 2011-12-06 09:40 Rev.: 10655

- big model for tests from Peter Aronsson @ MathCore.

40 lines of code changed in 2 files:

  • doc/performance/benchmarks/tests: BigModel.mo (new 40), checkBigModel.mos (new)
adrpo 2011-11-30 12:16 Rev.: 10605

- made them work in previous versions of OpenModelica.

4 lines of code changed in 2 files:

  • doc/performance/benchmarks/tests: checkRobotR3.mos (+2 -1), instRobotR3.mos (+2 -1)
adrpo 2011-11-30 07:11 Rev.: 10604

HUGE update to SVN with *a lot* of changes: DO MAKE CLEAN!
==========================================================
- The DAE.ExpType is *no more*
- The BackendDAE.Type is *no more*
Both got replaced by DAE.Type!
- The DAE.ExpVar is *no more*
It got replaced by DAE.Var!
Now we have *ONLY ONE* type in the compiler: DAE.Type!


Just to know why I got this done:

BEFORE, the model HumMod took 6m51 seconds to instantiate
adrpo@ida-liu050 ~/dev/OpenModelica/doc/performance/benchmarks/tests
$ time /c/OpenModelica1.8.0-r10584/bin/omc instHumMod.mos > trace.txt 2>&1
real 6m51.354s
user 0m0.000s
sys 0m0.015s

AFTER, the model HumMod takes 47 seconds to instantiate
adrpo@ida-liu050 ~/dev/OpenModelica/doc/performance/benchmarks/tests
$ time ../../../../build/bin/omc instHumMod.mos > mytrace.txt 2>&1
real 0m47.248s
user 0m0.000s
sys 0m0.000s

Is about 8,74468085106383 times faster now.
Basically, before, we were doing DAE.T_*
-> DAE.ET_* translation for 6 minutes!

I started this work on Friday after the OpenModelica 1.8.0
got released, so for 4+ days of work I think the result is
quite OK.



Crash course into the new types (actually old ones from DAE.Type):
==================================================================

1. DAE.Type is not a tuple anymore, instead the optional path
became DAE.TypeSource which is a list of paths and is now
part of *all* the records in DAE.Type.

The needed types from DAE.ExpType got merged into DAE.Type:
DAE.ET_METATYPE -> DAE.T_METATYPE
DAE.ET_FUNCTION_REFERENCE_VAR -> DAE.T_FUNCTION_REFERENCE_VAR
DAE.ET_FUNCTION_REFERENCE_FUNC -> DAE.T_FUNCTION_REFERENCE_FUNC

Some DAE.Type types got split:
DAE.T_COMPLEX split into DAE.T_COMPLEX for types not extending
basic types and DAE.T_SUBTYPE_BASIC is now used for types
extending basic types.

Some DAE.Type types changed name:
DAE.T_NOTYPE -> DAE.T_UNKNOWN
Renamed also the meta-types a bit to make them more homogeneous.

Some DAE.ExpType are gone:
DAE.ET_OTHER is gone, use DAE.T_UNKNOWN instead!

Some DAE.Type types changed structure (besides the DAE.TypeSource addition):
(DAE.T_ARRAY(dim, ty), optPath) -> DAE.T_ARRAY(ty, list<dim>, list<Path>)
so we now have similar structure for DAE.T_ARRAY and the previous DAE.ET_ARRAY.


2. In cases, when matching:
Instead of | Use now:
-------------------------------------------------------
DAE.ET_INT() | DAE.T_INTEGER(source = _)
DAE.ET_REAL() | DAE.T_REAL(source = _)
DAE.ET_BOOL() | DAE.T_BOOL(source = _)
DAE.ET_STRING() | DAE.T_STRING(source = _)
DAE.ET_ENUMERATION(...) | DAE.T_ENUMERATION(...)
DAE.ET_COMPLEX(...) | DAE.T_COMPLEX(...)
DAE.ET_OTHER(...) | DAE.T_UNKNOWN(source = _)
DAE.ET_ARRAY(...) | DAE.T_ARRAY(...)
-------------------------------------------------------

3. When constructing values, in the then part or in right
hand side in equations:
Instead of | Use now:
-------------------------------------------------------
DAE.ET_INT() | DAE.T_INTEGER_DEFAULT
DAE.ET_REAL() | DAE.T_REAL_DEFAULT
DAE.ET_BOOL() | DAE.T_BOOL_DEFAULT
DAE.ET_STRING() | DAE.T_STRING_DEFAULT
DAE.ET_ENUMERATION(...) | DAE.T_ENUMERATION(...)
DAE.ET_COMPLEX(...) | DAE.T_COMPLEX(...)
DAE.ET_OTHER(...) | DAE.T_UNKNOWN(source = _)
DAE.ET_ARRAY(...) | DAE.T_ARRAY(...)
-------------------------------------------------------

4. Types.elabType got renamed to Types.simplifyType
and does some type simplification (instead of the
previous DAE.T_* -> DAE.ET_* translation).

Feel free to ask me anything if something is unclear.

The code can be further improved (we need better handling
of DAE.T_ARRAY that has several dimensions instead of one)
by getting rid of Types.simplifyType/Types.expTypetoTypesType,
but for now is good enough. Also, functionality for the old
DAE.ET_* handling from Expression*.mo can be merged with the
DAE.T_ handling from Types so we can get rid of duplicate
code too.

52655 lines of code changed in 1 file:

  • doc/performance/benchmarks/tests: HumModOMCTotal.mo (+52655 -52655)
adrpo 2011-11-22 12:24 Rev.: 10564

- added Dymola style scripts for testing.

0 lines of code changed in 4 files:

  • doc/performance/benchmarks/tests: dym_checkEngineV6.mos (new), dym_checkEngineV6_analytic.mos (new), dym_checkHumMod.mos (new), dym_checkRobotR3.mos (new)
adrpo 2011-11-20 15:42 Rev.: 10557

- performance benchmarks.

52660 lines of code changed in 11 files:

  • doc/performance/benchmarks/tests: HumModOMCTotal.mo (new 52655), README.txt (new), _LoopsTotal.mo (new 3), checkEngineV6.mos (new), checkEngineV6_analytic.mos (new), checkHumMod.mos (new), checkRobotR3.mos (new 1), instEngineV6.mos (new), instEngineV6_analytic.mos (new), instHumMod.mos (new), instRobotR3.mos (new 1)
Generated by StatSVN 0.7.0