Next: , Previous: Frontend Installation, Up: Installing PPW


2.2 Installing the Backend

Our backend is distributed in source code form, which means to install it you'll need to compile it first. We use the standard open-source Automake and Autoconf tools to help you configure the package for your system. If you've never heard of these before, don't worry; all you need to do is follow the instructions outlined in the rest of this section.

If you compile and install the source code distribution of PPW, both the frontend and the backend will be installed. If the machine on which you are installing PPW does not have Java support (eg, if you are unable to find a JVM for it, or do not have permissions to install a JVM), a few commandline tools will be unavailable. However, functional equivalents of these commandline tools are available through the GUI on your workstation, and none of these tools are required to operate the tool.

A word about portability: the backend of our tool is written in portable ANSI C and should compile on just about any UNIX-like system. If you have problems compiling or installing our software on your machine, please file a bug report at our Bugzilla website and we'll work with you to get our tool working on your system.

2.2.1 Backend Prerequisites

There are a number of prerequisites (system requirements) which you will need in order to build the PPW software. At a minimum, you will need the following:

Before you can install our tool, you'll need to have a version of a UPC compiler, a SHMEM library, or an MPI library that our tool supports on your system. Currently, PPW supports the following parallel programming languages/libraries:

If your favorite UPC compiler isn't on the list above, please contact your vendor and request that they add support for the GASP performance tool interface as described on the GASP website.

If your favorite parallel programming library isn't on the list above, please contact us and we'll try our best to add support for it.

2.2.2 Compiling the Backend

To compile the backend, you'll need to download the PPW source distribution from the PPW website onto your system, and then uncompress and untar it.

Once you've expanded the source distribution, you'll need to run the configure script to adapt the tool to your system. If you've installed your UPC or SHMEM libraries in nonstandard locations, you might have to provide the configure script with additional arguments. For MPI, you'll need to use a configure option to specify the location of the MPI installation you would like to use. You may type ‘./configure --help’ to see what options are available; here's a quick guide to help you get started:

Once the configure script finishes running, the script will tell you what software was found and how PPW was configured. If you notice something missing, delete the config.cache file and re-run the configure script with the correct arguments.

Note: Failure to remove the config.cache file when giving new arguments to the configure script may result in your new configuration options not being reflected.

After you've configured PPW to your liking, type make to compile the tool and make install to install it. Note that PPW may require GNU make to build correctly. If your vendor-supplied version of make fails to build PPW properly, we recommend downloading GNU make from the GNU make website.

2.2.3 Backend Build Session Example

The example session below shows how to download, build, and install PPW:

     $ wget "http://ppw.hcs.ufl.edu/v3.2/ppw-3.2.tar.gz"
     --18:44:49--  http://ppw.hcs.ufl.edu/v3.2/ppw-3.2.tar.gz
                => `ppw-3.2.tar.gz'
     Resolving ppw.hcs.ufl.edu... 128.227.45.2
     Connecting to ppw.hcs.ufl.edu|128.227.45.2|:80... connected.
     HTTP request sent, awaiting response... 200 OK
     Length: 8,297,910 (7.9M) [application/x-tar]
     
     100%[======================================>] 8,297,910     10.80M/s
     
     18:44:50 (10.80 MB/s) - `ppw-3.2.tar.gz' saved [8297910/8297910]
     
     $ gunzip -c ppw-3.2.tar.gz | tar xf -
     $ cd ppw-3.2
     $ ./configure --prefix=/home/ACCT/ppw
     
     ... output truncated ...
     
     $ make; make install

After these commands finish executing, PPW will be installed in /home/ACCT/ppw. Remember to replace ‘ACCT’ with your username appropriately.

As another example, suppose your username is USER, you have Berkeley UPC installed in your home directory at /home/USER/bupc, you have PAPI installed in /usr/local, and you wish to install PPW into your home directory. In this case, you'll want to use the following configure line:

     ./configure --prefix=/home/USER/ppw \
       --with-upc=/home/USER/bupc --with-papi=/usr/local/papi

Don't forget to update your PATH environment variable to include the path to PPW's bin directory after you install PPW. Consult your shell's user documentation on how to do this. Continuing with our prior example, if you use a sh-compatible shell like bash, you will want to use the following command:

     export PATH=/home/USER/ppw/bin:$PATH

The corresponding command for csh-compatible shells like tcsh or csh would look like this:

     setenv PATH /home/USER/ppw/bin:${PATH}

If you've used the --prefix option and would like to access PPW's man and info documentation, you might also have to set your MANPATH and INFOPATH environment variables similarly.

2.2.4 Cross Compilation (for Cray XT)

To compile PPW for the Cray XT platform, you need to use the one of the special cross-compilation scripts, cross-configure-crayxt-linux or cross-configure-crayxt-catamount (depending on your compute node setup), found in the PPW distribution. The steps to install PPW on a Cray XT system are roughly as follows:

  1. Grab a copy of Berkeley UPC and follow their instructions for cross-compiling Berkeley UPC for use with the Cray XT (see the INSTALL.TXT file within the BUPC source directory). Be sure to enable instrumentation, normally by using the --with-multiconf=+opt_inst flag.
  2. Download and untar a copy of the PPW source distribution. From within the PPW source directory, type
              ln -s contrib/cross-configure-crayxt-linux ./
    

    or

              ln -s contrib/cross-configure-crayxt-catamount ./
    

    as appropriate.

  3. Edit the cross-configure-crayxt-linux or cross-configure-crayxt-catamount script and update to match your working environment. Be sure to update the TARGET_ID variable to match your current compute node setup (ie, CNL or Catamount).
  4. Note that PPW must be compiled with the same compilers used to build Berkeley UPC. If you compiled Berkeley UPC with GCC, you might need to do a module swap PrgEnv-pgi PrgEnv-gnu.
  5. Make sure your cc's default target matches your compute nodes. If not, do module load xtpe-target-cnl or module load xtpe-target-catamount. Most like this will already be done for you, so this step is probably not needed.
  6. If you want to configure PPW to use PAPI, type module load papi or module load papi-cnl before you perform the next step.
  7. Use the cross-configure-crayxt-linux or cross-configure-crayxt-catamount script in place of the normal configure script, as in
              $ ./cross-configure-crayxt-linux
              $ make
    

    Then install as normal.

We have had best luck using Berkeley UPC compiled with GCC. Also, depending on your Cray XT installation, you might need to adjust the module commands above. Generally speaking, if you can get Berkeley UPC up and running, then you'll need the same type of build environment to compile and install PPW.