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:

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...
Intel® Cluster Toolkit 1.0 for Linux
The new Intel® Cluster Toolkit 1.0 provides five software developm...
Dual processors, Hyper-Threading Technology, and multi-core systems
by Sunish Parikh, software performance engineer, and Thomas E. Martine...
Linux + mainframe +integration: a formula for success?
by Mark Lillycrop, CEO, Arcati Ltd. If the lack of integration and ...
Intel® Fortran Compiler 8.1 for Linux
Deliver outstanding performance on single and multiprocessor computers...

Related Jobs:

IS Quality Assurance Analyst #175504 - CT - Hartford - UnitedHealth Group
IS Quality Assurance Analyst - Hartford, CT – 175504 Job D...
Solaris Administration - Redhat #3265840 - TX - Houston - Ajilon
Description : As a Systems Administrator, you will support and maint...
Senior Developer #3064684 - NY - New York - Ajilon
Description : Mid - Senior Level JAVA Swing/C/C++ UNIX Developer ...
Technical Administrator #1112328194 - TX - Richardson - Fossil
Technical Administrator Job ID: 1112328194 Location: Richardson, ...
Developer #3890 - AZ - Tempe - Insight Enterprises, Inc.
Position Summary: Developers work under supervision, assisting in prep...
Sr. Software Engineer, Systems Engineering #2074 - CA - San Diego - Sony Corporation of America
Sr. Software Engineer - Systems Engineering Job Title Location Date...
Java Developer / Lead / Architect - NY - New York - Cybernet Software Systems
Desired Technical Profile: Excellent hands on experience with Java ...
Java Software Engineer - IL - Chicago - York Enterprise Solution
Job Location Illinois-Chicago Job Description Senior Java Engine...
MQ Systems Administrator #178039 - MN - Plymouth - UnitedHealth Group
MQ Systems Administrator - Plymouth, MN – 178039 Job Descr...
Network Consultant #173453 - MN - Plymouth - UnitedHealth Group
Network Consultant - Plymouth, MN – 173453 Job Description...