|
Parallel programs are not only challenging to develop - optimizing communication
patterns, data partitioning, responsibilities etc. can rival the development
challenge for all but embarrassing parallel problems. Profiler for parallel
programs can greatly assist the optimization and
fine-tuning phase by providing graphical feedback and statistics on time spent
by the application vs. the time spent by csWMPI II, the amount of data sent to
and from each process, etc. In this way developers have direct, visual means to
track down performance bottlenecks and to gain deeper understanding of different
approaches.
Vampir (now Intel Trace Analyzer) is a commercial profiler developed by the Pallas HPC
group (now part of Intel Software Laboratory). Vampir analyzes and displays trace files
generated by VampirTrace (now Intel Trace Collector). Trial versions of Vampir and
VampirTrace can be obtained on the following site:
http://www.pallas.com/e/products/vampir
More information on resellers can be found on Intel's Cluster Tools website:
http://www.intel.com/software/products/cluster
We have tested Vampir 4.0 for Redhat Linux 6.1 and VampirTrace 4.0 for Redhat 7.0 and
MPICH 1.2.3 on IA32 architectures. A special version of VampirTrace for csWMPI does not
exist at the time of writing, however any version for MPICH should work for csWMPI as
well. Notice that some Linux distributions do not come with libelf, a
needed by VampirTrace. This library can be downloaded from:
http://www.gnu.org/directory/libs/misc/libelf.html
To compile and link your application with VampirTrace you have to link with
the profiling version of csWMPI. This library is called
libpcsWMPI.a. Moreover, you will have to link with
libelf.a, libVT.a, libdwarf.a,
libpthread.a and libstd++.a.
For instance to compile the pi_calc example with VampirTrace and the profiling
version of the csWMPI library do the following:
gcc -o pi_calc pi_calc.c -lelf -lVT -ldwarf -lpcsWMPI -lrt -lpthread -lstdc++
Your application can now be run in a normal manner and trace files will be generated.
Please see the documentation distributed with Vampir and VampirTrace for further
information on how to configure and use those products.
|