Combining Linux Message Passing and Threading in High-Performance Computing
Linux Server Appliance EDI Linux Software: Message passing is an important tool for sites relying on HPC on Linux-based systems. It enables large data sets to be tackled with ease and often represents an important adjunct to threading-based solution design.

by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel Corp.

Message passing is an important tool for sites relying on high-performance computing (HPC) on Linux systems. It enables large data sets to be tackled with ease and often represents an important adjunct or alternative to thread-based solution design. Integrating message passing and threading has its challenges, however.

High-performance computing is characterized by running multiple tasks in parallel. These tasks tend to be similar in nature and can be run on different systems (as in a cluster or a grid), different processors (on a single system) or even different execution pipelines (as on processors with Hyper-Threading Technology). HPC systems add computing power by the addition of discrete computing engines (be they blades, nodes, or processors) rather than by upgrading existing processors. This aspect underscores one of the salient aspects of HPC: the number of executing processes can vary, and so software must be architected to scale dynamically across the number of available execution units.

One way to write software that dynamically takes advantage of a variable number of execution resources is to use OpenMP, a set of threading interfaces and tools that greatly simplifies threaded programming. Using OpenMP pragmas (in C/C++, or directives in Fortran), you can generate an executable that determines at run time the appropriate number of threads to create and then distribute a workload over these threads dynamically. OpenMP's other advantages, such as portability across a wide set of platforms, are detailed in a series of articles on this Web site. These articles also explain how to get started with OpenMP. For additional information, go to the OpenMP home page at www.openmp.org.

To read more, click link below.

Subscribers who liked this article also read:
Optimized CPU-based skinning for 3D games
by Leigh Davies, application engineer, Developer Relations Division, I...

If you're interested in this topic, these articles may be helpful:

Linux + mainframe +integration: a formula for success?
by Mark Lillycrop, CEO, Arcati Ltd. If the lack of integration and ...
Dual processors, Hyper-Threading Technology, and multi-core systems
by Sunish Parikh, software performance engineer, and Thomas E. Martine...
Intel® Fortran Compiler 8.1 for Linux
Deliver outstanding performance on single and multiprocessor computers...
Intel® Cluster Toolkit 1.0 for Linux
The new Intel® Cluster Toolkit 1.0 provides five software developm...
High performance Linux clustering, part 2: build a working cluster - writing parallel programs and configuring your system
by Aditya Narayan, founder, QCD Microsystems. First published by IBM a...

Related Jobs:

Network/Server Support #3265191 - CO - Denver - Ajilon
Description : Have the best of both worlds-an entrepreneurial work s...
Sr. Software Engineer, Systems Engineering #2074 - CA - San Diego - Sony Corporation of America
Sr. Software Engineer - Systems Engineering Job Title Location Date...
Technical Administrator #1144171858 - TX - Richardson - Fossil
Technical Administrator Job ID: 1144171858 Location: Richardson, ...
Solaris Administration - Redhat #3265840 - TX - Houston - Ajilon
Description : As a Systems Administrator, you will support and maint...
Application Developer #2392348 - OH - Columbus - Ajilon Consulting
Title : Application Developer Posted : 10-11-2005 Contact ...
Senior Developer #3064684 - NY - New York - Ajilon
Description : Mid - Senior Level JAVA Swing/C/C++ UNIX Developer ...
AIX Unix Administrator #19206 - IL - Lincolnshire - MSX International
Position Title: AIX Unix Administrator Description: We are currently...
Developer #3890 - AZ - Tempe - Insight Enterprises, Inc.
Position Summary: Developers work under supervision, assisting in prep...
MQ Systems Administrator #178039 - MN - Plymouth - UnitedHealth Group
MQ Systems Administrator - Plymouth, MN – 178039 Job Descr...
Java Developer / Lead / Architect - NY - New York - Cybernet Software Systems
Desired Technical Profile: Excellent hands on experience with Java ...