ALGLIB 3.8.1 is released!
This new release of ALGLIB features two major improvements in Commercial Edition:
1) C# interface to highly optimized native computational core,
2) experimental integration with Intel MKL.
1. Prior to 3.8.1, ALGLIB for C# was 100% NET application.
Being pure NET assembly, it was portable and easy to integrate into existing NET projects.
However, on some important computational problems (linear algebra, large scale data mining)
C# performance was 2x-4x times slower than that of optimized native code.
Starting from 3.8.1, ALGLIB for C# includes both pure NET computational core – and its native companion,
highly optimized native core with C# interface.
Both computational cores provide same functionality, and even more – they provide 100% identical C# interface.
You can easily plug HPC core into existing applications which use previous versions of ALGLIB.
As for ALGLIB 3.8.1, HPC core can be used only under Windows systems.
However, we plan to introduce support for LSB-compliant Linux systems in the next release.
One more limitation – HPC core is not included in ALGLIB for VB.NET,
although in next ALGLIB release VB users will have same level of performance as C# programmers.
2. Second important improvement is integration with Intel MKL, which can be accessed from C++ and C#.
Intel MKL is used internally to accelerate linear algebra algorithms.
We obtained developer's license from Intel which allows us to ship precompiled ALGLIB binaries linked with Intel MKL.
C++ version of ALGLIB now includes precompiled static library <code>alglibxx_hpc.lib</code> (ALGLIB core),
<code>mkl4alglibxx.lib</code> (MKL imports) and <code>mkl4alglibxx.dll</code> (MKL core).
When you link your application with these precompiled static/dynamic libraries,
ALGLIB will use MKL internally to provide same interface –
but with 2x-4x (depending on hardware being used) increase in linear algebra performance.
As for C#, this version of ALGLIB includes native computational core (as we told before).
It is already linked with Intel MKL, so you don't need additional steps in order to use MKL from C#.
We want to make several notes here.
First, due to licensing restrictions, you can not use Intel MKL directly.
You can use ALGLIB functionality which is internally accelerated by MKL's functions,
but you can not access these functions directly.
We do not provide you MKL header files because we do not have right to do so.
Second, because MKL support is in the experimental stage, for now we ship only Windows libraries.
Linux binaries are planned to be included in the next release of ALGLIB.
Finally, during implementation of this subproject we received several important suggestions and ideas from developers of local Intel's office,
and we would like to thank them (especially Gennady Fedorov and Sergey Maidanov) for their help.
3. These improvements can be used only by commercial users
who own license for new multi-threaded branch of ALGLIB.
If you bought your license before release of 3.8.0 and didn't upgraded your license yet,
it is good time to consider an upgrade.
Upgrade is done for free,
the only thing we need from you is a formal confirmation that you agree with new licensing terms.
In addition to improvements mentioned above, we made several minor fixes
in both Commercial and Free editions of ALGLIB
and fixed one bug in the MinBLEIC optimizer
(of course, bug fixes were included in all editions – commercial and free).