IP Library Granted Patent US 10,635,062
Granted Patent B2
US 10,635,062 · App. 12/826,077 · Granted Apr 28, 2020

Systems and methods for highly parallel processing of parameterized simulations

Inventors: Kevin S. Beyer (San Francisco, CA); Vuk Ercegovac (Campbell, CA); Peter Haas (San Jose, CA); Eugene J. Shekita (San Jose, CA); Fei Xu (Bellevue, WA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G05B17/02G06F17/5009
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,635,062
App. No.
12/826,077
Granted
Apr 28, 2020
Kind
B2
Abstract

Systems and associated methods for highly parallel processing of parameterized simulations are described. Embodiments permit processing of stochastic data-intensive simulations in a highly parallel fashion in order to distribute the intensive workload. Embodiments utilize methods of seeding records in a database with a source of pseudo-random numbers, such as a compressed seed for a pseudo-random number generator, such that seeded records may be processed independently in a highly parallel fashion. Thus, embodiments provide systems and associated methods facilitating quicker data-intensive simulation by enabling highly parallel asynchronous simulations.

Claims (28)

1. A non-transitory computer program product comprising:

a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:

computer readable program code configured to assign records of a database for seeding to one of a plurality of parallel-processing nodes, wherein each of the records is assigned to a single of the plurality of parallel-processing nodes;

computer readable program code configured to, at each of and in parallel with the plurality of parallel-processing nodes, seed each record using the node assigned to the record, wherein to seed each record further comprises adding a unique source of pseudo-random numbers to each record, wherein the unique source of pseudo-random numbers is stored within a corresponding record; and

computer readable program code configured to provide, using a cycle of seeds, seeded records to a plurality of processing nodes for parallel asynchronous simulations, wherein the plurality of processing nodes is different from the plurality of parallel-processing nodes, wherein each of the seeded records is provided to a single of the plurality of processing nodes, wherein the providing comprises:

with respect to the cycle of seeds, generating skips of varied length based on the records of the database; and

computer readable program code configured to modify, based on the generated skips of varied length, a start point for a cycle of at least one simulation; and

each of the seeded records undergoing a single simulation, wherein the pseudo-random number of the corresponding record is utilized during the simulation.

2. The computer program product according to claim 1 , wherein to assign records of a database for seeding further comprises assigning records to a plurality of processing nodes for seeding independently and asynchronously.

3. The computer program product according to claim 1 , wherein the unique source of pseudo-random numbers further comprises a compressed seed for a pseudo-random number generator.

4. The computer program product according to claim 1 , wherein the parallel asynchronous simulations further comprise, a plurality of simulations, each executed in accordance with a given seeded record by at least one of the plurality of processing nodes.

5. The computer program product according to claim 1 , Wherein to add a unique source of pseudo-random numbers to each record further comprises adding a source of pseudo-random numbers to each record enabling each of the plurality of processing nodes to generate pseudo-random numbers locally for a simulation.

6. The computer program product according to claim 1 , wherein to add a unique source of pseudo-random numbers to each record further comprises providing a compressed seed to each record enabling each of the plurality of processing nodes to generate a disjoint sequence of pseudo-random numbers for the record using a skip-ahead technique for a single pseudo-random number generator locally.

7. The computer program product according to claim 6 , wherein using a skip-ahead technique further comprises pre-computation of a set of skip parameters whose size is a logarithmic function of the cycle length of the pseudo-random number generator.

8. The computer program product according to claim 1 , wherein to provide a unique source of pseudo-random numbers to each record further comprises providing a compressed seed to each record enabling each of the plurality of processing nodes to locally generate a sequence of pseudo-random numbers for the record that, above a given probability, is disjoint from a sequence for all other records, using a technique based on multiple pseudo-random number generators.

9. The computer program product according to claim 1 , further comprising computer readable program code configured to record simulation results from parallel asynchronous simulations executed with the plurality processing nodes using the seeded records.

10. A system comprising:

one or more processors; and

a memory operatively connected to the one or more processors;

wherein, responsive to execution of computer readable program code accessible to the one or more processors, the one or more processors are configured to:

assign records of a database for seeding to one of a plurality of parallel-processing nodes, wherein each of the records is assigned to a single of the plurality of parallel-processing nodes;

at each of and in parallel with the plurality of parallel-processing nodes, seed each record using the node assigned to the record, wherein to seed each record further comprises adding a unique source of pseudo-random numbers to each record, wherein the unique source of pseudo-random numbers is stored within a corresponding record; and

provide, using a cycle of seeds, seeded records to a plurality of processing nodes for parallel asynchronous simulations, wherein the plurality of processing nodes is different from the plurality of parallel-processing nodes, wherein each of the seeded records is provided to a single of the plurality of processing nodes, wherein the providing comprises:

with respect to the cycle of seeds, generating skips of varied length; and

modifying, based on the generated skips of varied length, a start point for a cycle of at least one simulation; and

each of the seeded records undergoing a single simulation, wherein the pseudo-random number of the corresponding record is utilized during the simulation.

11. The system according to claim 10 , wherein to assign records of a database for seeding further comprises assigning records to a plurality of processing nodes for seeding independently and asynchronously.

12. The computer program product according to claim 1 , wherein a single pseudo-random number generator is employed to provide seeded records to a plurality of processing nodes for parallel asynchronous simulations and for performing at least one simulation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2010
From: BEYER, KEVIN S.; ERCEGOVAC, VUK; HAAS, PETER; SHEKITA, EUGENE J.; XU, FEI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024634/0552 →
Continuity (1)
Related Publication 20110320184A1 · Dec 29, 2011