Path: utzoo!utgpu!attcan!uunet!ncrlnk!ncr-sd!hp-sdd!hplabs!ucbvax!prg.oxford.ac.uk!cpw From: cpw@prg.oxford.ac.uk (Phil Winder) Newsgroups: comp.sys.transputer Subject: Re: Increasing Transputer Efficiency Keywords: efficiency Message-ID: <8811061855.AA13132@uk.ac.oxford.prg.client14> Date: 6 Nov 88 18:55:51 GMT References: <671@prlhp1.prl.philips.co.uk> <675@prlhp1.prl.philips.co.uk> Sender: daemon@ucbvax.BERKELEY.EDU Organization: Oxford University Computing Laboratory, Oxford, UK Lines: 49 Referring to C.P. Winder, ``Parallel Processing with the DisPuter'', in Developments using occam, Ed. Jon Kerridge, IOS (1988), a paper presented at the 8th oUG meeting at Sheffield this March, notes that instruction throughput may be increased by up to 40% by suppressing run-time range checking. He asks: > My question is how do you do this? ( For information the software is written > using Inmos' TDS system ). The essentials of the program used to obtain these figures are given below: --1 a[i] := b[c[i]] -- contrived example. []INT a, b, c: INT i: a[i] := b[c[i]] --2 a[i] := b[i] + c[i] -- slightly less contrived example a[i] := b[i] + c[i] Using a T414B-20 on-chip memory with the TDS2-beta release software gave: checking on: 69; 77 checking off: 45; 53 cycles. Smaller speed increases will follow from typical code. It is not advisable to disable all the error-checking except for highly trusted sections of code, but other efficiency measures I describe may be more acceptable. For example, did you know that assignment of a constant to a local variable in on-chip RAM can take 9 cycles? (2.2 MIPS for T414-20) To answer the question, a simple compiler switch can disable run-time checking on all versions of PC-based TDS that I've seen. In response to 's follow-up article: beware RETYPEing ! The compiler will allow you to RETYPE at will but it only works if the word boundaries are aligned correctly. So, [5]BYTE byte : INT int RETYPES [byte FROM 1 FOR 4] : looks OK but doesn't work. -Phil. -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ Phil Winder cpw@uk.ac.oxford.prg Programming Research Group Oxford University Computer Laboratory 8-11 Keble Road Oxford. OX1 3QD United Kingdom.