🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.transputer
Article #825

RE: I/O Calls on the Transputer and General Call for Benchmarks

#825
From: "CAPVAX::KOONTZ"
Date: Fri, 27 Jul 1990 15:51
86 lines
5541 bytes
Vandana,

     You have just experienced the problem with general purpose I/O on a 
transputer.  The problem is not in the transputer itself but in the fact that it 
does not have a hard-disk attached directly to it.  Instead, it must perform 
remote procedure calls through a transputer link to a suitable interface on the 
Sun which is executing a driver to control the link adapter which must then 
respond back to a server program time-sliced with other stuff executing on the 
Sun...yuch, what a mess.

     The physical interface is one of the main bottlenecks.  On a B014, the 
VMEbus to transputer interface uses a simple Link Adapter.  The interface allows 
one byte to be transmitted or received to/from the transputer at a time.  The 
server program running in the Sun must either poll the link adapter or set up an 
interrupt.  The interrupt won't improve I/O speed since no extra buffers are 
provided; it just allows the Sun to do other things while this slow interface is 
sending or receiving a byte.

     While a transputer link can transfer around 1.75MB/sec (half-duplex @ 
20Mbps), Inmos 'sez that the B014 VMEbus interface will only handle around 
150KB/sec.  If the interface could handle the link speed, we might see up to an 
11.67 times improvement.  Thus, your T800 time could become something around 
2.7secs.  This is still 20 times slower than the Sun-3 and 40 times slower than 
the Sun-4.  So this isn't the complete answer.

     Other things probably influence the speed such as the driver for the link 
adapter and the time-slicing of other processes under Unix.  I started thinking 
maybe the speed of the SCSI disk vs. the transputer link could be a facter - but 
SCSI disks aren't that much faster (and with the seek times they are much 
slower).  You said that the benchmark doesn't actually perform any disk 
activity.  Ah...maybe that's the clue.  The times for the Sun's are so quick 
because the disk buffering is direct (and no disk activity); you're seeing the 
speed of the Sun's memory and CPU interface.  If the T800 did disk buffering in 
it's memory, you might see a time somewhere between the Sun-3 and Sun-4.  
However, the Sun is performing the disk buffering in its memory for the T800.

     So how to speed things up?  You can either get a better interface between 
the Sun and the T800 (get rid of that link adapter!) or you can connect a disk 
directly to the T800.  Or maybe you can increase the priority of the server and 
driver under Unix.  Or maybe you can get a better C compiler...

     Just for fun, I tried your benchmark on one of our PC systems.  The 
transputer hardware consists of an Inmos B008 with a B404-3 (T800-20) on Slot 0. 
The PC is a Compaq Port 386/20.  I compiled the benchmark using Logical Systems 
C v88.4.  The LSC server (cio) allows you to enable or disable the DMA 
capability on the B008.  This can speed things up a lot when using an 286-style 
PC but not as much with a 386 (the 386 can poll almost as fast as the DMA can 
transfer - it's not such a great DMA design...).  I tried it with and without 
the DMA: here's what I got:

     Trial 1: DMA disabled (polling)     3.798 sec
     Trial 2: DMA enabled                4.231 sec

Wow!  Did I misplace a decimal point?  No, I ran each 3 times and verified 
against a wall clock.  I can't believe that the B008 and B014 interfaces are 
that much different.  I suspect we're seeing the difference between a server 
running on a dedicated CPU (the PC) vs. one running under a multi-user OS like 
Unix.  Or are the drivers for the B014 to blame.

     OK netters...the source code for the benchmark is provided.  Anyone have a 
Unix system that uses a faster interface (e.g. FIFOs or dual-ported memory) from 
someone like Transtech, Meiko, Topologix, et al.  And does anyone have a T800 
with a SCSI disk connected directly and appropriate software?  Helios has a 
standalone filing system for the Inmos B422 SCSI TRAM (OUG News #13).  How about 
hereing from anyone with a Yarc transputer board or another PC-type board that 
has a faster interface to the PC.  Can our friendly neighborhood hardware 
designed at Inmos (yes Dave Boreham, that's you...) contribute any info about 
the B008 and B014 link adapter designs or the driver designs.  Do you have a 
driver for the B016 yet that uses dual-ported memory and can you run a benchmark 
on this setup?

     Sorry, I'm bored writing documentation, I like playing with benchmarks, and 
this looks like an interesting one for figuring out filer performance.  This 
looks like a fun project to get lots of times from different HW/SW 
configurations.  It'll take each person about 15 minutes to get it from your 
email file into your system, compile it, and read the numbers.  I'll try to keep 
track of the scores.

     So let's all go play in our sandboxes and compare results.


Ken Koontz
The Johns Hopkins University
  Applied Physics Laboratory
Laurel, MD USA 
email: koontz@capsrv.jhuapl.edu
Technical Details
Message-ID: <9007271900.AA09549@tcgould.TN.CORNELL.EDU>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!usc!ucsd!ucbvax!CAPSRV.JHUAPL.EDU!koontz%capvax.decnet

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!usc!ucsd!ucbvax!CAPSRV.JHUAPL.EDU!koontz%capvax.decnet
From: koontz%capvax.decnet@CAPSRV.JHUAPL.EDU ("CAPVAX::KOONTZ")
Newsgroups: comp.sys.transputer
Subject: RE: I/O Calls on the Transputer and General Call for Benchmarks
Message-ID: <9007271900.AA09549@tcgould.TN.CORNELL.EDU>
Date: 27 Jul 90 15:51:00 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 86