While there are many ways to go about tuning your program, some approaches are more effective than others. Certain approaches might be particularly useful for a certain class of programs, while other ways may be more general. We describe two general approaches for tuning: one for general Shared Memory systems and another for Clusters using MPI. The last section provides shortcuts you can take within the general methods if you have specific information about your program that can lead you to specific tools.
For more complete information about compiler optimizations, see our Optimization Notice.