The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

pmake - Makefile-Paralell Scheduler

SYNOPSIS

 pmake [options] file.pmake

DESCRIPTION

The pmake scheduler program reads a textual specification of a PMakefile and schedules it to a sub-system.

The basic syntax of this program is:

    pmake <options> file.pmake

Without options, the pmake program reads the makefile specification and runs it on the local CPU, using one process the time. As you execute the program it will print some useful logging text and allows the user to see how is the process going.

At the end of the pipeline, a report is printed, stating for each job, the start and end date-time, and the elapsed time on a human readable string. Is also generates a makefile's dependecy graph representation for easly see how the jobs relate to each other and how much time did they take to run.

Options

debug

    This flag makes the log output more verbose allowing to debug certain parts of the code. A "log" directory is created with tons of debug information. It's used mainly on the development environment. But please compress this directory and sent it to me when you have a reporto of something not working. It will help a lot.

dump

    This options makes the pmake program parse the makefile to a internal representation, and return a serialiazed version of the structure, without actually doing any run. Used in the developement purposes.

continue

    This options makes the pmake program try to continue a previous interrupted run. The pmake scheduler saves a journal with usefull information, so it can recovery in a the case of a disaster. Imagine this situation: you have a specification that takes 1 week to conclude on a high performance cluster. In the last process you discover you have an error, so the whole process fails, and you have to resubmit the jobs form the beginning. You certainly will like the -continue option for this.

clean

    Running jobs with pmake can produce a number of temporary files that may be floating in your directory at the end of the execution. If you think that it's too dangerous to try yourself the removal of the files, call pmake with this option and a makefile, and it will (probably) do the job.

pmake accepts options specific to the local sub-system:

local[=n]

    This flag forces the pmake to use the Local Scheduler (it already uses it by default). However, it is possible to pass a optional integer n, to specify how many parallel jobs do you want to run on your desktop computer. We recommend to use n between 1 and maximum logical CPUs on the target machine.

pmake accepts options specific to the PBS sub-system:

pbs

    This flag enables the use of the PBS scheduler. The result of running this option on a system without PBS is undefined. The program behaves exactly the same, producint the same output, but in the background, PBS scripts are created and submitted to the cluster queue.

You can find some simple examples of the specification on the /examples directory of the distribution. Sorry the lack of documentation on the syntax for now.