Patent US5083265A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5083265A Expired / Lapsed US ⏱️ 0.0 years remaining

Bulk-synchronous parallel computer

Assignee: Harvard University
•
Filing: 1990-04-17
•
Granted: 1992-01-21
•
Expires: 2010-04-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In accordance with the present invention, system architecture and programming are in accordance with a bulk-synchronous parallel processing model. Data is distributed to memory elements through a hashing function performed in individual hardware modules associated with computational elements. The router operates independently of the computational and memory elements and masks any substantial latency it may have by pipelining. A synchronizer provides for bulk synchronization in supersteps of multiple computational steps. The router bandwidth is balanced with that of the computational elements and the program may be compiled to a number of virtual processors significantly greater than the number of actual processors in the system.

Inventors

  • 👤 Leslie G. Valiant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 13:50
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F15/00; G06F15/16; G06F15/163; G06F15/173; G06F15/17356; G06F15/17368

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 144 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of a plurality of computational steps such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein each computational element may proceed through the superstep without needing results from other computational elements.
Claim 2
Dependent Claim 144 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of a plurality of computational steps such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein each computational element may proceed through the superstep without needing results from other computational elements.
Claim 3
Dependent Claim 42 words
A systems as claimed in claim 1 wherein the computational bandwidth of the elements is substantially matched to the communication bandwidth of the router in that a ratio g of the first to the second is less than or equal to 10.
Claim 4
Dependent Claim 49 words
A system as claimed in claim 2 wherein a program being processed is compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system.
Claim 5
Dependent Claim 29 words
A system as claimed in claim 2 wherein the synchronizer synchronizes computations in computational elements in supersteps of L computational steps where L is at least about glog p.
Claim 6
Dependent Claim 49 words
A system as claimed in claim 1 wherein a program being processed is compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system.
Claim 7
Dependent Claim 29 words
A system as claimed in claim 5 wherein the synchronizer synchronizes computations in computational elements in supersteps of L computational steps where L is at least about glog p.
Claim 8
Dependent Claim 60 words
A system as claimed in claim 1 wherein the synchronizer synchronizes computations in computational elements in supersteps of L computational steps where L is at least about glog p, where p is the number of computational elements in the system, and g is the ratio of the computational bandwidth of the computational elements to the communication bandwidth of the router.
Claim 9
Dependent Claim 15 words
A system as claimed in claim 1 wherein each computational element comprises a hashing module.
Claim 10
Dependent Claim 15 words
A system as claimed in claim 8 wherein each hashing module is a hardware module.
Claim 11
Dependent Claim 18 words
A system as claimed in claim 1 wherein latency in the router is masked by a pipelined router.
Claim 12
Dependent Claim 14 words
A system as claimed in claim 1 wherein the router is of low latency.
Claim 13
Dependent Claim 229 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module associated with each computational element for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a program compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of L computational steps where L is at least about glog p, where p is the number of computational elements in the system, and g is the ratio of the computational bandwidth of the computational elements to the communication bandwidth of the router, such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein L is chosen so that each computational element may proceed through the superstep without needing results from other computational elements.
Claim 14
Dependent Claim 229 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module associated with each computational element for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a program compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of L computational steps where L is at least about glog p, where p is the number of computational elements in the system, and g is the ratio of the computational bandwidth of the computational elements to the communication bandwidth of the router, such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein L is chosen so that each computational element may proceed through the superstep without needing results from other computational elements.
Claim 15
Independent Claim 124 words
A method of processing a program in parallel processors comprising: providing a plurality of computational elements, having a hashing module, and memory elements; applying a hashing function to assign data to memory elements to apparently randomize the memory space in which data is stored; routing data transfers between computational and memory elements independently of continued computation and storage access in the computational and memory elements, any substantial routing latency being masked; and synchronizing multiple instruction computational tasks in supersteps of a plurality of computational steps in individual computational elements by completing all computational and routing tasks in synchronized computational elements before processing subsequent tasks in the computational elements, wherein each computational element may proceed through the superstep without needing results from other computational elements.
Claim 16
Independent Claim 124 words
A method of processing a program in parallel processors comprising: providing a plurality of computational elements, having a hashing module, and memory elements; applying a hashing function to assign data to memory elements to apparently randomize the memory space in which data is stored; routing data transfers between computational and memory elements independently of continued computation and storage access in the computational and memory elements, any substantial routing latency being masked; and synchronizing multiple instruction computational tasks in supersteps of a plurality of computational steps in individual computational elements by completing all computational and routing tasks in synchronized computational elements before processing subsequent tasks in the computational elements, wherein each computational element may proceed through the superstep without needing results from other computational elements.
Claim 17
Dependent Claim 42 words
A method as claimed in claim 13 wherein the computational bandwidth of the elements is substantially matched to the communication bandwidth of the router in that a ratio g of the first to the second is less than or equal to 10.
Claim 18
Dependent Claim 47 words
A method as claimed in claim 14 further comprising compiling a program to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system.
Claim 19
Dependent Claim 27 words
A method as claimed in claim 15 wherein the computational tasks are synchronized in supersteps of L computational steps where L is at least about glog p.
Claim 20
Dependent Claim 27 words
A method as claimed in claim 14 wherein the computational tasks are synchronized in supersteps of L computational steps where L is at least about glog p.
Claim 21
Dependent Claim 47 words
A method as claimed in claim 13 further comprising compiling a program to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system.
Claim 22
Dependent Claim 27 words
A method as claimed in claim 18 wherein the computational tasks are synchronized in supersteps of L computational steps where L is at least about glog p.
Claim 23
Dependent Claim 27 words
A method as claimed in claim 13 wherein the computational tasks are synchronized in supersteps of L computational steps where L is at least about glog p.
Claim 24
Dependent Claim 21 words
A method as claimed in claim 13 wherein the hashing function is applied in a hashing module in each computational element.
Claim 25
Dependent Claim 15 words
A method as claimed in claim 21 wherein each hashing module is a hardware module.
Claim 26
Dependent Claim 14 words
A method as claimed in claim 13 wherein routing latency is masked by pipelining.
Claim 27
Dependent Claim 13 words
A method as claimed in claim 13 wherein there is no substantial latency.
Claim 28
Dependent Claim 250 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a program compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of L computational steps where L is at least about glog p, where g is the ratio of the computational bandwidth of the computational elements to the communication bandwidth of the router, such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein L is chosen so that each computational element may proceed through the superstep without needing results from other computational elements, wherein the computational bandwidth of the elements of the system is substantially matched to the communication bandwidth of the router in that a ratio of the first to the second is less than or equal to 10.
Claim 29
Dependent Claim 250 words
A multiple instruction, multiple data, parallel processor system comprising: a plurality of computational and memory elements; a hashing module for providing each of the computational elements with a common hashing function associated therewith for assigning data to the memory elements creating an apparently randomized memory space; a program compiled to a plurality of virtual processor routines processed by the computational elements, the plurality of virtual processor routines of at least about plog p where p is the number of computational elements in the system; a parallel router for routing data transfers between computational and memory elements in parallel, the parallel router routing the data transfers independently of continued computation and storage access in the computational and memory elements and masking any substantial latency therein; and a synchronizer for synchronizing multiple instruction computational tasks in individual computational elements in supersteps of L computational steps where L is at least about glog p, where g is the ratio of the computational bandwidth of the computational elements to the communication bandwidth of the router, such that individual computational and routing tasks are completed in all synchronized computational elements before the elements proceed to subsequent tasks, wherein L is chosen so that each computational element may proceed through the superstep without needing results from other computational elements, wherein the computational bandwidth of the elements of the system is substantially matched to the communication bandwidth of the router in that a ratio of the first to the second is less than or equal to 10.

References Cited (Backward Citations)

US4814979A Cited
US4736287A Cited
US4901229A Cited
US4825360A Cited
US4965882A Cited
US4969088A Cited
US4989131A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-01-20 1995-07-22 1996-01-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-01-20 1999-07-22 2000-01-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-01-20 2003-07-22 2004-01-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag