Parallel MP3 Encoding
Installing / Running Parallel BladeEnc

Navigation


  • Home
  • Why?
  • Technical details
  • Change log
  • Download
  • Install / Run
  • Credits

  • BladeEnc home
  • LAM/MPI home


    Because division of labor is good.

  • Quick links:


    Installation

    1. Obtain and install an implementation of MPI.

      If you're working on some kind of "big iron", you should probably obtain the vendor's implementation of MPI for best performance. This list of MPI implementations may be helpful. If you've got a cluster of unix workstations, LAM/MPI should work just fine.

    2. Download the latest parallel BladeEnc (version 0.92.1b5).

    3. Expand the tarball into a new tree. For example:

        % uncompress -c bladeenc-parallel-0.92.1b5.tar.Z | tar xf -
      % gunzip -c bladeenc-parallel-0.92.1b5.tar.gz | tar xf -
      % bunzip2 -c bladeenc-parallel-0.92.1b5.tar.bz2 | tar xf -

    4. The configure script is tailored for the parallel version of BladeEnc. It also automates some of the manual setup steps of the distribution BladeEnc -- you shouldn't need to edit any files after running configure.

      You will probably need to set the CC environment variable to be the "wrapper" compiler for your MPI implementation before running configure. For example, if you are using LAM/MPI, use the mpicc wrapper compiler:

        % setenv CC mpicc
        % ./configure --prefix=/home/jsquyres/local
      

      Some hints: SGI/Cray's MPI implementation doesn't require a wrapper compiler; there is no need to set CC. IBM's MPI uses the mpcc wrapper compiler. HP's MPI uses the mpicc wrapper compiler. MPICH uses the mpicc wrapper compiler.

      NOTE: If you do not have an MPI implementation already installed, the configure script will detect this and install a vanilla BladeEnc 0.92 -- it will effectively be exactly the same as the serial version from the main BladeEnc home page.

    5. Type make to compile BladeEnc (as normal). Optionally do make install to install the bladeenc binary into $prefix/bin/bladeenc.


    Running

    1. Some (not all) MPI implementations require a command to start an MPI run-time environment.

      LAM/MPI, for example, requires the command lamboot hostfile, where the file hostfile contains a list of hostnames (one per line) of machines that you wish to run on. You must be able to rsh or ssh to the machines listed in hostfile, and the LAM/MPI executables must be in your $PATH on each machine. The LAM FAQ has a lot of information on how to setup your LAM.

    2. Most MPI implementations use the mpirun to launch MPI programs. You'll need to check your MPI's documentation for exactly how to use their mpirun. However, many MPI's support the following:

        % mpirun -np 4 bladeenc foo.wav bar.wav baz.wav
      

      which would launch bladeenc on four processors ("-np" = "number of processors") with the arguments foo.wav, bar.wav, and baz.wav.

      Note that running on four processors would actually only use three processors to do the encoding work. See the technical details page for why this is so.

      Also note that LAM/MPI has several features of the MPI standard that not all MPI implementations have (you may have noticed that the parallel BladeEnc configure script checked for a few specific features in MPI). As such, if you are using LAM/MPI, you do not need to use mpirun at all. If you do not use mpirun with BladeEnc under LAM/MPI, parallel BladeEnc will automatically use all the machines that you lambooted with. For example:

        $ bladeenc foo.wav bar.wav baz.wav
      

      (i.e., running BladeEnc just the way you always have) will automatically sense that the LAM/MPI run-time environment is running, detect how many machines you lambooted over, and split the MP3 encoding work across all of them.

    3. After you have run BladeEnc as many times are you want, you may need to shut the MPI run-time environment down. If your MPI required a command to start up, it will also likely require a command to shut down as well. LAM/MPI uses the wipe command for this:

        % wipe -v hostfile
      

      where hostfile is the same file that you used with the lamboot command.


    Page last updated:
    October 4, 2001
    Copyright © 2000-2009