Patent ID: 8255911

Claim:
A non-transitory computer readable medium contained within an information processing apparatus and executed by a processor, comprising: execution modules configured to execute threads comprising identifiers; and a scheduler configured to control dynamic assignment of basic modules to threads based on an execution rule so as to execute a program in parallel by the execution modules, the program being divided into the basic modules, the program comprising the execution rule, the execution rule defining an executing order of the basic modules, the basic modules being executable asynchronously with another modules, wherein the scheduler comprises: a first manager configured to manage identifiers of threads which execute basic modules which have been executed by the execution modules; a second manager configured to manage an executable set comprising basic modules which are executable by the execution modules; a cost calculator configured to calculate transfer cost of each of the basic modules in the executable set where data, which is a calculation result of a basic module having been already executed by a first thread in the threads, is transferred from the first thread to a second thread in the threads based on a size of the data and an identifier of thread having executed the basic modules having been executed; and a selector configured to select a basic module with a minimum transfer cost as a basic module to be assigned to the second thread; the transfer cost is expressed by: Cost = ∑ n ∈ Pr ⁢ ⁢ ed ⁡ ( c ) ⁢ ⁢ size ⁡ ( n ) × trCost ⁡ ( n ⁢ → tid , tid ) where Pred(c) represents a set of a part of basic modules comprising a basic module n which outputs first data to which a basic module c of the executable set refers, size (n) indicates a data size of a calculation result of the basic module n, and the trCost(n→tid, tid) is a data transfer cost when the first data is transferred from a thread identified by an identifier (n→tid) which execute the basic module n to a thread identified by an identifier (tid).