13.07.2015 Views

Intel(R) - Computational and Systems Biology at MIT

Intel(R) - Computational and Systems Biology at MIT

Intel(R) - Computational and Systems Biology at MIT

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7 <strong>Intel</strong>® M<strong>at</strong>h Kernel Library User’s GuideThe wrapper for FFT is more complic<strong>at</strong>ed because of supporting the lifecycle for FFTdescriptor objects. To compute a single Fourier transform, an applic<strong>at</strong>ion needs to call theFFT software several times with the same copy of n<strong>at</strong>ive FFT descriptor. The wrapperprovides the h<strong>and</strong>ler class to hold the n<strong>at</strong>ive descriptor while virtual machine runs Javabytecode.The wrapper for VSL RNG is similar to the one for FFT. The wrapper provides the h<strong>and</strong>lerclass to hold the n<strong>at</strong>ive descriptor of the stream st<strong>at</strong>e.The wrapper for the convolution <strong>and</strong> correl<strong>at</strong>ion functions mitig<strong>at</strong>es the same difficulty ofthe VSL interface, which assumes similar lifecycle for "task descriptors". The wrapperutilizes the ESSL-like interface for those functions, which is simpler for the case of1-dimensional d<strong>at</strong>a. The JNI stub additionally enwraps the MKL functions into the ESSL-likewrappers written in C <strong>and</strong> so "packs" the lifecycle of a task descriptor into a single call tothe n<strong>at</strong>ive method.The wrappers meet the JNI Specific<strong>at</strong>ion versions 1.1 <strong>and</strong> 5.0 <strong>and</strong> so must work withvirtually every modern implement<strong>at</strong>ion of Java.The examples <strong>and</strong> the Java part of the wrappers are written for the Java languagedescribed in “The Java Language Specific<strong>at</strong>ion (First Edition)” <strong>and</strong> extended with thefe<strong>at</strong>ure of "inner classes" (this refers to l<strong>at</strong>e 1990s). This level of language version issupported by all versions of Sun's Java Software Development Kit (SDK) <strong>and</strong> comp<strong>at</strong>ibleimplement<strong>at</strong>ions starting from the version 1.1.5, th<strong>at</strong> is, by all modern versions of Java.The level of C language is "St<strong>and</strong>ard C" (th<strong>at</strong> is, C89) with additional assumptions aboutinteger <strong>and</strong> flo<strong>at</strong>ing-point d<strong>at</strong>a types required by the <strong>Intel</strong> MKL interfaces <strong>and</strong> the JNIheader files. Th<strong>at</strong> is, the n<strong>at</strong>ive flo<strong>at</strong> <strong>and</strong> double d<strong>at</strong>a types are required to be the sameas JNI jflo<strong>at</strong> <strong>and</strong> jdouble d<strong>at</strong>a types, respectively, <strong>and</strong> the n<strong>at</strong>ive int is required to be4-byte long.Running the examplesThe Java examples support all the C <strong>and</strong> C++ compilers th<strong>at</strong> the <strong>Intel</strong> MKL does. Themakefile intended to run the examples also needs the make utility, which is typicallyprovided with the Linux* OS.To run Java examples, Java SDK is required for compiling <strong>and</strong> running Java code. A Javaimplement<strong>at</strong>ion must be installed on the computer or available via the network. You maydownload the SDK from the vendor website.The examples must work for all versions of Java 2 SE SDK. However, they were tested onlywith the following Java implement<strong>at</strong>ions:• from the Sun Microsystems Corpor<strong>at</strong>ion (http://sun.com)• from the BEA (http://bea.com)See the <strong>Intel</strong> MKL Release Notes about the supported versions of these Java SDKs.7-12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!