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?