A method for providing the ability to parallelize pre-existing arbitrary serial code involving one statement after another, in order to permit parallel processing or multi-tasking, the method comprising steps for:
- providing an analytic engine, said analytic engine importing and encapsulating said pre-existing arbitrary serial code into a flowcharting system employing an object oriented flowchart language having a plurality of flowchart elements for flowcharting of said pre-existing arbitrary serial code, wherein said pre-existing arbitrary serial code involves one statement after another;
- providing an atomic time supervisor which is controlled by a user-input atomic time value, wherein the user-input atomic time value is the maximum execution time allowed for any execution path corresponding to said pre-existing arbitrary serial code;
- building a flowchart image, by said analytic engine, from said pre-existing arbitrary serial code in conjunction with the atomic time supervisor, wherein building the flowchart image comprises:
- importing each statement of said pre-existing arbitrary serial code into execution paths of blocks, wherein each path is an executing sequence of the statement blocks;
- determining an execution time for each block;
- and
- building a cross-reference table of data dependencies;
- numbering, by said analytic engine, each block of said pre-existing arbitrary serial code in ascending order by using a partially-ordered transitive numbering algorithm for which flowcharts can be generated from said pre-existing arbitrary serial code;
- ascertaining, by said analytic engine, what flowchart elements may be processed under the user-input atomic time value provided by the atomic time supervisor, wherein the ascertaining of flowchart elements comprises:
- determining whether the execution time for a particular block is under the user-input atomic time value;
- in response to determining that the execution time is under the user-input atomic time value, assigning a particular block as either a flowchart Action object, representing a function to be performed, or a flowchart Test object, representing an evaluation of an event question;
- and
- in response to determining that the execution time is more than the user-input atomic time value, assigning a particular block as a flowchart Task object representing an object that can be executed from separate processors to effectuate a parallel processing of the pre-existing arbitrary serial code;
- creating a combined object oriented flowchart from the encapsulated pre-existing arbitrary serial code statements, the combined object oriented flowchart including the ascertained flowchart elements;
- exporting the combined flowchart to a flowchart execution engine;
- and
- running the combined flowchart using a single atomic processor for multi-tasking or identifying task objects that can be executed from separate atomic processes for parallel processing wherein the running further comprises optimizing, by said analytic engine, a parallel execution of the imported pre-existing arbitrary serial code by adjusting said atomic time to generate Tasks that are distributed to separate partially ordered transitive flowchart system processors, by mapping flowchart Task objects to said separate processors and mapping flowchart Action objects or flowchart Test objects to either the same or separate transitive flowchart system processors.