%PDF-1.4
%ÐÔÅØ
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
8 0 obj
(1 Introduction)
endobj
9 0 obj
<< /S /GoTo /D (subsection.1.1) >>
endobj
12 0 obj
(1.1 Background)
endobj
13 0 obj
<< /S /GoTo /D (subsection.1.2) >>
endobj
16 0 obj
(1.2 Document notes)
endobj
17 0 obj
<< /S /GoTo /D (section.2) >>
endobj
20 0 obj
(2 Preliminary information)
endobj
21 0 obj
<< /S /GoTo /D (subsection.2.1) >>
endobj
24 0 obj
(2.1 Transputers)
endobj
25 0 obj
<< /S /GoTo /D (subsection.2.2) >>
endobj
28 0 obj
(2.2 Processes)
endobj
29 0 obj
<< /S /GoTo /D (subsection.2.3) >>
endobj
32 0 obj
(2.3 The transputer / host development relationship)
endobj
33 0 obj
<< /S /GoTo /D (subsection.2.4) >>
endobj
36 0 obj
(2.4 Why port to a transputer?)
endobj
37 0 obj
<< /S /GoTo /D (subsection.2.5) >>
endobj
40 0 obj
(2.5 Different categories of application porting)
endobj
41 0 obj
<< /S /GoTo /D (subsubsection.2.5.1) >>
endobj
44 0 obj
(2.5.1 Transputer software development tools)
endobj
45 0 obj
<< /S /GoTo /D (section.3) >>
endobj
48 0 obj
(3 Altering the application as little as possible)
endobj
49 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
52 0 obj
(3.1 The scenario)
endobj
53 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
56 0 obj
(3.2 Suitable applications)
endobj
57 0 obj
<< /S /GoTo /D (subsubsection.3.2.1) >>
endobj
60 0 obj
(3.2.1 Requirements)
endobj
61 0 obj
<< /S /GoTo /D (subsubsection.3.2.2) >>
endobj
64 0 obj
(3.2.2 Good candidates)
endobj
65 0 obj
<< /S /GoTo /D (subsection.3.3) >>
endobj
68 0 obj
(3.3 Identifying the best transputer for your application)
endobj
69 0 obj
<< /S /GoTo /D (subsection.3.4) >>
endobj
72 0 obj
(3.4 Some potential porting difficulties)
endobj
73 0 obj
<< /S /GoTo /D (subsection.3.5) >>
endobj
76 0 obj
(3.5 An implementation overview)
endobj
77 0 obj
<< /S /GoTo /D (subsection.3.6) >>
endobj
80 0 obj
(3.6 Porting example: SPICE)
endobj
81 0 obj
<< /S /GoTo /D (subsubsection.3.6.1) >>
endobj
84 0 obj
(3.6.1 About SPICE)
endobj
85 0 obj
<< /S /GoTo /D (subsubsection.3.6.2) >>
endobj
88 0 obj
(3.6.2 Performance)
endobj
89 0 obj
<< /S /GoTo /D (subsection.3.7) >>
endobj
92 0 obj
(3.7 Porting example: TeX)
endobj
93 0 obj
<< /S /GoTo /D (subsubsection.3.7.1) >>
endobj
96 0 obj
(3.7.1 About TeX)
endobj
97 0 obj
<< /S /GoTo /D (subsubsection.3.7.2) >>
endobj
100 0 obj
(3.7.2 Performance)
endobj
101 0 obj
<< /S /GoTo /D (subsection.3.8) >>
endobj
104 0 obj
(3.8 Further work)
endobj
105 0 obj
<< /S /GoTo /D (section.4) >>
endobj
108 0 obj
(4 Parallelizing the application)
endobj
109 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
112 0 obj
(4.1 Types of parallelism)
endobj
113 0 obj
<< /S /GoTo /D (subsection.4.2) >>
endobj
116 0 obj
(4.2 Why parallelize?)
endobj
117 0 obj
<< /S /GoTo /D (subsection.4.3) >>
endobj
120 0 obj
(4.3 Definitions)
endobj
121 0 obj
<< /S /GoTo /D (subsection.4.4) >>
endobj
124 0 obj
(4.4 The stages in modularizing)
endobj
125 0 obj
<< /S /GoTo /D (subsection.4.5) >>
endobj
128 0 obj
(4.5 Modules)
endobj
129 0 obj
<< /S /GoTo /D (subsubsection.4.5.1) >>
endobj
132 0 obj
(4.5.1 Module properties)
endobj
133 0 obj
<< /S /GoTo /D (subsubsection.4.5.2) >>
endobj
136 0 obj
(4.5.2 Modules provided by the INMOS tools)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.4.5.3) >>
endobj
140 0 obj
(4.5.3 Instancing modules)
endobj
141 0 obj
<< /S /GoTo /D (subsubsection.4.5.4) >>
endobj
144 0 obj
(4.5.4 Module structure)
endobj
145 0 obj
<< /S /GoTo /D (subsubsection.4.5.5) >>
endobj
148 0 obj
(4.5.5 Module communication requirements)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.4.5.6) >>
endobj
152 0 obj
(4.5.6 Module communication protocol)
endobj
153 0 obj
<< /S /GoTo /D (subsection.4.6) >>
endobj
156 0 obj
(4.6 Guidelines on dividing an application into modules)
endobj
157 0 obj
<< /S /GoTo /D (section.5) >>
endobj
160 0 obj
(5 Implementing modules)
endobj
161 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
164 0 obj
(5.1 The technique)
endobj
165 0 obj
<< /S /GoTo /D (subsubsection.5.1.1) >>
endobj
168 0 obj
(5.1.1 Overview)
endobj
169 0 obj
<< /S /GoTo /D (subsubsection.5.1.2) >>
endobj
172 0 obj
(5.1.2 Benefits)
endobj
173 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
176 0 obj
(5.2 Example of module implementation)
endobj
177 0 obj
<< /S /GoTo /D (subsection.5.3) >>
endobj
180 0 obj
(5.3 Implementation notes)
endobj
181 0 obj
<< /S /GoTo /D (subsection.5.4) >>
endobj
184 0 obj
(5.4 Some coding examples)
endobj
185 0 obj
<< /S /GoTo /D (subsection.5.5) >>
endobj
188 0 obj
(5.5 Software methods of increasing performance)
endobj
189 0 obj
<< /S /GoTo /D (subsubsection.5.5.1) >>
endobj
192 0 obj
(5.5.1 Good ideas)
endobj
193 0 obj
<< /S /GoTo /D (subsubsection.5.5.2) >>
endobj
196 0 obj
(5.5.2 Bad ideas)
endobj
197 0 obj
<< /S /GoTo /D (subsection.5.6) >>
endobj
200 0 obj
(5.6 Further work)
endobj
201 0 obj
<< /S /GoTo /D (section.6) >>
endobj
204 0 obj
(6 Using transputers with other processors)
endobj
205 0 obj
<< /S /GoTo /D (subsection.6.1) >>
endobj
208 0 obj
(6.1 Suitable applications)
endobj
209 0 obj
<< /S /GoTo /D (subsection.6.2) >>
endobj
212 0 obj
(6.2 Software support for mixed processor systems)
endobj
213 0 obj
<< /S /GoTo /D (subsubsection.6.2.1) >>
endobj
216 0 obj
(6.2.1 Accommodating architectural differences)
endobj
217 0 obj
<< /S /GoTo /D (subsubsection.6.2.2) >>
endobj
220 0 obj
(6.2.2 Using services provided by another processor)
endobj
221 0 obj
<< /S /GoTo /D (subsection.6.3) >>
endobj
224 0 obj
(6.3 Hardware support for mixed processor systems)
endobj
225 0 obj
<< /S /GoTo /D (subsection.6.4) >>
endobj
228 0 obj
(6.4 Communication mechanisms)
endobj
229 0 obj
<< /S /GoTo /D (subsubsection.6.4.1) >>
endobj
232 0 obj
(6.4.1 Communication by explicit polling)
endobj
233 0 obj
<< /S /GoTo /D (subsubsection.6.4.2) >>
endobj
236 0 obj
(6.4.2 Communication by explicit DMA)
endobj
237 0 obj
<< /S /GoTo /D (subsubsection.6.4.3) >>
endobj
240 0 obj
(6.4.3 Communication by device drivers)
endobj
241 0 obj
<< /S /GoTo /D (subsubsection.6.4.4) >>
endobj
244 0 obj
(6.4.4 Increasing data exchange bandwidth by software means)
endobj
245 0 obj
<< /S /GoTo /D (subsection.6.5) >>
endobj
248 0 obj
(6.5 Implementation strategy)
endobj
249 0 obj
<< /S /GoTo /D (subsection.6.6) >>
endobj
252 0 obj
(6.6 Testing strategy)
endobj
253 0 obj
<< /S /GoTo /D (subsection.6.7) >>
endobj
256 0 obj
(6.7 Further work)
endobj
257 0 obj
<< /S /GoTo /D (subsection.6.8) >>
endobj
260 0 obj
(6.8 Mixed processor example)
endobj
261 0 obj
<< /S /GoTo /D (section.7) >>
endobj
264 0 obj
(7 Farming an application)
endobj
265 0 obj
<< /S /GoTo /D (subsection.7.1) >>
endobj
268 0 obj
(7.1 Suitable applications)
endobj
269 0 obj
<< /S /GoTo /D (subsection.7.2) >>
endobj
272 0 obj
(7.2 General farm discussion)
endobj
273 0 obj
<< /S /GoTo /D (subsubsection.7.2.1) >>
endobj
276 0 obj
(7.2.1 The software components)
endobj
277 0 obj
<< /S /GoTo /D (subsubsection.7.2.2) >>
endobj
280 0 obj
(7.2.2 The farm protocol)
endobj
281 0 obj
<< /S /GoTo /D (subsection.7.3) >>
endobj
284 0 obj
(7.3 Interfacing to the farm)
endobj
285 0 obj
<< /S /GoTo /D (subsubsection.7.3.1) >>
endobj
288 0 obj
(7.3.1 Interfacing to another transputer process)
endobj
289 0 obj
<< /S /GoTo /D (subsubsection.7.3.2) >>
endobj
292 0 obj
(7.3.2 Interfacing to a process on a non-transputer processor)
endobj
293 0 obj
<< /S /GoTo /D (subsection.7.4) >>
endobj
296 0 obj
(7.4 Performance issues)
endobj
297 0 obj
<< /S /GoTo /D (subsubsection.7.4.1) >>
endobj
300 0 obj
(7.4.1 Linearity)
endobj
301 0 obj
<< /S /GoTo /D (subsubsection.7.4.2) >>
endobj
304 0 obj
(7.4.2 Priority)
endobj
305 0 obj
<< /S /GoTo /D (subsubsection.7.4.3) >>
endobj
308 0 obj
(7.4.3 Protocol)
endobj
309 0 obj
<< /S /GoTo /D (subsubsection.7.4.4) >>
endobj
312 0 obj
(7.4.4 Overheads)
endobj
313 0 obj
<< /S /GoTo /D (subsubsection.7.4.5) >>
endobj
316 0 obj
(7.4.5 Buffering)
endobj
317 0 obj
<< /S /GoTo /D (subsubsection.7.4.6) >>
endobj
320 0 obj
(7.4.6 Load balancing)
endobj
321 0 obj
<< /S /GoTo /D (subsubsection.7.4.7) >>
endobj
324 0 obj
(7.4.7 General farming principles)
endobj
325 0 obj
<< /S /GoTo /D (subsection.7.5) >>
endobj
328 0 obj
(7.5 Farming part of an application)
endobj
329 0 obj
<< /S /GoTo /D (subsubsection.7.5.1) >>
endobj
332 0 obj
(7.5.1 Scenario)
endobj
333 0 obj
<< /S /GoTo /D (subsubsection.7.5.2) >>
endobj
336 0 obj
(7.5.2 Implementation)
endobj
337 0 obj
<< /S /GoTo /D (subsection.7.6) >>
endobj
340 0 obj
(7.6 Farming an entire application)
endobj
341 0 obj
<< /S /GoTo /D (subsubsection.7.6.1) >>
endobj
344 0 obj
(7.6.1 Scenario)
endobj
345 0 obj
<< /S /GoTo /D (subsubsection.7.6.2) >>
endobj
348 0 obj
(7.6.2 Implementation)
endobj
349 0 obj
<< /S /GoTo /D (subsubsection.7.6.3) >>
endobj
352 0 obj
(7.6.3 Alternative implementation)
endobj
353 0 obj
<< /S /GoTo /D (subsection.7.7) >>
endobj
356 0 obj
(7.7 Farming a heterogeneous processor application)
endobj
357 0 obj
<< /S /GoTo /D (subsubsection.7.7.1) >>
endobj
360 0 obj
(7.7.1 Scenario)
endobj
361 0 obj
<< /S /GoTo /D (subsubsection.7.7.2) >>
endobj
364 0 obj
(7.7.2 Implementation)
endobj
365 0 obj
<< /S /GoTo /D (subsubsection.7.7.3) >>
endobj
368 0 obj
(7.7.3 Alternative implementation)
endobj
369 0 obj
<< /S /GoTo /D (subsection.7.8) >>
endobj
372 0 obj
(7.8 Part port farm example: Second Sight)
endobj
373 0 obj
<< /S /GoTo /D (subsubsection.7.8.1) >>
endobj
376 0 obj
(7.8.1 About Second Sight)
endobj
377 0 obj
<< /S /GoTo /D (subsubsection.7.8.2) >>
endobj
380 0 obj
(7.8.2 Performance)
endobj
381 0 obj
<< /S /GoTo /D (subsection.7.9) >>
endobj
384 0 obj
(7.9 Further work)
endobj
385 0 obj
<< /S /GoTo /D (subsubsection.7.9.1) >>
endobj
388 0 obj
(7.9.1 Flood-filling a transputer network)
endobj
389 0 obj
<< /S /GoTo /D (subsubsection.7.9.2) >>
endobj
392 0 obj
(7.9.2 Extraordinary use of transputer links)
endobj
393 0 obj
<< /S /GoTo /D (subsubsection.7.9.3) >>
endobj
396 0 obj
(7.9.3 Overcoming I/O bottlenecks)
endobj
397 0 obj
<< /S /GoTo /D (subsubsection.7.9.4) >>
endobj
400 0 obj
(7.9.4 Comparison between farms and application pipelining)
endobj
401 0 obj
<< /S /GoTo /D (subsubsection.7.9.5) >>
endobj
404 0 obj
(7.9.5 Farms of farms)
endobj
405 0 obj
<< /S /GoTo /D (subsubsection.7.9.6) >>
endobj
408 0 obj
(7.9.6 Dynamic link switching)
endobj
409 0 obj
<< /S /GoTo /D (section.8) >>
endobj
412 0 obj
(8 Planning the structure of a new application)
endobj
413 0 obj
<< /S /GoTo /D (section.9) >>
endobj
416 0 obj
(9 Summary and Conclusions)
endobj
417 0 obj
<< /S /GoTo /D (section*.2) >>
endobj
420 0 obj
(References)
endobj
421 0 obj
<< /S /GoTo /D [422 0 R /Fit ] >>
endobj
424 0 obj <<
/Length 406
/Filter /FlateDecode
>>
stream
xÚuR»nÜ0ìõ[J
Ö\>D²´
?bÀ6«sR:ÝYRD©Èß<^Ø+¸;»Ã28 »}q^µÅÅ-iàµÑíc(@Z¤9´;x-_¦c_ÕB«raëÃûêgû µØÄ5·hÉÐ
½¯ëðìêÑùÃæ}¦4
2)nÇ¡së0ù<Ó²þoße>7Ø°Oü½[ï[xëâ|·µ_B"7mñ« øzD
7 ,CÞpèE*(!XzØßÏ^Y BÆÞäqD ª¡,äÛÓãóKÜXÙVQ@_EÔ½ù¡KÀ¹ô4}FJt}æâVh ÙS.Ú 4j²
®ó®K¿û§QÞ»ãGGǧs.¤dG PI ×)L3ï2ÙxÙúoïi3üû¯!¬ÓÆG'Ô¿êȪøø)fe^ö°I%YcÏÑi$NYÊm×íõ}ͨý×Ù¢
endstream
endobj
422 0 obj <<
/Type /Page
/Contents 424 0 R
/Resources 423 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 431 0 R
>> endobj
425 0 obj <<
/D [422 0 R /XYZ 117.828 740.002 null]
>> endobj
426 0 obj <<
/D [422 0 R /XYZ 117.828 715.095 null]
>> endobj
423 0 obj <<
/Font << /F17 427 0 R /F19 428 0 R /F37 429 0 R /F15 430 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
435 0 obj <<
/Length 707
/Filter /FlateDecode
>>
stream
xÚuT[o0~ϯð£#á²>¥YÚ2¤K¨ª¨Ú!Nc
bfȪþûÙ>&
Ú&$Û|çï\m½!ÝÜÿìT.¢È§ÄòÂ^Êzôkä÷»}lÂ3vÖ}£ïêëùй`¼ÍG×wt^ò=¢4"±zA@"¡|^ñfûXÆïû¸.Æ^?ôO¢û2þ;h@Ü9&ñ}0§d¨òêLgbì(¢ßk.×ÇÝéC³¢cU¸°Z+W5@û^Vû ¼uÍd©@Ødc|]i(Ávþèõ¶/u¬úÄs}%ÉdiìxÛT6yU+(03©B©cÉ,ÜW
ÌÄØÕÍ°ÎٮμÖl¥8)®
&úÜi¨R4&HÉßÆã0¡Êgä¬+¤5Uíä%kÁ`/E
0tFÎ1)¨ÿnv~àÊ>ð<¼Ó
pyª ¯Ó0Åg1o;É·§í¬àãMaÛãEOÑòΫ
í¥¢ý©R+¾¤ùÃò97»ÃÎN±¾øeL)ÅÓÕjºÈ77½óî 4OCÌ êGA]Ô×MÅuZç]«RÂLvý`*Øz6_itö ÜèQÞ¦i¾Bh}×îÒ|1_¯¡3wÚz¹É¶'C´ÒkΧVüô¼zZ®çäL®îzl{.²åÚlÁ)ÀËÙlÙ¹¶ñ,v¬.äO;&m¥àøÈk®zùéÈ' ¹p4PÞZ?öiQ÷Z
ÊÖÌ
駫ó®ï×je¶^.@#ã¥Yc+;)¼´qÞKqjWÉ