Parallel Random Number Generation Using Thread-Specific Generators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallelized random number generation techniques often result in codependent sequences due to shared random number generators, leading to undesirable overlapping portions and higher failure rates in statistical randomness tests.

Innovation Solution

A system and method for parallelized random number generation where each thread uses a unique random number generator from a collection, allocating tasks to threads to generate independent elements in a sequence, stored in a destination vector, ensuring non-codependent sequences.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads share the same random number generator initialized with different seeds, then parallel generation is achieved, but codependent sequences with overlapping portions occur

Engineering Contradiction:
Improveparallel generation speedVSAvoidstatistical randomness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the sequence generation task into independent segments by allocating different ranges of sequence indices to different threads. Each thread generates random numbers only for its assigned index range using a dedicated random number generator, eliminating overlap and codependency between threads while maintaining parallel execution.

Inventive Principle:
Principle #1Segmentation

2Reliability

If a collection of random number generators is used to allocate tasks to threads, then codependency is reduced, but device complexity increases

Engineering Contradiction:
Improvesequence independenceVSAvoidnumber of random number generators
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a pool of random number generators that can be dynamically allocated to different threads based on task requirements. Each generator in the pool can serve multiple threads at different times, reducing the total number of generators needed while maintaining sequence independence. The system manages this pool efficiently to provide the necessary independence without proportionally increasing complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10048940B2Parallel generation of random numbers
Publication Date: 2018.08.14 SS&C TECHNOLOGIES INC
  • US10048940B2 patent drawing
  • US10048940B2 patent drawing
  • US10048940B2 patent drawing

AI summary

Parallelized generation of random numbers. A vector, in a memory component, is allocated that is configured to store a sequence of random numbers. A first thread of a plurality of threads is assigned to a first random number generator of a plurality of random number generators. A second thread of the plurality of threads is assigned to a second random number generator of the plurality of random number generators. A first random number designated for a first index position in the sequence of random numbers and a second random number designated for a second index position in the sequence of random numbers are generated in parallel by the first and second thread, respectively. The first random number in the first index position of the sequence of random numbers and the second random number in the second index position of the sequence of random numbers are stored in the allocated vector.