Parallel Network Partitioning for Multithreaded Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Parallel networks face challenges in achieving consistent and reproducible results due to the need for thread synchronization, which reduces execution speed, especially when multiple synchronization points exist, in multithreaded environments.

Innovation Solution

The method involves partitioning nodes and connections into separate portions, assigning each portion to a parallel executor, and using memory buffers to optimize execution, allowing for asynchronous operation and reducing the need for cross-partition synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If thread synchronization is employed to ensure correct execution order in multithreaded network realization, then consistency and reliability of network operations are improved, but thread execution speed is reduced particularly when multiple synchronization points exist

Engineering Contradiction:
Improveconsistency of network operationsVSAvoidthread execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The network is partitioned into multiple independent partitions, each executed by a separate thread. Each partition contains a subset of nodes and connections that can be processed independently, eliminating the need for synchronization between threads while maintaining correct execution order within each partition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Memory buffers are introduced as intermediaries between partitions to store and transfer data asynchronously. These buffers allow threads to write data without waiting for other threads to read it, eliminating synchronization overhead while ensuring data consistency through the buffer mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple synchronization points are implemented to maintain correct execution order, then reliability of parallel network operations is improved, but execution efficiency and productivity are reduced

Engineering Contradiction:
Improvecorrect execution orderVSAvoidnetwork operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The network computation is divided into multiple independent partitions that can be executed in parallel without requiring synchronization points. Each partition maintains its own execution context and data dependencies, allowing threads to run independently and continuously without waiting for synchronization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Threads execute network partitions continuously without idle synchronization points. The use of memory buffers ensures that data production and consumption can proceed concurrently, maintaining continuous useful action across all threads and maximizing productivity.

Inventive Principle:
Principle #20Continuity of useful action

3Device complexity

If nodes and connections are processed in a unified manner, then simplicity of implementation is maintained, but parallel execution efficiency is reduced due to synchronization requirements

Engineering Contradiction:
Improveimplementation simplicityVSAvoidparallel execution speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The network is segmented into multiple partitions with each partition containing a subset of nodes and connections. This segmentation enables independent parallel execution of each partition while maintaining relatively simple implementation within each partition. The partitioning strategy balances the workload and minimizes inter-partition dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each partition is optimized for local execution with its own data structures and computation logic. This local optimization allows each thread to efficiently process its assigned partition without being constrained by global synchronization requirements, thereby improving parallel execution speed while keeping individual partition implementations simple.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9390369B1Multithreaded apparatus and methods for implementing parallel networks
Publication Date: 2016.07.12 BRAIN CORP
  • US9390369B1 patent drawing
  • US9390369B1 patent drawing
  • US9390369B1 patent drawing

AI summary

Apparatus and methods for developing parallel networks. In some implementations, a network may be partitioned into multiple partitions, wherein individual portions are being executed by respective threads executed in parallel. Individual portions may comprise multiple neurons and synapses. In order to reduce cross-thread traffic and/or reduce number of synchronization locks, network may be partitioned such that for given network portion, the neurons and the input synapses into neurons within the portion are executed within the same thread. Synapse update rules may be configured to allow memory access for postsynaptic neurons and forbid memory access to presynaptic neurons. Individual threads may be afforded pairs of memory buffers configured to effectuate asynchronous data input/output to/from thread. During an even iteration of network operation, even buffer may be utilized to store data generated by the thread during even iteration. Odd buffer may be utilized to read data, generated by other threads during the preceding odd iteration.