Extreme Optimization™: Complexity made simple.

Numerical Components
for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Contact us
Introduction
Deployment Guide
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand ReferenceReference
  • Home
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Deployment Guide
Collapse imageExpand ImageCopy imageCopyHover image
       




Deployment Guide

This guide documents the procedures for the deployment and configuration of applications built using the Extreme Optimization Numerical Libraries for .NET.

Redistributable files

The following files may be distributed as part of your application:

  • Main assembly:
    • installDir/bin/Extreme.Numerics.Net40.dll
  • Assemblies supporting specific functionality:
    • installDir/bin/Extreme.Generic.Net40.dll
    • installDir/bin/Extreme.Numerics.SinglePrecision.Net40.dll
  • Native linear algebra and signal processing libraries (double precision)
    • installDir/bin/Extreme.LinearAlgebra.Net40.x64.Parallel.dll
    • installDir/bin/Extreme.LinearAlgebra.Net40.x64.Serial.dll
    • installDir/bin/Extreme.LinearAlgebra.Net40.x86.Parallel.dll
    • installDir/bin/Extreme.LinearAlgebra.Net40.x86.Serial.dll
    • installDir/bin/Extreme.SignalProcessing.Net40.x64.Parallel.dll
    • installDir/bin/Extreme.SignalProcessing.Net40.x64.Serial.dll
    • installDir/bin/Extreme.SignalProcessing.Net40.x86.Parallel.dll
    • installDir/bin/Extreme.SignalProcessing.Net40.x86.Serial.dll
  • Native linear algebra and signal processing libraries (single precision)
    • installDir/bin/Extreme.LinearAlgebraSP.Net40.x64.Parallel.dll
    • installDir/bin/Extreme.LinearAlgebraSP.Net40.x64.Serial.dll
    • installDir/bin/Extreme.LinearAlgebraSP.Net40.x86.Parallel.dll
    • installDir/bin/Extreme.LinearAlgebraSP.Net40.x86.Serial.dll
    • installDir/bin/Extreme.SignalProcessingSP.Net40.x64.Parallel.dll
    • installDir/bin/Extreme.SignalProcessingSP.Net40.x64.Serial.dll
    • installDir/bin/Extreme.SignalProcessingSP.Net40.x86.Parallel.dll
    • installDir/bin/Extreme.SignalProcessingSP.Net40.x86.Serial.dll
  • Intel Threading Libraries
    • installDir/bin/x64/libiomp5md.dll
    • installDir/bin/x86/libiomp5md.dll

What to deploy

Not all redistributable files need to be installed with your application. In fact, most installations will require just the main assembly, with optionally two or three more native assemblies.

  • All installations require the Extreme.Numerics.Net40.dll assembly.
  • If you use any of the generic classes, you also require Extreme.Generic.Net40.dll.
  • If you use any of the classes that are specialized for single-precision floating-point numbers, you also require Extreme.Numerics.SinglePrecision.Net40.dll.

The Extreme Optimization Numerical Libraries for .NET also contain several sets of highly optimized native libraries built on Intel®’s Math Kernel Library. There is a total of 18 files, including 16 .NET assemblies and 2 supporting dll’s that fall into this category. The native assemblies follow this naming scheme:

Extreme.category. .NET version .platform.parallelization.dll

The meaning of the parts is the following:

category
the type of computations performed by the assembly. There are currently 4 possibilities:
  • LinearAlgebra: vector and matrix functions
  • LinearAlgebraSP: vector and matrix functions (single precision)
  • SignalProcessing: FFT and other DSP functions
  • SignalProcessingSP: FFT and other DSP functions (single precision)
.NET version
currently, this is always Net40, indicating that the library requires version 4.0 or later of the .NET runtime.
Platform
indicates the processor architecture for which the code was optimized. Possible values are x86 and x64.
Parallelization
indicates whether the assembly uses parallelization. Possible values are serial and parallel.

In addition, there are two supporting assemblies, one for each platform, that contain the shared threading library for the Intel Math Kernel Libraries. Both are called libiomp5md.dll. They can be found in the x86 and x64 folders under the bin folder. This file is needed by the parallel version of the native libraries.

You only need to deploy the assemblies you actually use. For example, most applications will not use any of the single precision types, and so won’t require the *.LinearAlgebraSP.* or *.SignalProcessingSP.* assemblies. If you don’t use any FFT’s, you don’t need the signal processing assemblies, either. The native libraries only give an advantage when working with larger problems. If your problems are relatively small, the native libraries may be of no benefit to you and there is no reason to deploy them with your application.

Finally, you need to decide on whether to deploy the serial or parallel version of the libraries. As a rule:

  • If your application is multi-threaded, and calls the Extreme Optimization Numerical Libraries for .NET from multiple threads, you should use the serial library.
  • If your application only calls the Extreme Optimization Numerical Libraries for .NET from a single thread, you can safely use the parallel library.

Send comments on this topic to support@extremeoptimization.com

Copyright (c) 2004-2011 ExoAnalytics Inc.

Copyright © 2003-2013, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.