Sun Java Solaris Communities My SDN Account Join SDN
 
Sun Studio - Technical Articles & Tips

Sun Studio Tools for Parallel Programming in Multi-Core Environments

Two critical forces are shaping the direction of software development. One is the deep adoption of parallel computing. The other is the move toward Service Oriented Architecture. The current technologies of chip multiprocessor (CMP) and chip multithreading (CMT) processor design, horizontal-scaled systems, near zero latency interconnects, and new web service standards all accelerate both forces into reality and adoption everywhere. It is quite easy to predict that most desktop machines or even laptops will be powered by multi-core or CMT processors over next few years. But how prepared are the software developers and tool vendors for the challenge of working in parallel computing environments?

The scientific and engineering communities adopted parallel computing to solve their large scale complex problems a long time ago. But parallel programming development has always been quite challenging, even for advanced black-belt developers. This also raises more difficult issues of productivity, scalability and reliability. The challenges of parallel computing are not new to Sun. With the Sun Studio software, the developer has a complete set of tools and an integrated environment for high performance parallel computing.

What About Throughput Computing and Multi-Core Environments?

OpenMP - Shared Memory Programming Model

  • OpenMP.org Website
    The OpenMP Application Program Interface (API) supports multi-platform shared-memory parallel programming in C/C++ and Fortran on all architectures, including Unix platforms and Windows NT platforms. Jointly defined by a group of major computer hardware and software vendors, OpenMP is a portable, scalable model that gives shared-memory parallel programmers a simple and flexible interface for developing parallel applications for platforms ranging from the desktop to the supercomputer.
  • OpenMP API Specifications
    The official OpenMP API specifications can be downloaded from this site in PDF or HTML.
  • Article: Sun Studio Support for OpenMP
    This paper presents an overview of the OpenMP model of computation, and describes OpenMP support in the Sun Studio compilers and tools.
  • Article: Detecting and Avoiding OpenMP Race Conditions in C++
    This article discusses some common scenarios that cause data race conditions in C++ and provides easy coding alternatives to avoid them.
  • Sun Studio: OpenMP API User's Guide
    The current Sun Studio compiler documentation for OpenMP.

MPI - Distributed Memory Programming Model

  • The Message Passing Interface (MPI) Standard
    The MPI home pages from Argonne National Labs.
  • MPICH Home Page
    MPICH provides an MPI implementation for important platforms, including clusters, SMPs, and massively parallel processors.
  • LAM/MPI Parallel Computing
    LAM/MPI is a high-quality open-source implementation of the Message Passing Interface specification, including all of MPI-1.2 and much of MPI-2.
  • MPICH Implementation on Solaris 10 by APSTC
  • MVAPICH: MPI Over InfiniBand Project
    This web page focuses on research and development of high performance and scalable designs for MPI-1 and MPI-2 on InfiniBand as well as other RDMA-enabled interconnects.
  • Open Source MPI Project
    Open MPI is a project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. A completely new MPI-2 compliant implementation, Open MPI offers advantages for system and software vendors, application developers and computer science researchers.

Sun Tools For Parallel Computing

Important Software Development Issues

Community, Education and Support

Migration

(Last updated January, 2008)
 
Related Links