Institute of Communication Networks and Computer Engineering (IKR)
IKR Simulation Library - Versions and Editions
Editions of the IKR SimLib
The IKR SimLib is currently in a transition phase and therefore
several release branches exist:
The IKR SimLib C++ Edition Version 2.6 is very stable and used
in many existing projects. In the future, this release will receive
only bug fixes.
The IKR SimLib C++ Edition Version 2.7 is rather new and contains
a new feature compared to the C++ Edition Version 2.6: This release
contains logic to run batches on different processor cores in
parallel (called "batch parallelization"). In computing environments
with a lot of processor cores this allows to reduce the duration of
(selected) simulations. In addition, this release supports the
separate simulation and combined evaluation of multiple instances of
the same simulation model with different random number seeds (a
simulation method called "independent replication"). The output
file format was changed to XML to better reflect the hierarchical
structure of the simulation model. The IKR SimLib C++ Edition
Version 2.7 will receive only bug fixes. We do not add new features
because we consider C++ as a dead end.
The new IKR SimLib Java Edition is currently in Version
2.8. This branch will receive bug fixes as well as new
features. We use it in most of our current and all of our new
projects. The current release 2.8.0 has all the features of the C++
Edition Version 2.7 (including the batch parallelization and the new
output file format) and some additional features like packing of
output files with bzip2-/lzma-compressors.
The new XML based output file format is structurally equivalent to
the formerly used flat file format. Due to XML the extraction of
values is not as simple as before but should be no problem with
appropriate tools.
Which IKR SimLib to choose?
If you are unsure which edition and/or revision to select, consider
the following:
If you have a (not small) existing project based on the IKR SimLib
C++ Edition in Version 2.6 and you see no benefits from using your
processing resources in parallel, then stay with the C++ Edition
Version 2.6 - there is no need to leave this stable release.
If you start with a new project and are not urged to use C++ then
select the Java Edition Version 2.8. This release is future oriented
and proved to be stable.
If you have existing projects based on the C++ Edition and expect
significant benefits from batch parallelization then consider
updating to the C++ Edition Version 2.7.
If you have small existing projects based on the C++ Edition then
consider updating to the Java Edition. We have ported several small-
to medium-sized projects and found porting these projects from C++
to Java rather simple and more than worth the effort. We experienced
a large improvement in development speed and observed no drawbacks
at all.