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
|
(Last updated January, 2008)
|
|