After receiving numerous requests, we have altered the license with which CIlib is now released. The up coming version will be released using the LGPL and not the GPL.
We hope that this will aid our users
As always, feedback is appreciated.
It’s been some time since the last release, but we are please to announce the release of CIlib 0.7.4.
Numerous changes have been applied in this release, the most notable of them all being the manner in which threading has altered for simulation instances. CIlib will now make full use of the available number of processing units available. Nett result should be a very real improvement in the speed with which simulations will execute.
Head on over to the Google Code page and download a copy.
The full ChangeLog is as follows:
- Rename of the Random interface to RandomProvider. Prevents ambiguity.
- Removed container.Array classes.
- Created an ArithmeticOperator enum class to replace the MutationOperatorStrategy classes.
- Updates to the simulator to prevent outside acces and simplified a lot of the internal classes. Dependency Injection was employed to achieve the simplifications.
- Thread level data output. All simulation threads are now completely independent – data from the simulations is maintained in temporary files and then merged once all simulations have completed execution.
- REMOVED: Removed a direct dependency to the JDK within the pom.xml. The enforcement of the Java version is now perfromed using the maven-enforcer-plugin. Additionally, versions have been defined for the plugins to prevent any problems with the build.
- REMOVED: The
bioinf packages have been removed. They will be added once again, when the implementation has been cleaned up. They were not up to standard.
- Corrected value for lower bound activation function.
- Prevented potential issue with an invalid FileReader object.
- Corrected multi-valued patterns.
- Corrected the implementation of Cauchy random numbers.
- Corrected implementations of the Quartic, Quadric, Himmelblau, Goldstein Price and HyperEllipsoid functions.
- Corrections to Selection API. The methods are now much more fluent. Many more updates are probably required to ensure that the API is as usable as what is required.
Activity is picking up
As a result we are hoping that other CIlib contributors will be posting their current activities to keep the rest of us informed.
Some changes are coming regarding PSO velocity updates and simulation speed increases.
When using the simulator, the current manner in which CIlib’s internal threading works could result in simulations actually slowing down.
This has never really been an issue in the past. Lately, however, we are seeing that it is becoming something which is more and more important. The generic nature of CIlib is a great benefit to all, but with such a generic nature, it often means that we need to extra careful with regards to performance.
In the past that was something that we didn’t really focus on, but we have spent some time lately making sure that the performance is better. To that end, the latest changes are looking very promising. There is currently some internal testing going on, with the aim to include these new performance changes in the 0.7.4 release. There is, however, something to note regarding these changes: Your XML specifications will need to be adapted slightly to cater for the rearrangement of logic.
These specification changes do not impact the algorithm or problem definitions at all, however, some changes are required on the measurement and simulation tags. More details will be provided once the API is a little more stable. For the meantime, if you have the itch to have a look, feel free to get a clone of the repository and checkout the pu branch.
Feedback is always welcome