High-performance computing on a honeycomb architecture Borut Robi < = c and Jurij < = Silc Jo < = zef Stefan Institute , Computer Systems Department Jamova 39 , 61111 Ljubljana , Slovenia E-mail : borut.robic@ijs.si Technical Report CSD-93-8 October 1993 High-performance computing on a honeycomb architecture ? Borut Robi < = c and Jurij < = Silc Jo < = zef Stefan Institute , Computer Systems Department Jamova 39 , 61111 Ljubljana , Slovenia E-mail : borut.robic@ijs.si Abstract We explore time and space optimization problems involved in the mapping of parallel algorithms onto a honeycomb architecture . When a well-known mapping is used , mapped algorithms generally exhibit execution slow-down and require too large area . We design several optimization techniques and enhance the mapping process . Experimental results show more than 50 % saving in processor resources and 30 % saving in execution time , on average . Since computing performances are improved , also the applicability of the honeycomb architecture is wider . ? This work has been supported by Ministry of Science and Technology of the Republic of Slovenia under Grant Number J2-5092 . This report will appear in the proceedings of the 2nd Int ' l Conf . Austrian Center for Parallel Computation , Gmunden , Austria , October 4-6 , 1993 . -LRB- Lecture Notes of Computer Science 734 -RRB- Technical Report CSD-93-8 October 1993 1 Introduction In sequential computation special purpose machines have no major advantage over general purpose machines , since the later can perform the same functions almost as fast as the former . This means that , in sequential computation , the universality can also be made efficient . In parallel computing , however , the question of whether efficient universality can be found has no clear answer yet , in spite of the fact that several models of realistic machines have been proposed and many parallel computers have been built . For example , systolic and wavefront VLSI processor arrays proved efficient in execution of decision-free algorithms which are characterized by having a dataflow pattern and computation order independent of the data values -LSB- 7 -RSB- . Yet , these algorithmically specialized arrays are not suitable for execution of many other algorithms that do not exhibit such a high regularity . BUS l l l l l ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl BUS l l l l l ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl l l l l l ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl BUS l l l l l ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl l l l l l ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl ffl B U S l l l l l -LRB- a -RRB- ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH ???? HHHH -LRB- b -RRB- Fig. 1 . Honeycomb architecture : -LRB- a -RRB- Implementation . -LRB- b -RRB- Scheme . For this reason , a universal processor array , i.e. an array capable of executing arbitrary algorithms , was suggested in -LSB- 4 -RSB- . The array consists of cells -LRB- processing elements -RRB- which are arranged in rows , each pair of rows being separated by the communication bus -LRB- Fig. 1a -RRB- . The bus enables cells to communicate with a host computer for algorithm down-loading and data I/O . Each cell has six immediate neighbors , and is connected to them by point-to-point links . The computation is data-driven , i.e. each cell is capable of testing for the presence of its operands and executing only the instructions for which all the necessary operands have arrived . The name honeycomb is suggested by Fig. 1b , where only cells are depicted . An arbitrary parallel algorithm is written in a dataflow language , and mapped onto honeycomb architecture using a four-stage process . During the first stage the program is translated to a dataflow graph -LRB- DFG -RRB- . The second stage , referred to as DFG-mapping , maps the DFG onto a potentially unbounded honeycomb . The third stage partitions the array into chips while the last stage down-loads the tasks to the cells of the array . This idea of direct mapping an arbitrary algorithm on a hexagonally connected VLSI array was introduced in -LSB- 5 -RSB- and improved in -LSB- 12 -RSB- where medium grained parallelism was used . However , the universality of the array is not as attractive as it seems at first sight because not all mapped algorithms use the array efficiently . In particular , some may require a too large chip area , others may not execute fast enough . The mapping process may be improved by changing array architecture , thus making it more amenable to the mapping . In -LSB- 18 -RSB- , for example , blocks of cells -LRB- characterized by tighter coupling -RRB- are created , and array connectivity is improved by addition of wires and switching elements between blocks . In -LSB- 9 -RSB- cells contain up to 16 nodes and two communication links connect every two adjacent cells . In this paper , we improve computing performance of the honeycomb by adding the optimization process to the DFG-mapping while keeping the basic cell architecture . 2 Mapping The mapping process starts with the translation of a program , written in the dataflow language VAL , to a DFG . The translator was built utilizing Unix tools Lex and YACC -LSB- 6 -RSB- . Fig. 2 shows a simple if-then-else VAL program -LSB- 10 -RSB- and its translation to the DFG . function if then else -LRB- a ; b ; c ; d ; g ; h ; j ; k ; q : real -RRB- returns -LRB- real -RRB- if a = b thenif c = d theng ? -LRB- h + q -RRB- elsej + k endif elsee ? f endif endfun -LRB- a -RRB- m N22 m N23 m N21 m N20 m N19 m N17 m N18 m N14 m N15 m N12 m N16 m N13 m N10 m N11 mN 8 mN 9 mN 4 mN 5 mN 6 mN 7 mN 2 mN 1 mN 3 - @@ R ??? ??? ? ? @@@ ? ????? @@@@@ R @@ R ? ??? @@@@@ @@ R ? @@@ R @@ R @@ R ??? ??? @@ R @@ R ??? @@ R ??? ??? @@ R ??? @@ R oe - -LRB- b -RRB- Fig. 2 . if-then-else : -LRB- a -RRB- VAL program . -LRB- b -RRB- Its DFG . 2.1 DFG-mapping The DFG is mapped onto theoretically unbounded honeycomb during the DFG - mapping stage . At this point , some fundamental constraints , imposed by technological characteristics of the architecture , are to be obeyed . In particular , each cell is connected to six adjacent cells , communicates with them simultaneously , and is capable of performing computational and routing tasks concurrently . The DFG-mapping consists of three steps , referred to as layer construction , placement of the layers , and path construction . During the first step , the set of vertices of DFG is partitioned into layers . Layer consists of vertices accepting only external input data . A vertex is in layer i > 0 , if one of its inputs comes from a vertex at layer i ? 1 , and none come from layers k > = i . In order to construct layers , arcs that close loops are first detected applying depth-first traversal of DFG . These backward arcs are temporarily cut . This results is an acyclic subgraph of DFG whose vertices are then partitioned into layers according to labels obtained by topological sort . In the second step , each of the layers is placed on its own row of cells in the array . The placement is performed according to the associated labels , i.e. layer i is placed onto the i-th row . Next , the vertices in each row are permuted so that the paths which still remain to be built in the next step are expected to be short . Vertices which are to be connected are arranged as much as possible one under another to allow the paths between them to be as vertical as possible . The final step of DFG-mapping determines how the arcs of DFG are represented by paths in the array . The paths are built in a heuristic piece-meal fashion moving from one cell to another . At each cell , a single communication link is added to one or more incomplete paths which go through it . The processing of the incomplete paths is performed according to their dynamically assigned priorities . This makes it possible to choose a suitable routing heuristic . However , situations still develop where a large number of paths have to be routed through a small area on the array . In such cases only the last decision in the routing process is changed instead of performing an extensive backtracking to search for other routings . If this does not solve the problem , a row or column of cells is simply added to the array . The result of DFG-mapping for if-then-else example is depicted on Fig. 3 . Clearly , the depth-first traversal of the DFG cuts the loops at the last possible moment and thus constructs many layers . Since each layer is placed onto its own row the mapped DFG is overstretched downwards across the array . Moreover , each arc of DFG that has been temporarily cut connects vertices whose label-difference is proportional to the length of the loop . The corresponding path in the array may thus be very long . In summary , the mapped graph is exaggeratedly stretched downwards across the hosting array . It generally has vertical paths some of which connect cells of very distant rows . As a consequence , such DFG mappings exhibit two disadvantages . First ?? ?? HH HH N1@@ ??? ?? ?? HH HH HHH@@R ?? ?? HH HH N2@@R ?? ?? HH HH HHH@@R ?? ?? ?? HH HH N3@@R ?? ?? HH HH HHH@@R ?? ?? HH HH N4@@ ??? ?? ?? HH HH N5 ?? ?? ?? HH HH N6 ??? ?? ?? HH HH N7 ?? ?? ?? HH HH N8@@ ?? ?? ?? HH HHTTT ? ?? @@ oe ?? ?? HH HH N9@@ ?? ?? HH HH ??? oe ?? ?? HH HH - ?? ?? HH HH N10 HHH - @@ ??? ?? ?? HH HH N11 HHH@@ ?? ?? ?? HH HH HHH@@ ?? ?? ?? HH HH N12@@ ?? ?? ?? HH HH HHH < = < = < = ?? ?? ?? HH HH HHH HHH < = < = < = @@ R ?? ?? ?? HH HH - ?? ?? ?? HH HH N13@@R ??? ?? ?? HH HH - ?? ?? HH HH N14 HHH < = < = < = - @@ ?? ?? ?? HH HH N15 < = < = < = @@ R ?? ?? ?? HH HH N16@@ ??? ?? ?? HH HH N17@@R ?? ?? HH HH N18 ??? ?? ?? HH HH @@ ?? ?? HH HHTTT < = < = < = @@ R ?? ?? ?? HH HH N19@@ ??? ?? ?? HH HH ??? ?? ?? ?? HH HH N20 ?? ?? HH HHTTT < = < = < = @@ R ?? ?? ?? HH HH N21@@ ??? ?? ?? HH HH < = < = < = ?? ?? ?? HH HH @@ R ?? ?? HH HH N22 ??? ?? ?? HH HH ??? ?? oe ?? ?? HH HH N23 ?? ?? HH HH ??? oe Fig. 3 . if-then-else : Direct mapping . of all , since time complexity of routing operation is not negligible -LSB- 11 -RSB- , execution slowdown may occur as a result of remote communication between some cells -LRB- especially for cyclic DFGs -RRB- . Secondly , DFG mappings may require a too large area . 2.2 Optimization To evaluate the applicability of the proposed array , and to use it efficiently , one has to be able to map parallel algorithms onto it as optimally as possible . Hence , an optimization stage has to be designed . Let ? be a mapping and G a DFG . The cost of a mapped graph M = ? -LRB- G -RRB- is E -LRB- M -RRB- = Pp ` -LRB- p -RRB- ; where the sum is taken over all paths of M which are mappings of arcs in G , and ` -LRB- p -RRB- is the number of cells along each such path without endpoints . The object is to find mapping ?? which minimizes the cost E. Instead of a direct searching for ?? an existing mapping ? 0 is fixed , and an additional transformation o ? of ? 0 -LRB- G -RRB- is searched to minimize the cost by a composed mapping ? = o ? ffi ? 0 . For ? 0 the mapping of DFG-mapping from -LSB- 5,12 -RSB- is used . Fig. 4 shows the result of ?? ?? HH HH N2@@R ??? ?? ?? HH HH N1@@R ?? oe ?? ?? HH HH N4@@R ?? ?? HH HH N5@@ ??? ?? ?? HH HH N3@@R ??? ?? ?? HH HH N8@@R ??? ?? ?? HH HH N6HHH@@R ?? ?? HH HH N7 HHH@@R ??? ?? ?? HH HH N10@@R ??? ?? ?? HH HH N11@@ ?? ?? HH HH N9 HHH - @@ R ?? ?? HH HH N23 ?? ?? HH HH N12 ??? ?? ?? HH HH N16 - ??? ?? ?? HH HH N14TTT @@ R ??? ?? ?? HH HH N13 < = < = < = ??? - @@ R ?? ?? HH HH N18 ?? ?? ?? HH HH N15 - ?? ?? HH HH N19 - ?? ?? HH HH N21 - ?? ?? HH HH N22 ?? ?? ?? HH HH N17 < = < = < = @@ ??? ?? ?? HH HH N20 @@ I ?? ?? HH HH oe Fig. 4 . if-then-else : \ Optimal '' mapping . applying such a transformation to the mapping on Fig. 3 . The cost was reduced from E = 40 to E = 9 . Given some mapping M of a DFG we say that a transformation of M is regular if it moves a single vertex of M to an adjacent cell and rerouts all possible paths -LSB- 16 -RSB- . Generally , there are several regular transformations applicable to M . The neighborhood N -LRB- M -RRB- of M consists of all mappings obtained from M by regular transformations . Local search LS , which is a general method for designing approximation algorithms -LSB- 14 -RSB- , starts at initial mapping M = ? 0 -LRB- G -RRB- and searches for a mapping M in N -LRB- M -RRB- , so that E -LRB- M -RRB- < E -LRB- M -RRB- . As long as an improved mapping M exists , the algorithm adopts it and repeats the search from it . When a local minimum is reached , the algorithm stops . Fig. 5 shows the result of applying LS to the if-then-else example . The cost was reduced from E = 40 to E = 27 . 2.2.1 Probabilistic algorithms . Local search is a fast method but it generally gets trapped in a local optimum . To escape from local optima several probabilistic algorithms have been proposed in the past , including simulated annealing SA -LSB- 3 -RSB- , threshold accepting T A -LSB- 1 -RSB- , and quenching Q -LSB- 8 -RSB- . SA has become a popular tool for solving a wide class of combinatorial optimization problems -LSB- 3 -RSB- . In our case the algorithm runs as follows . As in local search it starts at initial mapping ? 0 -LRB- G -RRB- . After some mapping M has been reached , another mapping M is randomly chosen from the neighborhood N -LRB- M -RRB- . If M is better than M , it is accepted . If it is worse , however , it is accepted only with a certain probability . This ?? ?? HH HH ??? ?? ?? HH HH N2@@R ?? ?? HH HH N1 HHH @@ @@ R ?? ?? ?? HH HH HHH@@R ?? ?? HH HH N4@@ ??? ?? ?? HH HH N5 ?? ?? ?? HH HH N3@@R ??? ?? ?? HH HH N8@@ ?? ?? ?? HH HHTTT ? ?? @@ oe ?? ?? HH HH N6@@R ?? ?? HH HH N7 ??? ?? ?? HH HH - ?? ?? HH HH N10TTT - @@ R ??? ?? ?? HH HH N16 HHH@@ ?? ?? HH HH N9 HHH@@ ?? ?? ?? HH HH N12@@R ?? ?? HH HH N11 HHH@@R ?? ?? ?? HH HHTTT < = < = < = - @@ R ?? ?? ?? HH HH N13@@R ?? ?? ?? HH HH HHH@@R ?? ?? HH HH N14@@ ?? ?? HH HH N15 - @@ ??? ?? ?? HH HH N19@@ ?? ?? ?? HH HH N17 ??? ?? ?? HH HH N18 ?? ?? ?? HH HH N21@@R ?? ?? ?? HH HHTTT ??? ??? @@ R ??? oe ?? ?? HH HH N20 ??? ?? ?? HH HH ??? oe ?? ?? HH HH - ?? ?? HH HH N22 - ?? ?? HH HH N23 Fig. 5 . if-then-else : LS mapping . enables the algorithm to escape from trapping into a local minimum . The acceptance probability depends on a time-dependent parameter T and on the decrease in E . Since T is slowly lowered during the running time , also the acceptance probability is lowered , making \ bad '' acceptances more and more improbable . The algorithm has been implemented with the following annealing schedule : T is lowered by a constant value -LRB- temperature function -RRB- , at each T changes are attempted until a number of acceptances have occurred -LRB- number of repetitions -RRB- , and the algorithm stops when sufficiently few acceptances are occurring at successive temperatures -LRB- stopping criteria -RRB- . Fig. 6 shows the result of applying SA to the if-then-else example where the cost was reduced to E = 24 . A similar yet simpler algorithm is threshold accepting T A . It was reported in -LSB- 1 -RSB- that the algorithm yields better results than SA . Moreover , it was observed that with the same number of steps T A solutions were on the average better than SA solutions . In our case , while SA accepts worse mappings with certain probabilities , T A accepts every new mapping M which is \ not much worse '' than the old mapping M . To be more specific , after some mapping M has been reached , another mapping M is randomly chosen from the neighborhood N -LRB- M -RRB- . If M is better than M , i.e. if E -LRB- M -RRB- < E -LRB- M -RRB- , it is accepted . If it is worse , it is accepted only if E -LRB- M -RRB- ? E -LRB- M -RRB- < t , for some threshold t > 0 . This enables the algorithm to escape from trapping into a local minimum . However , the acceptances of worse mappings become more and more rare because the threshold t is slowly lowered during the running time . ?? ?? HH HH N2@@R ??? ?? ?? HH HH N1 - ?? oe ?? ?? HH HH N3@@R ??? ?? ?? HH HH N5???@@R ?? ?? ?? HH HH N4 < = < = < = ?? ?? ?? HH HH N6???@@R ?? ?? HH HH N7 HHH@@ ??? ?? ?? HH HH - ?? ?? HH HH N8 - @@ ??? ?? ?? HH HH N10 < = < = < = ?? @@ R ?? ?? HH HH N9 HHH@@R ?? ?? ?? HH HHTTT @@ R ?? ?? HH HH N11@@ ?? ?? HH HH N14 ????? @@ R ??? ?? ?? HH HH N12 < = < = < = @@ R ?? oe ?? ?? HH HH N16 ?? ?? ?? HH HH N13@@ ??? ?? ?? HH HH N23 ?? ?? ?? HH HH N21 ??? ??? oe ?? ?? HH HH N15@@ ??? ?? ?? HH HH N17 ??? ?? ?? HH HH ??? ?? ?? HH HH - ?? ?? HH HH N22 @@ I ?? ?? HH HH N19 HHH @@ I oe ?? ?? HH HH N20 ?? oe ?? ?? HH HH N18 oe ?? ?? HH HH @@ Fig. 6 . if-then-else : SA mapping . 2.2.2 Deterministic modifications . The choice of a \ good '' neighborhood for the problem is usually guided by intuition . There is a trade-off between large and small neighborhoods , since large neighborhoods may provide better local optima but generally take longer to search -LSB- 3 -RSB- . If the neighborhoods are too small , the process may not be able to move around quickly enough to reach the minimum in a reasonable time . On the other hand , if the neighborhoods are too large , the process essentially performs a random search . In our case , the neighborhood N -LRB- M -RRB- as defined above -LRB- by regular transformations of M -RRB- is an adequate compromise . However , the neighborhood structure is not the only aspect that is free to be chosen so that the convergence speed of the algorithms is improved . In this paper we design two modifications of SA and T A , which are still capable of escaping local minima but have improved convergence speed . Informally , after some mapping M has been reached , deterministic selection of the next mapping M 2 N -LRB- M -RRB- is performed instead of a random one . This selection is made by using \ the most promising '' transformation of M , i.e. such a regular transformation , that the greatest decrease in the cost E is expected after applying on M . We call the guiding regular transformation , and the modified algorithms Guided Simulated Annealing GSA and Guided Threshold Accepting GT A. GSA algorithm : GT A algorithm : let M be initial mapping ? 0 -LRB- G -RRB- let M be initial mapping ? 0 -LRB- G -RRB- choose an initial temperature T > choose an initial threshold t > loop : construct guiding transformation loop : construct guiding transformation M : = -LRB- M -RRB- M : = -LRB- M -RRB- ? E : = E -LRB- M -RRB- ? E -LRB- M -RRB- ? E : = E -LRB- M -RRB- ? E -LRB- M -RRB- if ? E < if ? E < t then M : = M then M : = M else if random -LRB- 0 ; 1 -RRB- < = e ?? E = T if a long time no decrease in E then M : = M or too many iterations if a long time no decrease in E then lower t or too many iterations if some time no change in E then lower T then stop if some time no change in E goto loop . then stop goto loop . ?? ?? HH HH N4 ??? ?? ?? HH HH N2 ??? oe ?? ?? HH HH HHH oe ?? ?? HH HH N8@@R ?? ?? ?? HH HH N5 oe ?? ?? HH HH N3@@R ??? ?? ?? HH HHTTT@@ oe ?? ?? HH HH @@ ?? ?? HH HH N10@@ ??? ?? ?? HH HH N7@@R ?? ?? HH HH N6 ?? ??? ?? ?? HH HH N1 @@ @@ ?? ?? HH HH N12 HHH - @@ ?? ?? ?? HH HH N11TTT @@ ?? ?? ?? HH HH N9 - @@ ?? ?? HH HH N13 - @@ R ?? ?? HH HH N18@@ ?? ?? ?? HH HH - ?? ?? HH HH N14 HHH < = < = < = - @@ R ?? ?? ?? HH HH N15 HHH - @@ R ?? ?? HH HH N16TTT @@ R ??? ?? ?? HH HH N17 < = < = < = @@ R ??? ?? ?? HH HH ??? ?? ?? HH HH @@ ?? ?? HH HH N21@@R ?? ?? HH HH N19 ??? - oe ?? ?? HH HH N23 ??? ?? ?? ?? HH HH N20 ?? ?? HH HH HHH - ?? ?? HH HH N22 ?? ?? ?? HH HH ??? oe Fig. 7 . if-then-else : GSA mapping . Heuristic construction of the guiding regular transformation of M proceeds as follows . For each vertex v of M and each path p incident to v a physical force of attraction is assigned to v , having its magnitude proportional to ` -LRB- p -RRB- and direction from v to the next processor on p. Let ?! F -LRB- v -RRB- be the vector sum of all such forces acting upon v , F -LRB- v -RRB- its magnitude , and d -LRB- v -RRB- one of six directions from v to adjacent processors which is closest to ?! F -LRB- v -RRB- . Now , let v1 ; v2 ; : : : be ordering of vertices of M , such that F -LRB- vi -RRB- > = F -LRB- vi +1 -RRB- , for i = 1 ; 2 ; : : : . Then the guiding regular transformation is described by a pair -LRB- vk ; d -LRB- vk -RRB- -RRB- , where k is the smallest index such that vk can be moved in direction d -LRB- vk -RRB- to the adjacent processor rerouting all incident paths . ?? ?? HH HH @@ R ?? ?? HH HH N2@@R ??? ?? ?? HH HH oe ?? ?? HH HH N1 ????? @@ ??? ?? ?? HH HH N3 ??? ?? ?? HH HH N4@@R ?? ?? HH HH N5 ??? ?? ?? HH HH N6@@R ?? ?? HH HH N7TTT @@ ??? ?? ?? HH HH @@ ?? ?? HH HH N8 - ??? ?? ?? HH HH N10@@ ??? ?? ?? HH HH N9 ??? - @@ ?? ?? HH HH N13TTT @@ ?? ?? ?? HH HH HHH@@ ?? ?? HH HH N14TTT @@ R ?? ?? HH HH N12 HHH @@ - @@ R ?? ?? HH HH N15 < = < = < = HHH ?? - @@ R ?? ?? HH HH N16TTT - @@ R ??? ?? ?? HH HH N17@@ ??? ?? ?? HH HH ??? ?? ?? HH HH N11@@ ?? ?? HH HH N21 ????? @@ R ?? ?? HH HH N19 ??? - oe ?? ?? HH HH N23@@R ?? ?? HH HH N18 ??? ?? ?? HH HH HHH - ?? ?? HH HH N22 ?? ?? ?? HH HH oe ?? ?? HH HH N20 Fig. 8 . if-then-else : GT A mapping . Fig. 7 and Fig. 8 show the results of applying GSA and GT A to the if-then - else example , respectively . GT A returned E = 23 while GSA returned E = 21 . Moreover , these results were obtained 3 to 5-times quicker compared to SA . 3 Experimental Results We obtained several experimental results utilizing GraphCompactor , a tool which we designed to perform optimization with algorithms LS , GT A , GSA , and SA -LSB- 15 -RSB- . We considered fourteen DFGs from -LSB- 5,11,13 -RSB- . For each DFG probabilistic algorithms have been run 3 -LCB- 5 times with different annealing schedules . Algorithms SA and GSA were implemented with the following annealing schedule . Initial temperature is T0 = aE0 , where E0 is the cost of initial mapping and a > 0 . At each temperature Ti changes are attempted until cn of acceptances have occurred , after which Ti is lowered to Ti +1 = bTi , where n is the number of nodes in graph , < b < 1 , and c > 0 . Algorithms stop when sufficiently few acceptances are occurring at successive temperatures . The annealing schedule for GT A algorithm was the same as above with threshold t instead of temperature T . We considered :1 < = a < = :2 , :8 < = b < = :9 , and :2 < = c < = :3 . The quality of mappings M = ? -LRB- G -RRB- was evaluated by the following measures : -LCB- area A -LRB- M -RRB- , i.e. the number of cells utilized by mapping M , -LCB- chip-size C -LRB- M -RRB- , the number of cells in the smallest rectangle enclosing M , -LCB- maximum path length b ` -LRB- M -RRB- , i.e. the number of cells on the longest path of the mapping M , -LCB- average path length ? ` -LRB- M -RRB- , i.e. the average number of cells used to map an arc of G , -LCB- average execution time ! -LRB- M -RRB- of the mapping M . Table 1 Average relative improvement of the DFG-mapping -LRB- in % -RRB- . area chip-size max.path length avrg.path length avrg.execution time Algorithm A C ^ ` ? ` ! LS 30 32 61 56 23 GT A 43 47 80 75 27 GSA 44 46 84 78 38 SA 47 51 82 81 36 \ optimal '' 51 61 87 90 46 Table 1 shows average relative improvements of the DFG-mapping which were obtained by algorithms LS , GT A , GSA , and SA . The average reduction in the chip size C -LRB- i.e. processor resources -RRB- was between 32 % and 51 % , depending on the algorithm used . Note that at the same time the execution time ! was reduced by 23 % to 36 % . Generally , it is difficult to say how close to optimal the improvements are , since there is no efficient way of knowing what the best mapping for a specific DFG is . However , using interactive mode of our GraphCompactor we were able to obtain \ optimal '' mappings , i.e. mappings having the energy E \ close '' to -LRB- Table 1 -RRB- . Note that the results obtained automatically are near - \ optimal '' . 4 Concluding remarks Since the honeycomb data-driven array is capable of executing arbitrary algorithms , it can be connected to a host system to function as a slave processor to handle specialized computationally intensive tasks . In the paper , we have experimentally shown that the efficiency of the array may be considerably improved . As a result , the improved performance of the array makes its universality much more attractive . This makes possible to compare this pure data-driven architecture to other ones , especially the new hybrid data/control-driven architectures -LSB- 2,17 -RSB- . In discussing the problem of mapping parallel algorithms onto honeycomb architecture we have shown that there is a lot of possibilities for improvement of initial mappings produced by the DFG-mapping from -LSB- 5,12 -RSB- . In particular , these mappings exhibit execution slow-down and require too many cells -LRB- processing elements -RRB- . We designed an optimization process and enhanced the DFG-mapping . The execution efficiency was thus considerably improved -LRB- more than 50 % saving in honeycomb space and 30 % saving in execution time , on average -RRB- . The applicability of the array is therefore much wider , since larger parallel algorithms can be mapped onto it . For example , algorithm Even process -LSB- 6 -RSB- originally used 14 ? 16 cells . After optimization , however , it was mapped onto an array consisting of 8 ? 8 cells and executed twice faster . Similarly , the area and execution time for algorithm Newton -LSB- 5 -RSB- were reduced by 62 % and 43 % , respectively . For Runge-Kutta -LSB- 13 -RSB- these improvements are 50 % and 45 % . Since electronic components will never be totally reliable , a possibility of production or run-time failures should also be considered . For that reason , all the algorithms mentioned above should take into account the presence of faulty cells in the array . Finaly , to speed up even these new optimization algorithms , the possibility of their parallelization should be analyzed . References -LSB- 1 -RSB- G.Dueck , T.Scheuer . Threshold Accepting : A General Purpose Optimization Algorithm Appearing Superior to Simulated Annealing , Tech . Rep. TR 88.10.011 , IBM Scientific Center , Heidelberg , October 1988 . -LSB- 2 -RSB- R.A.Iannucci . A Dataflow / von Neumann Hybrid Architecture , Tech . Rep. TR-418 , Lab . Computer Science , MIT , Massachusetts , May 1988 . -LSB- 3 -RSB- M.E.Johnson , ed . Simulated Annealing -LRB- SA -RRB- & Optimization : Modern Algorithms with VLSI , Optimal Design , and Missile Defence Applications , American J. Math . Manag . Sc . 8 , 3 & 4 -LRB- 1988 -RRB- 205 -LCB- 449 . -LSB- 4 -RSB- I.Koren , I.Peled . The Concept and Implementation of Data-Driven Array , IEEE Computer 20 -LRB- July 1987 -RRB- 102 -LCB- 103 . -LSB- 5 -RSB- I.Koren , G.M.Silberman . A Direct Mapping of Algorithms onto VLSI Processing Arrays Based on the Data Flow Approach , Proc . ICPP 83 , Aug. 1983 , 335 -LCB- 337 . -LSB- 6 -RSB- I.Koren , B.Mendelson , I.Peled , G.M.Silberman . A Data-Driven VLSI Array for Arbitrary Algorithms , IEEE Computer 21 -LRB- Oct. 1988 -RRB- 30 -LCB- 43 . -LSB- 7 -RSB- S.Y.Kung . VLSI Array Processors . -LRB- Prentice Hall , 1988 -RRB- . -LSB- 8 -RSB- C.Lee , L.Bic . Comparing Quenching and Slow Simulated Annealing on the Mapping Problem , Proc . 3rd Annual Parallel Processing Symp. , March 1989 , 671 -LCB- 685 . -LSB- 9 -RSB- B.Mendelson , I.Koren . Using Simulated Annealing for Mapping Algorithms onto DataDriven Arrays , Proc . ICPP 91 , Aug. 1991 , I-123 -LCB- I-127 . -LSB- 10 -RSB- B.Mendelson , I.Koren . Estimating the Potential Parallelism and Pipelining of Algorithms for Data Flow Machines , J. Parall . Distr . Comp . 14 -LRB- Jan. 1992 -RRB- 15 -LCB- 28 . -LSB- 11 -RSB- B.Mendelson , G.M.Silberman . Mapping Data Flow Programs on a VLSI Array of Processors , Proc . ISCA 87 , June 1987 , 72 -LCB- 80 . -LSB- 12 -RSB- B.Mendelson , G.M.Silberman . An Improved Mapping of Data Flow Programs on a VLSI Array of Processors , Proc . ICPP 87 , Aug. 1987 , 871 -LCB- 873 . -LSB- 13 -RSB- B.Mendelson , G.M.Silberman . Private communication . -LSB- 14 -RSB- C.H.Papadimitriou , K.Steiglitz . Combinatorial Optimization : Algorithms and Complexity . -LRB- Prentice Hall , 1982 -RRB- . -LSB- 15 -RSB- B.Robi < = c , P.Kolbezen , J. < = Silc . Graph Compactor for Mapping of Algorithms on VLSI Processor Arrays , Proc . ISMM Int ' l Workshop Parallel Comput. , Sep. 1991 , 198 -LCB- 200 . -LSB- 16 -RSB- B.Robi < = c , P.Kolbezen , J. < = Silc . Area Optimization of Dataflow-Graph Mappings , Parall . Comput . 18 , 3 -LRB- 1992 -RRB- 297 -LCB- 311 . -LSB- 17 -RSB- J. < = Silc , B.Robi < = c. Synchronous Dataflow-Based Architecture , Microproc . Microprog . 27 , 1-5 -LRB- 1989 -RRB- 315 -LCB- 322 . -LSB- 18 -RSB- S.Weiss , I.Spillinger , G.M.Silberman. : Architectural Improvements for Data-Driven VLSI Processing Arrays , Proc . 1989 Conf . Functional Programming Languages and Comput . Arch. , Sep. 1989 , 243 -LCB- 259 .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

hexagonally connected data-driven array
optimization methods
treshold accepting