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
- 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.
- 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
- Gridmake is fully implemented in Perl. It requires Perl 5 or higher.
- For communication, gridmake uses ssh. Ssh must be installed and you should generate a
private/public key pair for it, if you don't want to type
passwords. Another possibility is to use gsi ssh.
- For compression and packaging of the transferred files, gridmake
uses tar and gzip.
If they aren't installed, gridmake will not work.
- Gridmake is implemented for UNIX and Linux operating
systems. A Windows port is not planed.
MacOS X is not tested yet.
Back to Top
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
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
What happens, if you start
gridmake? This section gives you an overview of the functionality of
gridmake. Gridmake's internal steps
- Checking commandline options.
- Reading configfile.
- 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.
- The files of the final list will be stored in a tar archive and
compressed with gzip.
- The archive will be transferred using the scp
command. Gridmake transfers all files simultaneously to all
target all machines.
- Gridmake starts with the client operation. The following steps are performed simultaneously for each target machine
as a child process.
- The gridmake client source code will be generated according to the parameters of the gridmake configfile.
- The client program will be transferred to the target machine with scp.
- The gridmake child process starts the client program on the target machine with ssh.
- 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.
- The log file will be returned by the child process and the return value will be checked.
- The parent program waits until all child processes finish and displays the result of the gridmake run.
Gridmake with cvs
- Checking commandline options.
- Reading configfile.
- Gridmake starts with the client operation. The following steps are performed for each target machine in a child process.
- The gridmake client source code will be generated according to the parameters of the gridmake configfile.
- The client program will be transferred to the target machine with scp.
- The gridmake child process starts the client on the target machine with ssh.
- 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.
- The log file is returned by the child process and the return value is checked.
- The parent program waits until all child processes terminate and displays the result of the gridmake run.
Back to Top
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