Call for thread testers
Daniel Eischen
eischen at vigrid.com
Wed Aug 27 15:07:07 PDT 2003
[ redirected to @threads ]
On Wed, 27 Aug 2003, Daniel Eischen wrote:
> On Wed, 27 Aug 2003, Scott Long wrote:
>
> > All,
> >
> > This is kind of an unconventional call for help. As we approach the
> > release of 5.2, we'd really like to show off the performance and
> > stability of our new threading packages. So, I'm looking for people
> > to volunteer to go out and put some of the thread-capable enterprise
> > and desktop packages to the test. Packages that I would most like
> > to see are:
> >
> > Apache 2
> > BIND 9
> > OpenOffice
> > Mozilla
> > KDE desktop + Konq
> > Java 1.3/1.4 + Tomcat/etc
> > MySQL
> > Others?
>
> As to OpenOffice, Mozilla, and KDE/Konqueror, David and I have
> been using them all with libkse with no noticable difference.
> I don't know how you'd judge performance with these, since
> it is more "how it feels".
>
> You shouldn't use jdk13 with libkse or libthr since it relies
> on the internals of the thread library (libc_r). It is only useful
> to benchmark jdk14 which, in theory, should work with all our
> native thread libraries.
>
> > The questions that I would like to have answered are:
> >
> > Does it take advantage of pthreads
> > Does it work with libkse and libthr
> > Does it operate correctly
> > Does it perform better/worse than with libc_r
> > Does it perform better/worse than under FreeBSD 4.x
>
> One thing I have noticed about Mozilla, is that it does
> create both scope process and scope system threads, which
> was kind of nice to see.
>
> The ACE library is threaded and includes a set of tests;
> some of which show performance:
>
> http://www.cs.wustl.edu/~schmidt/ACE.html
>
> David and I have a couple of other tests which we use to
> measure performance of our threads libraries.
One of these tests is crew, which is part of Dave Butenhof's
threads tests (http://people.freebsd.org/~davidxu/crew/programs.tar.z)
Usage: crew <string> <directory>
crew searches recursively for the given string in the directory.
David and I use it as follows:
$ crew node /usr/src/sys
By default, it creates 4 worker threads to seach for the string.
Here are the results for all thread libraries; they are somewhat
surprising. The test was run a couple of times to fill up cache
and those timing results were omitted.
Run 1 Run 2 Run 3
------------------------------------------------------
libc_r real 0m48.451s 0m48.835s 0m50.905s
user 0m2.694s 0m2.745s 0m2.818s
sys 0m8.996s 0m8.931s 0m8.863s
------------------------------------------------------
libthr real 1m2.553s 1m52.579s 1m50.306s
user 0m3.423s 0m4.561s 0m4.397s
sys 0m11.842s 0m27.099s 0m27.300s
------------------------------------------------------
libkse(M:N) real 0m49.175s 0m49.910s 0m51.033s
user 0m2.840s 0m2.836s 0m2.880s
sys 0m8.857s 0m8.857s 0m8.792s
------------------------------------------------------
libkse(1:1) real 0m20.240s 0m19.969s 0m19.981s
user 0m2.741s 0m2.783s 0m2.858s
sys 0m8.877s 0m8.832s 0m8.768s
------------------------------------------------------
All the above tests were run on a single CPU 850MHz PIII
with 256MB RAM (Dell Lattitude C400).
There seems to be something wrong with libthr; the times
vary too much (by almost 100%). libkse in M:N mode seems
to be on par with libc_r. But the real surprise is libkse
built in 1:1 mode (add -DSYSTEM_SCOPE_ONLY to CFLAGS when
building libpthread).
--
Dan Eischen
More information about the freebsd-threads
mailing list