logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

wavefront_master - executes Wavefront workflow in parallel on distributed systems

Description

wavefront_master  computes  a  two  dimensional recurrence relation. You provide a function F (<command>)thatacceptstheleft(x),right(y),anddiagonal(d)valuesandinitialvalues(<inputdata>)fortheedgesofthematrix.Theoutputmatrix,whosesizeisdeterminedby<xsize>and<ysize>,willbestoredinafilespecifiedby<outputdata>.wavefront_master uses the Work  Queue  system  to  distribute  tasks  among  processors.  After  starting
       wavefront_master,  you  must  start  a  number of work_queue_worker(1) processes on remote machines.  The
       workers will then connect back to the master process and begin executing tasks.

Examples

       Suppose  you have a program named function that you want to use in the Wavefont workflow computation. The
       program function, when invoked as function a b c, should do some computations on files a,  b  and  c  and
       produce some output on the standard output.

       Before  running wavefront_master, you need to create a file, say input.data, that lists initial values of
       the matrix (values on the left and bottom edges), one per line:

                0    0    value.0.0
                0    1    value.0.1
                ...
                0    n    value.0.n
                1    0    value.1.0
                2    0    value.2.0
                ...
                n    0    value.n.0

       To run a Wavefront workflow sequentially, start a single work_queue_worker(1) process in the  background.
       Then, invoke wavefront_master. The following example computes a 10 by 10 Wavefront matrix:

                % work_queue_worker localhost 9123 &
                % wavefront_master function 10 10 input.data output.data

       The  framework will carry out the computations in the order of dependencies, and print the results one by
       one (note that the first two columns are X and Y indices in the resulting matrix) in the specified output
       file. Below is an example of what the output file - output.data would look like:

                1    1    value.1.1
                1    2    value.1.2
                1    3    value.1.3
                ...

       To speed up the process, run more work_queue_worker(1) processes on other machines,  or  use  condor_sub‐mit_workers(1) or uge_submit_workers(1) to start hundreds of workers in your local batch system.

       The  following  is  an example of adding more workers to execute a Wavefront workflow. Suppose your wave‐front_master is running on a machine named barney.nd.edu. If you have access to login to other  machines,
       you could simply start worker processes on each one, like this:

                % work_queue_worker barney.nd.edu 9123

       If you have access to a batch system like Condor, you can submit multiple workers at once:

                % condor_submit_workers barney.nd.edu 9123 10
                Submitting job(s)..........
                Logging submit event(s)..........
                10 job(s) submitted to cluster 298.

Exit Status

       On success, returns zero.  On failure, returns non-zero.

Name

wavefront_master - executes Wavefront workflow in parallel on distributed systems

Options

-h,--help
              Show this help screen

        -v,--version
              Show version string

        -d,--debug=<subsystem>
              Enable debugging for this subsystem. (Try -d all to start.)

        -N,--project-name=<project>
              Set the project name to <project>-N,--project-name=<project>
              Set the project name to <project>-o,--debug-file=<file>
              Write debugging output to this file. By default, debugging is sent to stderr (":stderr"). You  may
              specify logs to be sent to stdout (":stdout") instead.

        -p,--port=<port>
              Port number for queue master to listen on.

        -P,--priority=<num>
              Priority. Higher the value, higher the priority.

        -Z,--port-file=<file>
              Select port at random and write it to this file.  (default is disabled)

        --work-queue-preferred-connection=<connection>
              Indicate preferred connection. Chose one of by_ip or by_hostname. (default is by_ip)

See Also

       •   The Cooperative Computing Tools ("http://ccl.cse.nd.edu/software/manuals")

       •   Wavefront User Manual ("http://ccl.cse.nd.edu/software/manuals/wavefront.html")

       •   Work Queue User Manual ("http://ccl.cse.nd.edu/software/manuals/workqueue.html")

       •   work_queue_worker(1)condor_submit_workers(1)uge_submit_workers(1)

CCTools 7.14.5 FINAL                                                                         wavefront_master(1)

Synopsis

       wavefront [options] <command><xsize><ysize><inputdata><outputdata>

See Also