FAQ Parallel Programming And Multi-Core Enabling

Categories:

Q - How do I get started with parallel programming and multi-core enabling?

 

A - We've organized a list of our best getting started documents on the following page:

http://software.intel.com/en-us/articles/getting-started-with-parallel-programming-for-multi-core

 

Q - If I only have time to read one paper to get me started on parallel programming, which one should it be?

 

A - Read "8 Simple Rules for Designing Threaded Applications" by Dr. Clay Breshears. This article gives eight simple rules that you can add to your palette of threading design methods. By following these rules, you will have more success in writing the best and most efficient threaded implementations of your applications:

http://software.intel.com/en-us/articles/8-simple-rules-for-designing-threaded-applications

 

Q - Where do I get support for threading and parallel programming questions?

 

A - Our enabling engineers, the Intel® tools support team, and outside professionals monitor our discussion forums. Please post your questions here:

http://software.intel.com/en-us/forums/threading-on-intel-parallel-architectures/

 

Q - How do I get more involved with the parallel programming community?

 

A - I'd start by reading the discussions on the Threading on Intel Parallel Architectures forum and joining in the discussion:

http://software.intel.com/en-us/forums/threading-on-intel-parallel-architectures/

Another good place to engage in the ongoing online conversation is the multi-core blog, where Intel engineers and guest community members post their thoughts on a wide variety of multi-core and parallel programming issues:

http://software.intel.com/en-us/blogs/category/multi-core/

 

Q - Where can I get information about developing software for Intel® Core™ i7 and Intel® Xeon® 5500 series (Intel® microarchitecture codename Nehalem) processors?

 

A - Intel's newest processors offer multiple cores, Intel hyper-threading, Streaming SIMD Extensions 4.2 (SSE4.2), multi-level caches, and dynamic power management. You can learn more about developing software for these new capabilities and download a software development kit at:

/en-us/articles/intel-next-generation-intel-core-i7-processor-family-sdk

 

Q - Do you have a free application that can help me detect how concurrently my application executes?

 

A - We offer a free concurrency checking utility. To learn more and download the tool, go to:http://software.intel.com/en-us/software-assessment (currently requires Intel® Software Partner membership)

 

Q - How do I detect the number of cores on my system?

 

A - Intel offers an API to detect IA-32 and x64 platform CPU characteristics including Hyper-Threading Technology, instruction set extensions like Streaming SIMD Extensions 2 (SSE2), and the processor's cache configuration. You can learn more about the API and download the source code at:

http://software.intel.com/en-us/articles/api-detects-ia-32-and-x64-platform-cpu-characteristics

 

Q - Do you have some recommended books that I can read to get started?

 

A - We work to keep an updated list of technical books on parallel programming at:

http://software.intel.com/en-us/

 

Q - Where can I go for training on parallel programming and concurrent application development?

 

A - We've set up a place to get you started with learning how to develop parallel programs and concurrent applications:

http://software.intel.com/en-us/courseware/

 

Q - How do I get started using OpenMP*?

 

A - We have a great white paper that covers the basics of getting started with OpenMP*:

http://software.intel.com/en-us/articles/getting-started-with-openmp

 

Q - I'm a Java* developer. How do I get started?

 

A - The Java* Resource Center is a collection of resources to help you optimize your Java* applications for Intel® architecture:

http://software.intel.com/en-us/articles/java-resources

For more information on Java*, see www.java.com.

 

Q - Where do I go to get a list of all the parallel programming technical terms?

 

A - We've compiled a list of commonly used parallel programming technical terms for you to reference:

http://software.intel.com/en-us/blogs/2008/05/27/parallel-programming-glossary-of-technical-terms

 

Q - What tools, code and information do you have for game developers?

 

A - We would recommend that you check out the Smoke Game Technology Demo, a free download with source code. Smoke is a framework to support n-way threading of game technologies for more accurate physics, smarter AI, more particles, and/or a faster frame rate:

http://software.intel.com/en-us/articles/smoke-game-technology-demo

 

Q - What libraries and templates do you offer for parallel application development?

 

A - Intel® Threading Building Blocks (Intel® TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is a library that helps you take advantage of multi-core processor performance without having to be a threading expert. Intel TBB is not just a threads-replacement library. It represents a higher-level, task-based parallelism that abstracts platform details and threading mechanisms for scalability and performance:

http://www.threadingbuildingblocks.org/

 

Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of multicore-ready, highly optimized software functions for digital media and data-processing applications. Intel IPP offers thousands of optimized functions covering frequently-used fundamental algorithms. Intel IPP functions are designed to deliver performance beyond what optimized compilers alone can deliver:

http://software.intel.com/en-us/intel-ipp/

 

Intel® Math Kernel Library (Intel® MKL) is a library of highly optimized, extensively threaded math routines for science, engineering, and financial applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more. Offering performance optimizations for next-generation Intel architecture, it includes improved integration with Microsoft Visual Studio*, Eclipse*, and XCode*. Intel MKL allows for full integration of the Intel Compatibility OpenMP* run-time library for greater Windows*/Linux* cross-platform compatibility:

http://software.intel.com/en-us/intel-mkl/

 

For more complete information about compiler optimizations, see our Optimization Notice.

Comments

thiamchunkoh's picture

The frequent asked Question and Answer is very informative with it own right. The hyperlinks have shown me the way to program parallel programming and the IA 32 and IA 64 architecture and the way to program Multicore Proceesor with the MP++ library and templeates offer for parallel application developement (API and MPI) for Java EE platform and Microsoft.Net Platform and as well as Intel® Threading Building Blocks (TBB) offers a rich and complete approach to expressing parallelism in a C++ program, Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of multicore-ready, highly optimized software functions for digital media and data-processing applications and Intel® Math Kernel Library (Intel® MKL) is a library of highly optimized, extensively threaded math routines for science, engineering, and financial applications that require maximum performance. The Glossary is a good resources to understand the technical terms on Parallel Programming and High Performance Computing (CLUSTER, GRID and CLOUD) and to Intel offers an API to detect IA-32 and x64 Platform CPU Characteristics including Hyper-Threading Technology, instruction set extensions like Streaming SIMD Extensions 2 (SSE2), and the processor's cache configuration.

Emeritus Professor Koh Thiam Chun