Article View: comp.sys.transputer
Article #825RE: I/O Calls on the Transputer and General Call for Benchmarks
From: "CAPVAX::KOONTZ"
Date: Fri, 27 Jul 1990 15:51
Date: Fri, 27 Jul 1990 15:51
86 lines
5541 bytes
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.decnetShow 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