9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: andrey mirtchovski <andrey@lanl.gov>
To: 9fans@cse.psu.edu
Subject: [9fans] p9/linux/fbsd compiler shootout
Date: Mon, 25 Feb 2002 20:05:02 -0700	[thread overview]
Message-ID: <20020226030240.9F8F219A2A@mail.cse.psu.edu> (raw)

Hello,

We spent the day here doing a simple compiler/os/p9-vs-the-world
shootout..  Here's what we found...


Machine:
        A single cpu 800mhz Athlon T-Bird system (k7).  Each operating
system was installed on a separate IBM Deskstar 30GB IDE drive.  The
video card used was NVidia TNT2, but that's not important since only
plan9 ran any graphical interface (note: when attempting to test on P9
without rio the machine hung during ape/psh compilation).

OS: 
       Linux/RedHat 7.2, kernel 2.4.7 (ext3) standard install
       FreeBSD 4.5 fresh install (no softupdates turned on)
       Plan9 installed on-line (with kernel modification to
       accomodate NVidia graphics hardware)

Software: 
        The test was done using POV-Ray graphics/imaging sotware
(www.povray.org)..  We downloaded the latest 3.1 unix sources.  The
makefile for p9 was modified to compile under ape/psh.  We removed
most of the CFLAGS switches, set the compiler to pcc.  The compile
time reported under all OS's and compilers does *not* include time to
compile libpng and zlib support.  We used only POV-Ray - relevant
files.

        Time given is the time it took to render a single frame of a
predefined scene (explanation below).

        We chose to render using radiosity rather than ray-tracing,
since radiosity is more computationaly intensive.  The test is
extremely floating-point heavy (or at least it should be -- after all
it's graphics we're dealing with :).  Each compilation resulted in a
ppm image of size 1440015 bytes + 1910 bytes in an ASCII statistics
file.  POV-Ray keeps rough stats on its own, so the time reported is
the actual time in seconds that POV-Ray thinks it was rendering
(including initial parsing of the scene description file).  All output
was redirected to a file in order to avoid any console IO (this was
not done for the compilation, though.

        The scene description could be found in:
		.../scenes/radios/rad2.pov
	in the POV-Ray distribution.


        Images generated were of size 800x600, in PPM format.  Here is
the string used to render them:
                (plan9 version given, others identical except for
                redirection syntax)
                povray +L/path/to/povray/libs rad2.ini +Irad2.pov +Oscene.ppm +FP +W800 +H600 -GA +GS >[2]out.txt

        For each platform/compiler pair we compiled two binaries -- one using
the standard optimizations found in POV-Ray's makefile, the other
without any optimization switches (e.g.  gcc -c file.c).  Povray uses
the following optimizations:
        -O6
        --finline-functions
        --ffast-math 
        -m386 (deprecated in 3.0)
 
	Each compiler was given three runs, each run is reported. 


Some additional notes: 
        FreeBSD 4.5 does not come with gcc 3.0, neither could it be
found as a binary package.  We had to compile it from the ports
collection, but since it was a simple make; make install deal we got
no optimization for it.  It shows (compare the 3.0 results with the 
same fbsd using gcc 2.95 and a linux binary compiled with 3.0
under emulation)...


--- 

Results (time in seconds):

(please excuse bad formatting -- we elaborated on the idea of putting
everything in an excel spreadsheet, but couldn't find any)

OS/compiler/
optimization		run #1	run #2	run #3	Compile time (mm:ss.ms)
------------------------------------------------
P9/8c/yes(?)		293		293		292		0:19.24

Lnx/3.0.2/yes		150		149		149		0:56.541
BSD/3.0.2/yes		170		170		170		0:55.04
BSD/3.0.2/yes		151		151		151		none (running linux binaries under emulation)

Lnx/3.0.2/no		196		196		196		0:30.052
BSD/3.0.2/no		221		221		220		0:26.49
BSD/3.0.2/no		203		203		203		none (running linux binaries under emulation)

Lnx/2.96/yes		147		147		148		0:56.848
BSD/2.95/yes		177		178		178		0:42.03

Lnx/2.96/no		203		204		203		0:55.620
BSD/2.95/no		208		208		208		0:18.76


-----

regards :)

ps: reading the above forces you to agree not to use the information
here in flammable, non-p9-related and in any way unscientific
discussions :)

pps: funny fact #430995: selecting gcc for installation on rh7.2
results in installing 220mb worth of dependencies.  one of the
more-importand ones is x-chat (or at least x-chat related)!




             reply	other threads:[~2002-02-26  3:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-26  3:05 andrey mirtchovski [this message]
2002-02-26 10:27 ` Thomas Bushnell, BSG
2002-02-26 10:27 ` Thomas Bushnell, BSG
2002-02-26  3:10 rob pike
2002-02-26 10:26 ` Thomas Bushnell, BSG
2002-02-26 11:15 forsyth
2002-02-26 14:18 rob pike
2002-02-26 14:20 rob pike
2002-02-26 16:07 ` Sean Quinlan
2002-02-26 15:02 andrey mirtchovski
2002-02-26 16:02 ` Wilhelm B. Kloke
2002-02-26 18:00   ` splite
2002-02-26 16:04 ` Matt H
2002-03-04 10:04 ` Gaute B Strokkenes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020226030240.9F8F219A2A@mail.cse.psu.edu \
    --to=andrey@lanl.gov \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).