comp.lang.ada
 help / color / mirror / Atom feed
From: Anh Vo <anhvofrcaus@gmail.com>
Subject: Re: Tasking for Mandelbrot program
Date: Mon, 12 Oct 2009 16:42:46 -0700 (PDT)
Date: 2009-10-12T16:42:46-07:00	[thread overview]
Message-ID: <ac2ade79-ec70-46e1-8157-596ed4a6c111@x25g2000prf.googlegroups.com> (raw)
In-Reply-To: 911cc4ac-f786-4b44-8656-94756b3d4af3@a32g2000yqm.googlegroups.com

On Oct 12, 3:46 pm, jonathan <johns...@googlemail.com> wrote:
> On Oct 12, 5:58 pm, Georg Bauhaus <rm.dash-bauh...@futureapps.de>
> wrote:
>
> > Lo and behold!  An Ada program is at #1 in two lists
> > at the Shootout site.  Look for mandelbrot, the 64
> > bit rankings.  Enjoy the moment while it lasts. :-)
>
> Here is the address:
>
> http://shootout.alioth.debian.org/u64q/benchmark.php?test=mandelbrot&...
>
> > The high speed is largely due to the new inner loop,
> > composed by Jonathan Parker.
>
> Well, I figured it out by reading the C program;) The C and C++
> programs use INTEL sse2 intrinsics to get the best
> performance out of the sse2 floating point units.
> The INTEL sse2 intrinsics are IIUC a convenient interface
> to intel sse2 assembly language:http://msdn.microsoft.com/en-us/library/kcwz153a(VS.71).aspx
>
> The result we can be proud of is the finding that GNAT/gcc
> is just smart enough to produce optimal code without the
> use of INTEL sse2 intrinsics, at least on the 64 bit machine.
> The key to getting the best performance out of
> the SSE hardware was presenting it
> with 2 identical streams of instructions, each of which
> starts with different initial conditions. It can
> be done in high-level language as well as
> the sse2 intrinsics.
>
> The challenge in this part of the shootout was
> non-trivial:  to get the mandelbrot calculation to
> exploit all 4 cores of the test machine in parallel, (a
> load-balancing/distributed-processing problem I mentioned
> earlier in this thread) and to simultaneously put the
> SSE floating point units to best use. The 4 programs
> that did the best at this used:
> C   + pthreads + INTEL sse2 intrinsics,
> C++ + OpenMP   + INTEL sse2 intrinsics,
> ATS + pthreads(?) + INTEL sse2 intrinsics,
> and
> Ada + Ada + Ada.

It is impressive. I feel proud that Ada comes in first. So, Ada foes
have no more execuses to say Ada is slow. Great job Jonathan.

Anh Vo




  reply	other threads:[~2009-10-12 23:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-27  1:08 Tasking for Mandelbrot program Georg Bauhaus
2009-09-27 11:24 ` Martin
2009-09-27 21:27   ` Georg Bauhaus
2009-09-28  5:48     ` Martin
2009-09-28 19:27     ` jonathan
2009-09-29 15:26       ` Georg Bauhaus
2009-09-28 19:52     ` jonathan
2009-10-12 16:58       ` Georg Bauhaus
2009-10-12 22:46         ` jonathan
2009-10-12 23:42           ` Anh Vo [this message]
2009-10-13  9:11         ` Mark Lorenzen
2009-10-13  9:39           ` Gautier write-only
2009-10-13 12:57             ` Georg Bauhaus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox