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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Intel</strong>® M<strong>at</strong>h Kernel Library Structure 3To obtain sequential version of <strong>Intel</strong> MKL, in the Threading layer, choose the*sequential.* library to link (see Directory Structure in Detail).Note th<strong>at</strong> the sequential library depends on the POSIX threads library (pthread), which isused to make <strong>Intel</strong> MKL software thread-safe <strong>and</strong> should be included in the link line (seeLinking Examples in chapter 5).Support for ILP64 ProgrammingThe terms "LP64" <strong>and</strong> "ILP64" are used for certain historical reasons <strong>and</strong> due to theprogramming models philosophy described here:http ://www .unix.org/version2/wh<strong>at</strong>snew/lp64_wp.html .<strong>Intel</strong> MKL ILP64 libraries do not completely follow the programming models philosophy.However, the general idea is the same: use 64-bit integer type for indexing huge arrays,th<strong>at</strong> is, arrays with more than 2 31 -1 elements.It’s up to you to choose which interface to use. You should definitely choose LP64 interfacefor comp<strong>at</strong>ibility with the previous <strong>Intel</strong> MKL versions, as "LP64" is just a new name for theonly interface th<strong>at</strong> the <strong>Intel</strong> MKL versions lower than 9.1 provided. You should definitelychoose the ILP64 interface if your applic<strong>at</strong>ion uses <strong>Intel</strong> MKL for calcul<strong>at</strong>ions with huged<strong>at</strong>a arrays (of more than 2 31 -1 elements) or the library may be used so in future.The LP64 <strong>and</strong> ILP64 interfaces are supported in the Interface layer. Once the appropri<strong>at</strong>elibrary in the Interface layer is selected (see Directory Structure in Detail), all librariesbelow the Interface layer are compiled using the chosen interface.As the differences between the ILP64 <strong>and</strong> LP64 interfaces are out of scope of the <strong>Intel</strong> MKLReference Manual, you are encouraged to browse the include files, examples, <strong>and</strong> tests forthe ILP64 interface details. To do this, see the following directories, respectively:/include/examples/testsThis section shows• How the ILP64 concept is implemented specifically for <strong>Intel</strong> MKL• How to compile your code for the ILP64 interface• How to code for the ILP64 interface• How to browse the <strong>Intel</strong> MKL include files for the ILP64 interfaceThis section also explains limit<strong>at</strong>ions of the ILP64 support.3-5

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

Saved successfully!

Ooh no, something went wrong!