Re: [squid-users] reasonable differences

From: Joe Cooper <joe@dont-contact.us>
Date: Mon, 20 Dec 2004 10:48:09 -0600

Steve Snyder wrote:
> On Sunday 19 December 2004 2:58 am, Joe Cooper wrote:
> [snip]
>
>>But not by much. I tried out the Intel compiler a couple of years ago,
>>with barely measurable (statistically insignificant) results. And
>>while I'm sure the Intel compiler has improved in those two years, GCC
>>probably has also. And given that the difference between a build with
>>no optimization and a build with high optimization is also quite small,
>>I don't foresee any compiler improvement being capable of significantly
>>altering Squid's performance.
>
>
> When you've got some free time you might want to try benchmarking again,
> with current compiler versions. The Intel compiler (currently v8.1,
> Linux version free for non-commerial use) does a pretty good job of
> auto-parallizing single-threaded code. GCC is improving, but they still
> lag Intel in Pentium4 code generation, sometime greatly.
>
> I've been building Squid with ICC for years (on RedHat/Fedora systems),
> and see no downside to it. That is, the use of Intel's compiler/linker
> doesn't seem to reduce Squid stability vs. the GCC development tools.

The question isn't whether there is a downside, but whether there is an
upside. And given Squid's architecture, I don't see that there could be
a measurable difference except possibly increased memory usage.
Possibly rebuilding glibc (good luck!) and the kernel could make a
difference, but that is wholly unknown. Squid spends a lot of its CPU
time in a poll() loop--the way poll() behaves is defined by the kernel
and the library, not by Squid or the compiler used to build Squid. My
point was that I'm doubtful that any kind of compiler optimization can
significantly alter Squids performance, and no matter how good ICC is
(and it is very good at heavy math kinds of applications) I don't think
it is any different.

> I agree that I/O is generally the bottleneck for Squid, but if you can get
> reduced CPU utilization for "free", why not?

Because you probably aren't getting reduced CPU utilization, and it
probably isn't "free" (ICC-built binaries used more memory when I tested
them).

As I said, I don't know how the current ICC works with Squid, as I
haven't tried it in a couple of years, but I just don't see how there
could be a huge difference in performance between GCC and ICC given the
architecture of Squid, and its reliance on so many outside components
for the CPU-hungry aspects of its operation. Maybe when I'm back in
polygraph mode for the 3.0 release, possibly over the holidays, I'll
give ICC another spin. So far I'm much more excited about epoll as a
way to improve Squid performance in CPU-bound environments, though I
haven't seen any exciting numbers from it (but I haven't tested it--some
others have begun testing it, but they aren't getting convincing results
yet).

That said, if you've got Squid running well in an ICC build, I'd love to
see some benchmarks between it and a GCC build on the same hardware,
along with some CPU usage data. Polygraph is free for download, and
Alex is very generous in letting folks publish results from Open Source
proxies, you just have to ask before publishing.
Received on Mon Dec 20 2004 - 09:48:58 MST

This archive was generated by hypermail pre-2.1.9 : Sat Jan 01 2005 - 12:00:02 MST