Application Code Optimization
From Siwiki
Contents |
[edit] Which Compilers and Optimizations Should I Use
In general, the Sun Forte compilers produce the fastest code for SPARC platforms.
A good place to start on how to optimize is with the Sun Forte [White Paper] on optimial use of the compilers.
[edit] How should I Optimize my Code?
[Bart Smaalders] writes about the things to avoid when writing code in his paper on Performance_Antipatterns
Application scalability is the hottest topic lately, due to the agressive ramp up of CMT processors. Our paper on CMT and Scalability is a primer for this topic.
[edit] Tools For Software Development
Cool Tools for SPARC Systems - Overview This presentation shows the how the Cool Tools can work together to support the stages of porting, building, tuning, and debugging an application. Presenter, Dr Darryl Gove is a Senior Staff Engineer in the SPARC compiler team. He works on analysis and optimisation of customer codes and benchmarks.
- GCC for SPARC Systems: C/C++ compiler that dramatically improves the performance of applications that are normally compiled with gcc on SPARC systems. Download
- ATS: Automatic Tuning and Troubleshooting System (ATS) is a binary reoptimization and recompilation tool that can be used for tuning and troubleshooting applications. Download
- BIT: Binary Improvement Tool (BIT) works directly with SPARC binaries to instrument, optimize, and analyze them for performance or code coverage. Download
- Faban: Faban is the consolidation of our benchmark development and management knowledge and experience. It is a facility for developing and running benchmarks. It has two major components, the Faban harness and the Faban driver framework. Download
- SPOT: Simple performance optimizations tool (SPOT), produces a report on the performance of an application. The spot report contains detailed information about various common conditions that impact performance. Download
- Thread Analyzer: The Thread Analyzer analyzes the execution of a multi-threaded program and checks for a variety of multi-threaded programming errors such as data races. Download
[edit] Tools For Deployment
- CoolTuner: CoolTuner is a software tool designed to automatically tune a Sun Fire T1000 or T2000 system, applying patches and setting system parameters to bring the system up to best practice recommendations. The tool is also capable of auto-updating itself over the Internet to take advantage of future tuning recommendations and to apply new recommended patches.
- Cool Stack: Optimized Open Source Software Stack, (Cool Stack), is a collection of commonly used Open Source software optimized for the Sun Solaris OS (TM) / UltraSPARC (R) platform (using Sun Studio 11 compilers) for the best out-of-the-box performance. The Open Source apps included are: Apache, MySQL, Perl, PHP, Squid and Tomcat.
- cooltstCoolThreads Selection Tool, (cooltst), applies simple heuristics to determine whether a workload from one platform is a reasonable candidate for Sun Fire T2000/T1000 servers. </li>
[edit] Tools For SPARC Architecture
- SHADE: SHADE is a fast SPARC instruction set simulator that is used to perform a variety of analysis functions on SPARC executables.
- RST: RST is a trace format for SPARC instruction-level traces.
[edit] Sun Tools
- Sun Studio 11 Compilers and Tools: Sun Studio 11 software is the latest release of record-setting, optimizing compilers and tools for the C, C++ and Fortran developer. This release delivers the highest optimizations and the best performance in the development of scalable 32-bit and 64-bit applications on Sun's newest hardware platforms including the latest multi-core UltraSPARC, x64 and x86 platforms. And Sun Studio 11 software now removes the price barrier and is available for Free!
- Performance Analyzer: The Performance Analyzer consists of two tools. The Collector collects performance data by profiling and tracing function calls. The data can include call stacks, microstate accounting information, thread-synchronization delay data, hardware-counter overflow data, MPI function call data, memory allocation data and summary information for the operating system and the process. The Collector can collect all kinds of data for C, C++ and Fortran programs as well as profiling applications written in Java. Documentation
- mediaLib: A collection of tuned libraries for data intensive imaging, video, audio, algebra, graphics, and signal processing. mediaLib version 2.4 adds improved performance for UltraSPARC T1 processor based systems and a multi-threaded layer taking advantage of multi-core (CMT) systems.
