Systems and methods for creating and using a data structure for parallel programming
First Claim
1. A method in a data processing system for creating data structures for parallel programming, comprising:
- forming, by one or more processors, a first global container including a plurality of local containers, the first global container having a first serial data structure comprising an ordered array-based data structure, the first global container being accessible by all threads of a plurality of threads in a multi-thread parallel processing environment, each local container of the plurality of local containers being accessible only by a corresponding thread of the plurality of threads, each local container of the plurality of local containers comprising a trace identifier (tid), a start index, and an end index, the tid identifying the corresponding thread, the start index and the end index identifying a corresponding data region of the first global container, each local container of the plurality of local containers having a same second serial data structure different from the first serial data structure of the first global container;
splitting the first global container into a second plurality of local containers when items in the first global container are to be processed in parallel;
executing a parallel process by the plurality of threads, each thread of the plurality of threads data stored in the corresponding data region of the each thread during the parallel process;
merging two or more local containers into a second global container when the parallel process reaches a synchronization point;
executing instructions provided by at least one of the first and second global containers to obtain a result; and
transmitting the result to a node in a network,the result comprising path information for a path across the network from a source node to an end node, the transmitting comprising transmitting at least a portion of the path information to the node, the path information causing the node to facilitate transmitting data from the source node to the end node.
1 Assignment
0 Petitions
Accused Products
Abstract
System and method embodiments are provided for creating data structure for parallel programming. A method for creating data structures for parallel programming includes forming, by one or more processors, one or more data structures, each data structure comprising one or more global containers and a plurality of local containers. Each of the global containers is accessible by all of a plurality of threads in a multi-thread parallel processing environment. Each of the plurality of local containers is accessible only by a corresponding one of the plurality of threads. A global container is split into a second plurality of local containers when items are going to be processed in parallel and two or more local containers are merged into a single global container when a parallel process reaches a synchronization point.
-
Citations
24 Claims
-
1. A method in a data processing system for creating data structures for parallel programming, comprising:
-
forming, by one or more processors, a first global container including a plurality of local containers, the first global container having a first serial data structure comprising an ordered array-based data structure, the first global container being accessible by all threads of a plurality of threads in a multi-thread parallel processing environment, each local container of the plurality of local containers being accessible only by a corresponding thread of the plurality of threads, each local container of the plurality of local containers comprising a trace identifier (tid), a start index, and an end index, the tid identifying the corresponding thread, the start index and the end index identifying a corresponding data region of the first global container, each local container of the plurality of local containers having a same second serial data structure different from the first serial data structure of the first global container; splitting the first global container into a second plurality of local containers when items in the first global container are to be processed in parallel; executing a parallel process by the plurality of threads, each thread of the plurality of threads data stored in the corresponding data region of the each thread during the parallel process; merging two or more local containers into a second global container when the parallel process reaches a synchronization point; executing instructions provided by at least one of the first and second global containers to obtain a result; and transmitting the result to a node in a network, the result comprising path information for a path across the network from a source node to an end node, the transmitting comprising transmitting at least a portion of the path information to the node, the path information causing the node to facilitate transmitting data from the source node to the end node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 21)
-
-
9. A data processing system for creating data structures for parallel programming comprising:
-
one or more processors; and a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including computer instructions for; forming a first global container including a plurality of local containers, the first global container having a first serial data structure comprising an ordered array-based data structure, the first global container being accessible by all threads of a plurality of threads in a multi-thread parallel processing environment, each local container of the plurality of local containers being accessible only by a corresponding thread of the plurality of threads, each local container of the plurality of local containers comprising a trace identifier (tid), a start index, and an end index, the tid identifying the corresponding thread, the start index and the end index identifying a corresponding data region of the first global container, each local container of the plurality of local containers having a same second serial data structure being different from the first serial data structure of the first global container; splitting the first global container into a second plurality of local containers when items in the first global container are to be processed in parallel; executing a parallel process by the plurality of threads, each thread of the plurality of threads processing data stored in the corresponding data region of the each thread during the parallel process; merging two or more local containers into a second global container when the parallel process reaches a synchronization point; executing instructions provided by at least one of the first and second global containers to obtain a result; and transmitting the result to a node in a network, the result comprising path information for a path across the network from a source node to an end node, the transmitting comprising transmitting at least a portion of the path information to the node, the path information causing the node to facilitate transmitting data from the source node to the end node. - View Dependent Claims (10, 11, 12, 13, 14, 19, 20, 22)
-
-
15. A non-transitory computer-readable media storing computer instructions for creating data structures for parallel programming in a data processing system, that when executed by one or more processors, cause the one or more processors to perform the steps of:
-
forming a first global container including a plurality of local containers, the first global container having a first serial data structure comprising an ordered array-based data structure, the first global container being accessible by all threads of a plurality of threads in a multi-thread parallel processing environment, each local container of the plurality of local containers being accessible only by a corresponding thread of the plurality of threads, each local container of the plurality of local containers comprising a trace identifier (tid), a start index, and an end index, the tid identifying the corresponding thread, the start index and the end index identifying a corresponding data region of the first global container, each local container of the plurality of local containers having a same second serial data structure, the second serial common data structure being different from the first serial common data structure of the first global container; splitting the first global container into a second plurality of local containers when items in the first global container are to be processed in parallel; executing a parallel process by the plurality of threads, each thread of the plurality of threads processing data stored in the corresponding data region of the each thread during the parallel process; merging two or more local containers into a second global container when the parallel process reaches a synchronization point; executing instructions provided by at least one of the first and second global containers to obtain a result; and transmitting the result to a node in a network, the result comprising path information for a path across the network from a source node to an end node, the transmitting comprising transmitting at least a portion of the path information to the node, the path information causing the node to facilitate transmitting data from the source node to the end node. - View Dependent Claims (16, 17, 18, 23, 24)
-
Specification