Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!ames!sdcsvax!ucbvax!QUABBIN.SCRC.SYMBOLICS.COM!DCP From: DCP@QUABBIN.SCRC.SYMBOLICS.COM (David C. Plummer) Newsgroups: comp.protocols.tcp-ip Subject: Re: TCP performance limitations Message-ID: <871006093545.3.DCP@KOYAANISQATSI.S4CC.Symbolics.COM> Date: Tue, 6-Oct-87 09:35:00 EDT Article-I.D.: KOYAANIS.871006093545.3.DCP Posted: Tue Oct 6 09:35:00 1987 Date-Received: Fri, 9-Oct-87 05:49:19 EDT References: Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 22 Date: Mon, 5 Oct 1987 11:24:26 EDT From: Mark Bodenstein Could you provide more detail on how you unrolled this loop? (The complication being that the length of the loop is determined by the length of the data. Some alternatives I can think of would be: ... There is a fourth way that we (Symbolics) have done which you did not mentioned: (a) Pick a compile-time unrolling factor, usually a power of 2, say 16 = 2^4. (b) Divide the data length by the unrolling factor, obtaining a quotient and remainder. When the unrolling factor is a power of two, the quotient is a shift and the remainder is a logical AND. (c) Write a unrolled loop whose length is the unrolling factor. Execute this loop times. (d) Write an un-unrolled loop (whose length is therefore 1). Execute this loop times.