Differences between revisions 1 and 28 (spanning 27 versions)
Revision 1 as of 2010-05-14 12:57:37
Size: 282
Comment:
Revision 28 as of 2010-10-13 16:09:44
Size: 2842
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
----
Line 5: Line 5:
----
Line 6: Line 8:
The Intel Cluster Toolkit is a collection of MPI related tools, which is helpful when debugging, fine tuning and analyzing large MPI applications. ICT includes:

 * Intel C++ Compiler 11.1
 * Intel Debugger 11.1
 * Intel MPI Library 3.2
 * Intel MPI Benchmarks 3.2
 * Intel Trace Analyzer1 and Trace Collector 7.2
Line 8: Line 17:
Each of this parts and its use at the [[Cluster|cluster environment]] in DESY Zeuthen is described next.
Line 10: Line 20:
Intitialize the Intel compiler and Intel MPI environment:
Line 11: Line 22:
{{{#!c
ini ic openmpi_intel
}}}
Initialize ICT environment:

{{{#!c

 source /opt/intel/itac/8.0.0.011/bin/itacvars.sh
 source /opt/intel/impi/4.0.0.028/bin/mpivars.sh
 source /opt/intel/ictce/4.0.0.020/ictvars.sh
 source /opt/products/idb/11.0/bin/ia32/idbvars.sh
 export I_MPI_CC=/opt/products/bin/icc

}}}
Line 12: Line 37:
Add
Line 13: Line 39:
== Producing tracing information == {{{
LDFLAGS = -L$(VT_LIB_DIR) -lmpi $(VT_ADD_LIBS)
}}}
to the IMB Makefile.
Line 15: Line 44:
== Viewing tracing information and fine tuning == == MPD daemons ==
The first step in setting up the MPD daemons, which are actually the environment for strating the parallel applications, is to set up an SSH connectivity environment with the help of the sshconnectivity.exp script and the machines.LINUX file. The script is available in the attachment list at the end of this page. An example machines.LINUX (as well as mpd.hosts) file(s) could look like this:
{{{#!c
pax00
pax01
pax02
pax03
}}}
Line 17: Line 53:
The mpd.hosts is read by the MPD programm when starting the daemons and serves as a configuration file, describing on which hosts should the daemons get started. So starting MPD daemons on all hosts with the above mpd.hosts file can be done in the following way:
{{{#!c
# ./sshconnectivity.exp machines.LINUX
# mpdboot -n 4 --rsh=ssh -f ./mpd.hosts
}}}
== Tracing information ==
Run an application for the trace analyzer:

{{{#!c
# export VT_LOGFILE_FORMAT=STF;
# export VT_PCTRACE=5;
# export VT_PROCESS="0:N ON";
# export VT_LOGFILE_PREFIX=IMB-MPI1_inst;
# rm -fr $VT_LOGFILE_PREFIX; mkdir $VT_LOGFILE_PREFIX;
# mpiexec -n 2 itcpin --run -- ./IMB-MPI1 -npmin 2 PingPong;
# traceanalyzer ./IMB-MPI1_inst/IMB-MPI1.stf &;
}}}
After you are done with running and analysing your application shut down the MPD daemons with the command:

{{{#!c
# mpdallexit
}}}
== Fine tuning ==
Invoke mpitune:

{{{#!c
# mpitune -f machines.LINUX -o ./ --app mpiexec -genv MPIEXEC_DEBUG 1 -n 2 ./IMB-MPI1 -np 2 PingPong
# mpiexec -tune app.conf -n 4 ./IMB-MPI1 -np 2 PingPong
}}}
Line 18: Line 83:
Start execution of the MPI program in debugging mode on 8 nodes each running 2 processes:

{{{#!c
# mpiexec -idb -genv MPIEXEC_DEBUG 1 -n 8 ./IMB-MPI1 -np 2 PingPong
}}}

<<AttachList>>



1. Overview

The Intel Cluster Toolkit is a collection of MPI related tools, which is helpful when debugging, fine tuning and analyzing large MPI applications. ICT includes:

  • Intel C++ Compiler 11.1
  • Intel Debugger 11.1
  • Intel MPI Library 3.2
  • Intel MPI Benchmarks 3.2
  • Intel Trace Analyzer1 and Trace Collector 7.2

2. Using ICT

Each of this parts and its use at the cluster environment in DESY Zeuthen is described next.

2.1. Setting up the environment

Intitialize the Intel compiler and Intel MPI environment:

ini ic openmpi_intel

Initialize ICT environment:

 source /opt/intel/itac/8.0.0.011/bin/itacvars.sh
 source /opt/intel/impi/4.0.0.028/bin/mpivars.sh
 source /opt/intel/ictce/4.0.0.020/ictvars.sh
 source /opt/products/idb/11.0/bin/ia32/idbvars.sh
 export I_MPI_CC=/opt/products/bin/icc

2.2. Compiling MPI applications with Intel MPI

Add

LDFLAGS     = -L$(VT_LIB_DIR) -lmpi $(VT_ADD_LIBS)

to the IMB Makefile.

2.3. MPD daemons

The first step in setting up the MPD daemons, which are actually the environment for strating the parallel applications, is to set up an SSH connectivity environment with the help of the sshconnectivity.exp script and the machines.LINUX file. The script is available in the attachment list at the end of this page. An example machines.LINUX (as well as mpd.hosts) file(s) could look like this:

pax00
pax01
pax02
pax03

The mpd.hosts is read by the MPD programm when starting the daemons and serves as a configuration file, describing on which hosts should the daemons get started. So starting MPD daemons on all hosts with the above mpd.hosts file can be done in the following way:

# ./sshconnectivity.exp machines.LINUX
# mpdboot -n 4 --rsh=ssh -f ./mpd.hosts

2.4. Tracing information

Run an application for the trace analyzer:

# export VT_LOGFILE_FORMAT=STF;
# export VT_PCTRACE=5;
# export VT_PROCESS="0:N ON";
# export VT_LOGFILE_PREFIX=IMB-MPI1_inst;
# rm -fr $VT_LOGFILE_PREFIX; mkdir $VT_LOGFILE_PREFIX;
# mpiexec -n 2 itcpin --run -- ./IMB-MPI1 -npmin 2 PingPong;
# traceanalyzer ./IMB-MPI1_inst/IMB-MPI1.stf &;

After you are done with running and analysing your application shut down the MPD daemons with the command:

# mpdallexit

2.5. Fine tuning

Invoke mpitune:

# mpitune -f machines.LINUX -o ./ --app mpiexec -genv MPIEXEC_DEBUG 1 -n 2 ./IMB-MPI1 -np 2 PingPong
# mpiexec -tune app.conf -n 4 ./IMB-MPI1 -np 2 PingPong

2.6. Debugging

Start execution of the MPI program in debugging mode on 8 nodes each running 2 processes:

# mpiexec -idb -genv MPIEXEC_DEBUG 1 -n 8 ./IMB-MPI1 -np 2 PingPong

  • [get | view] (2010-07-06 14:20:08, 26.0 KB) [[attachment:sshconnectivity.exp]]
 All files | Selected Files: delete move to page copy to page

IntelClusterToolkit (last edited 2010-10-13 16:09:44 by KonstantinBoyanov)