200 likes | 342 Views
Associative Nets: A Graph-Based Parallel Computing Model. Alain Mérigot IEEE Transactions on Computer VOL 46, NO. 5, MAY 1997 報告人:李孝治. Abstract. Associative Net Model (ANM) a new model for parallel computing
E N D
Associative Nets:A Graph-Based Parallel Computing Model Alain Mérigot IEEE Transactions on Computer VOL 46, NO. 5, MAY 1997 報告人:李孝治
Abstract • Associative Net Model (ANM) • a new model for parallel computing • relies on basic primitives : associations(apply an associative operator over connected components of a sub-graph of the physicalinter-processor connection graph. • Aims at: • efficiently implemented in terms of hardware cost and processing time • algorithm complexity roughly equals to that of the expensive PRAM method
a parallel computer • consists of a set of processors”processing elements (PE)” • is modeled by “physical interconnection graph” • FTM(Fixed Topology Machine) • simple, limited applications • PRAM(Parallel Random Access Machine) • fully interconnected PEs • concurrent access to the same memory location • expensive • Re-configurable Machines • asynchronous data propagation along the edges between PEs
ANM • Like Re-configurable Machines: • relies on asynchronous data transfer, providing high speed basic communication primitives • Contrary to Re-configurable Machines: • mixes communications and computations: “associations” • applies operators on a set of interconnected PEs
ANM operations are applied on “mgraph” or “connex set” • a set of connected components, that is, • a subset of a graphwhose nodes are connected together,directly or indirectly,by edges. • Dynamically defined in every PE
P = number of processorsD = degree of a processor • the set of processors in the machine:P= { Pi: i [0, P-1] } • the set of edges joining processors:E = {eij: 0 i P-1 and 0 j P-1}orE = {eik: 0 i P-1 and 0 k D-1} • physical interconnection graph:G = (P, E) • may be any physical graph • assume 2-D mesh, symmetric directed, constant degree
Two Basic Objects - 1st • pvar (parallel variable) • represents an information distributed over the set of processors • = the value of the instance of x on processor Pi • the jth bit of
Two Basic Objects - 2nd • mgraph g • represents the connex set of processors to communicate with • g = (P’,E’) where P’ = PandE’ E • g may be represented by the edges set E’ only • Ex: D-bit pvar • gi : incoming edges of processors Pi • gik: the kth incoming edge of processors Pi • Ex: g = {eik: 0 k P-1 and 0 k D-1}
Ascendants of Pi in mgraph g (neighbors) • Ancestors of Pi in mgraph g • Strict Ancestors of Pi in mgraph g
Basic Operations • inversion • g-1 = {eij: eji g} • -association(g,p) = {ai: 0 i P-1, ai = pj} • -association-step(g,p) = {ai: 0 i P-1, ai = pj} • Note: may be OR, AND, max, min, addition (which are associative and cumulative)
Basic Primitive: Algorithm 1spanning-tree(mgraph g, pvar r): mgraph1 mgraph t {};2 while r has been modified in any processors3 where not r and or-association-step(g,r)4 let l be a random link among those incoming from a neighbor where r is set5 t {l}; 6 r true;7 end where8 end while9 return t;end
Basic Primitive: Algorithm 1’spanning-tree-step(mgraph g, pvar r): mgraph1 mgraph t {};2 where not r and or-association-step(g,r)3 let l be a random link among those incoming from a neighbor where r is set4 t {l}; 5 r true;6 end where7 return t;end
Basic Primitive: Algorithm 2max-association (mgraph g, pvar p): pvar1 pvar M;2 int i;3 for i b-1 downto 0 do4 Mi or-association(g,pi); 5 where (Mi=1 and pi=0)6 p 0;7 end where8 end for9 return M;end
Basic Primitive: Algorithm 3prefix-max-association (mgraph m, pvar p): pvar1 pvar M;2 int i;3 for i b-1 downto 0 do4 Mi prefix-or-association(m, pi); 5 where Mi=16 m lop-off-zeroes(m, pi);7 end where8 end for9 return M;end
Basic Primitive: Algorithm 4plus-association (mgraph g, pvar p): pvar1 pvar root true if (max-association(g,self-address()) = self-address());2 mgraph t spanning-tree(g,root);3 pvar result prefix-plus-association(t-1,p);4 result or-association(g,result and root); 5 return result;end
Basic Primitive: Algorithm 5selection(mgraph g, pvar x, integer k): pvar1 pvar result, count, discarded 0;2 pvar still-selected true;3 for i b-1 downto 0 do4 count plus-association(t,still-selected and xi=0);5 where (count+discarded) k6 where xi=07 still-selected 0;8 end where9 discarded discarded+count;10 resulti1;11 elsewhere12 where xi=113 still-selected 0;14 end where15 resulti 0;16 end where17 end for18 return result;end
Other Primitives: Algorithm 6minimum-spanning-tree (mgraph mg): mgraph • 略 • Other Primitives: Algorithm 7single-source-shortest-path (mgraph g,pvar root, pvar weights[D]): mgraph • 略
Conclusion • a new parallel programming model: Association Net Model • basic operations: associations • efficiently realized by asynchronous computations • complex but efficient algorithms built by primitives • Future Works • a number of algorithms needed to be studied • real time computer vision • any graph-based applications