SourceForge.net Logo

Gridmake

Gridmake makes it possible to distribute and compile source code to an arbitrary number of machines. Executables are created for each machine, simply by typing the command "gridmake". It is especially useful when dealing with multiple machines running different operating systems. The resulting binaries can be used e.g. for distributed computations in Grid environments.

Capabilities
Requirements
Installation
Using gridmake
How it works
Documentation
SourceForge project page & download

Capabilities

  1. File transfer system: Gridmake is able to transfer local files to remote machines. If you start gridmake in a directory, it transfers all files in that directory including all subdirectories. It is possible to set parameters for files and directories, which should not be transferred. After transferring the whole source code during the first run, gridmake creates a file list and is able to detect changed or new files and transfers only these. Gridmake is able to make use of CVS.
  2. Command execution: The primary idea is that gridmake has to be able to start a local make command on target machines, but you can specify any number of commands for gridmake to execute. For the execution of commands the user can tell gridmake to set environment variables on the target machines.
Back to Top

Requirements

Back to Top

Installation

Installation is quiet simple. Just unpack the tarball,
  tar -xzvf gridmake.tar.gz

change into the directory,
  cd gridmake-0.05/

and execute the installation script.
  ./INSTALL.sh

I recommend that you to read the README file before using gridmake.
Back to Top

Using gridmake

I strongly recommend that you take a look at the README file.
To use gridmake, you have to place a gridmake configfile in the directory of the source code you want to distribute and compile. The default name for the gridmake configfile is config.gridmake. With the commandline option --cfile you can specify another configfile. Use the --help option to get an overview about all commandline options.
An example configfile can be found in the share/ directory of the gridmake installation. For your own configfile, you can find a template configfile.
Back to Top

How it works

What happens, if you start gridmake? This section gives you an overview of the functionality of gridmake.

Gridmake's internal steps

  1. Checking commandline options.
  2. Reading configfile.
  3. a) If this is the first run, gridmake creates a file list of all files in the given directory and all subdirectories, except the files, which you want to be ignored.
    b) If this is not the first run (filelist.gridmake exists), gridmake creates a filelist and compares it with the original list. All new or changed files will be memorized. Removed files will be deleted from the list and not transferred.
  4. The files of the final list will be stored in a tar archive and compressed with gzip.
  5. The archive will be transferred using the scp command. Gridmake transfers all files simultaneously to all target all machines.
  6. Gridmake starts with the client operation. The following steps are performed simultaneously for each target machine as a child process.
  7. The gridmake client source code will be generated according to the parameters of the gridmake configfile.
  8. The client program will be transferred to the target machine with scp.
  9. The gridmake child process starts the client program on the target machine with ssh.
  10. The client will perform the following actions, all operations will be logged:
    a) Create target directories if they don't exists.
    b) Move the compressed archive into the directory and extract it.
    c) Execute the list of commands step by step.
    d) If no error occurs, set the return value to zero at the end of the log file, and to one if any errors occur.
  11. The log file will be returned by the child process and the return value will be checked.
  12. The parent program waits until all child processes finish and displays the result of the gridmake run.

Gridmake with cvs

  1. Checking commandline options.
  2. Reading configfile.
  3. Gridmake starts with the client operation. The following steps are performed for each target machine in a child process.
  4. The gridmake client source code will be generated according to the parameters of the gridmake configfile.
  5. The client program will be transferred to the target machine with scp.
  6. The gridmake child process starts the client on the target machine with ssh.
  7. The client will perform the following actions, all operation will be logged:
    a) Create target directories, if they don't exists.
    b) The cvs command will be executed.
    c) Execute the list of commands step by step.
    d) If no error occurs, it sets the return value to zero at the end of the log file, and to one if any errors occur.
  8. The log file is returned by the child process and the return value is checked.
  9. The parent program waits until all child processes terminate and displays the result of the gridmake run.

Back to Top

Documentation

A full documentation with elucidations of the gridmake source code is now available.
Download Postscript version
Download Postscript compressed version

Back to Top
© 2002, Henryk Feider