SunStudio on Linux Tip #1: CMT support
By vtatkar on Aug 04, 2006
Multi-Threading is here! Multi-core is here! Its time to get ready! There is no more free lunch; its over!
OK, now that I'm done sloganizing :-), there is really a serious need that I think SunStudio Compilers and Tools on Linux are well-positioned to satisfy: Developing high Performance Application for the emerging multi-core systems!
SunStudio on Linux offers the following distinct benefits:
- Support for various parallel programming paradigms: Unix and POSIX threads, OpenMP, MPI, automatic parallelization
- Best Compiler SPECfp performance on this planet
- Best OpenMP Performance upto 8 threads (max on current 4-socket AMD systems) and the Best Proven Scalability(95% upto 48 jobs)
- MT-aware Debugger, Performance Analyzer
- Data Race Detection Tool, Lock_lint for Static analysis (C) and Global Program Checker (Fortran)
- Performance libraries (libm, libsunperf, etc) tuned for multithreaded
- Superior dmake for parallel jobs and distributed (cluster) builds that is also GRID aware
And also, several articles published on SunStudio Developer Portal that talk about various Chip-Multithreading, Multicore chips and Parallel programming aspects. Here is an interesting sprinkling of papers that you could read to get started on the topic
The Challenge of Developing Applications for Parallel Computing
This article discusses the important parallel application development issues now emerging from the parallel computing technology trend. It introduces and explains some of the most important industry standards such as OpenMP, MPI, and Grid Computing, and describes the current state of parallel application software development.
The Challenge of Race Conditions in Parallel Programming
This article discusses general and data race condition that arise in parallel programming. While data race condition problems are common and easy to fix, harder to avoid general race problems can also occur. A race condition could be the symptom of deeper design problems. A simple parallel partitioning example illustrates these various race condition issues and how to avoid them. DataRace Detection Tool
This article talks about using DRDT to detect data-races that occur during the execution of a single, multi-threaded process.
Lock_Lint - Static Data Race and Deadlock Detection Tool for C
The command-line utility lock_lint analyzes the use of mutex and multiple readers/single writer locks, and reports on inconsistent use of these locking techniques that may lead to data races and deadlocks in multi-threaded applications.
What is Throughput Computing all about
This (PDF) paper discusses what Sun's Throughput Computing initiative and gives a background about Software, Hardware and System issues Sun is endeavoring to solve. It introduces the terms CoolThreads and explains what CMT means and how Sun is satisfying business needs through the new UltraSPARC design
I'd recommend that you bookmark this SunStudio/CMT site which has a collection of interesting papers on these topics
- Throughput Computing in Multicore Environments
- Parallel Programming issues and Multithreading tools
- Community support via Forums, SDN, OpenSolaris
- Migration Information including issues between Linux/x86, Solaris/x86 and Solaris/SPARC
And finally, all of this works just as well on Solaris as well. In the case of MultiThreaded application development, debugging and analysis, it works even better!