Computing Engine for .NET (C# and Visual Basic)
ILNumerics Compuiting Engine brings efficiency for numerical array codes to .NET. Its array based mathematical language is fully compatible to Matlab and numpy. Its algorithms run on any architecture supporting .NET. And its execution speed exceeds the speed of FORTRAN and any other language. You focus on the math - we do the rest!
The ILNumerics Computing Engine has been developed for scientists and engineers. We spent a lot of effort to make implementation of your mathematical algorithms as simple and efficient as possible while improving flexibility and performance.
- Transform your numpy, Matlab or Octave algorithms in much less time! Cheat Sheet
- Comprehensive selection of optimized toolboxes for interpolation, statistics, optimization, and more.
- Code once and run your algorithm on any hardware supported by .NET - without recompilation!
- Profit from expert performance without expert optimization knowledge!
- Keep your algorithms in maintainable state!
High Performance .NET
You know your math better than we do! We know how to make it fast! The Computing Engine releases you from having to deal with any native language- and computer architecture subtleties:
Processor caches, parallelization, memory bandwidth, hard to find pointer bugs, multithreading concurrency issues, complicated APIs. Often enough the complexity of the actual mathematical task is superseeded by the complexity of efficiently dealing with heterogeneous computing resources.
Our task is to give you the exact result in the shortest possible time. So you can stay in your domain and get the job done much more easily and in a fraction of time. By allowing to use an expressive syntax based on smart arrays you and your peers will easily understand the code when coming back to it next year - and the year after.
More advantages of ILNumerics:
- Auto parallelization: our Accelerator compiler takes your sequential codes and turns them into autonomously executing, parallel codes. They adopt to your parallel hardware at runtime and bring compatibility and efficiency far beyond traditional methods.
- Memory management: transparent reusage of array storages removes the performance impact caused by the GC.
- The size of ILNumerics arrays is not limited by the .NET heap. They can grow arbitrarily – far beyond 3 GB.
- ILNumerics easily connects to traditional, third-party libraries and platforms.
- Transparent optimizations: Our micro-JIT compilers deliver hardware-specific optimizations across low and high-level parallel computing environments. ILNumerics empowers computational tasks to autonomously distribute themselves, achieving performance that exceeds standard techniques and even hand-optimized code.
- Readily available high level interfaces to many standard numerical functionality, like FFT and matrix algebra.
- Seamless integration into the whole .NET ecosystem and into Visual Studio®.
Dive into the brand new ILNumerics Accelerator compiler: online docs.
Read more about the ILNumerics technology or learn how ILNumerics outperforms numpy and FORTRAN.
Clear and Simple Syntax
The ILNumerics Computing Engine extends popular .NET languages by convenient mathematical objects and functions. It supports the implementation and execution of numerical algorithms in a syntax similar to popular mathematical prototyping systems. Users familiar with numpy, Matlab® & Co. experience almost no learning curve. Nevertheless, ILNumerics is not a scripting language but stable production-ready technology!
The syntax of the ILNumerics Computing Engine includes all standard features used in the scientific community: n-dimensional arrays, flexible subarray creation and manipulation, large collection of algebraic functions as building blocks for own algorithms. Many customers value the simple and straightforward translation of existing scripts from numpy, Matlab, Octave, FreeMat, Scilab, Julia, etc. ... into expressive, maintainable ILNumerics codes, which automatically run faster than any other language.
Quick Charts
ILNumerics for MatlabUsers (PDF) |
Find out more about our technology
Compatibility
The ILNumerics Computing Engine sits on top of the .NET infrastructure and can be used with C# or Visual Basic in projects targeting .NET. Resulting modules are .NET assemblies. No special integration is necessary. They can be run on any machine supporting .NET. C# algorithms are automatically accelerated.
ILNumerics Computing Engine algorithms target "AnyCPU": once built they run on 32 and 64 bit platforms without recompilation.