[comp.sys.transputer] "C" Comparisons

bailey@MIST.CS.ORST.EDU (Kirk Bailey) (09/08/88)

Dear Transputer'ers:
 
	The following comparison of the 3L and Logical Systems Transputer "C"
compilers was performed by Seth Glattstein (Project Manager/Transputers), at
MicroWay.  Since he doesn't have direct USENET access I offered to post it for
him.  Obviously we are happy with the results Seth got, but please see my
comments at the end of Seth's material!
 
	Kirk Bailey
	Logical Systems
 
-------------------------------------------------------------------------------
 
	3L vs Logical Systems Parallel C Compiler comparision
 
Execution Times :
	
			|    Logical Systems	|	 3L
------------------------|-----------------------|-----------------------|
MegaWhetstones	        |	2.197		|	1.766 		|
(double precision)      |			|			|
------------------------|-----------------------|-----------------------|
Dhrystones 		|	7142		|	6250		|
------------------------|-----------------------|-----------------------|
 
 
File Sizes (executable image) :
 
 			|    Logical Systems	|	 3L
------------------------|-----------------------|-----------------------|
Whetstones              |	10489 bytes	|	29895 bytes	|
(double precision)      |			|			|
------------------------|-----------------------|-----------------------|
Dhrystones 		|	6665 bytes	|	40351 bytes	|
------------------------|-----------------------|-----------------------|
 
 
Time to produce executible image (Dhrystone benchmark only) :
 
			|    Logical Systems	|	 3L
------------------------|-----------------------|-----------------------|
4.77 Mhz XT clone (sec) |	220.87		|	74.18		|
(62 millisec access)    |			|			|
------------------------|-----------------------|-----------------------|
10 Mhz AT clone (sec)   |	50.11		|	32.69		|
(28 millisec access)    |			|			|
------------------------|-----------------------|-----------------------|
20 Mhz Dell 386 (sec)   |	21.95		|	22.87		|
(double precision)      |			|			|
------------------------|-----------------------|-----------------------|
 
Synopsis :
	The compilers were run on the same input files (changed only to
relect differences in libraries for program self-timing).  The Logical
Systems compiler was run with all optimizing switches on (except 32 bit
floating point promotion to 64 bit was left in) and code was located
reasonably low in on-chip ram.  Obviously the code produced by the 3L 
compiler took longer to execute.
	The differences in file sizes may be due to the difference in loader
formats and C run-time libraries(but they're awfully different...)
	The difference in time to produce the executable image shows the 
difference in approach.  The 3L compiler is faster since it is running on the
20 Mhz Transputer.  The Logical Systems compiler, since it is a cross-
compiler, does not catch up until run on an equivalent processor.
 
	From a performance standpoint the Logical Systems toolset is the
winner.  We should consider porting it to the transputer to cut down the
disparity in the compilation times.  The only points that the 3L compiler
has in its favor are the flood-filling configurer and the compatibility with
other languages that use the Inmos linker (FORTRAN, Pascal, Occam2).
	They both have in-line assembly code, but Logical Systems also has an
assembler for those that need it.  They both have extended C libraries to
include the parallel features of the transputer.  In terms of standards 
Logical Systems seems to follow the proposed ANSI standard much more closely,
for example 3L does not have ennumerated types.
 
-------------------------------------------------------------------------------
 
Kirk Bailey Comments:
 
	Seth got somewhat different benchmark results than others we've seen
mainly because he didn't go to all extremes in arranging the placement of code
and data in memory (and all the other possible tricks).  Seth's response to
this comment was that he wanted a more realistic measure...  In any event, both
compilers can be seen to give excellent results, particularly compared to the
state of affairs in Transputer development software even a year ago!
 
	Seth's comparison of compile times is unique to my knowledge and shows
the tradeoff involved in the cross compiled or Transputer hosted approaches.
One result of Seth's comparison is that Logical Systems will be supplying a
semi-automatic technique in a future release (soon), to compile our compiler
with itself and thus end up with a Transputer hosted version.  This would allow
the best of both worlds and would be obviously of interest to people using
slow development platforms.  As an experiment, we Transputer hosted our 88.3
linker without running into any problems.  More on this in the future...
 
	Seth's comparison of executable file sizes is again somewhat affected
by a difference in approaches.  In our package the bootstrap loader is part of
the network loader, NOT part of the executable file.  This is part of the
reason for the extreme difference in file sizes.  Although I can't prove it I
feel another major factor is the efficiency of the file format encoding scheme.
Getting an accurate measure/comparison of program "runtime" size would be
another interesting exercise someone might wish to pursue...
 
	Kirk Bailey
	Logical Systems
 
PS:  I'm interested in seeing other comparisons between software products for
the Transputer posted.  For example, I've been informed there are around 12
commercial "C" compilers, but I've only seen detailed information on 3 or 4 of
them!  Also, does anyone know of any third party OCCAM2 development projects
underway?  If so how do they stack up?