A system and method for parallelizing applications of script-driven software
tools.
Scripts in the software tool scripting language are automatically analyzed in order
to produce a specification for a parallel computation plus a set of "script fragments",
the combination of which is functionally equivalent to the original script. The
computational specification plus the script fragments are then executed by a parallel
runtime system, which causes multiple instances of the original software tool and/or
supplemental programs to be run as parallel processes. The resulting processes
will read input data and produce output data, performing the same computation as
was specified by the original script. The combination of the analyzer, runtime
system, original software tool, and supplemental programs will, for a given script
and input data, produce the same output data as the original software tool alone,
but has the capability of using multiple processors in parallel for substantial
improvements in overall "throughput". The invention includes computer program embodiments
of an automatic script analyzer.