Slashdot Mirror


Intel C/C++ Compiler Beats GCC

jfonseca writes: "An article from Open Magazine claims the new Intel C/C++ compiler's geometric mean performance on multiple kernels compiled through it reached 47% improvement over GCC. They also predict the end to the ubiquitous GNU compiler due to low performance. Many other compiler/platform combinations also compared. A bit pretentious, yet an interesting read."

205 of 580 comments (clear)

  1. GCC will live by JanneM · · Score: 5, Insightful

    GCC is the only compiler you can count on being present on every Linux (or BSD) system. Thus most code released is going to continue being compilable by gcc, and it's going to remain the baseline for source distribution.

    /Janne

    --
    Trust the Computer. The Computer is your friend.
    1. Re:GCC will live by mlsemon2 · · Score: 2, Funny

      Ye of little faith, I fully expect Intel to release its complier free with source and have it bundled with every Linux distro. I'm so confident, I'll hold my breath until this happens. I'll reply to this thread when it's done.

      /me holds breath...blush...gasp!...ack!...hrmmmm

    2. Re:GCC will live by ackthpt · · Score: 2, Insightful

      GCC also you can pretty much trust to work with AMD and Cyrix CPUs, not that I'm suggesting anyone might get ideas...

      --

      A feeling of having made the same mistake before: Deja Foobar
    3. Re:GCC will live by Anonymous Coward · · Score: 2, Insightful

      Oh gee - I'm gonna run out to get the Intel compiler for my PPC platform - uh, hmmm, doesn't seem to be one. How 'bout my Sparc? Hmmm - well, then there's that Alpha... nope - well darn it, Intel's compiler is kinda useless when it only runs on Intel in a world of multiple platforms... Fortunantly, GCC just about compiles on everything with a CPU - so what if it's a little slower - that's just another donut and cup of nice coffee for me and an excuse to kick back and relax between hectic coding sessions...

    4. Re:GCC will live by jedidiah · · Score: 5, Insightful

      No, there's simply a tradeoff between "compability" and "performance". This doesn't even get into "freedom" or "cost".

      One should well expect a CPU vendor's compiler to do well than something that is more general. The fact that we're not all rushing Intel is not hypocrisy.

      You merely have an overly simplistic view of the situation.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    5. Re:GCC will live by jedidiah · · Score: 3, Insightful

      Yet despite of this you see REAL companies actually deploying GNU based Sparc apps. Unless you're a Fortran coder, the possible performance difference well may be meaningless.

      Payware compilers have some relevance for code that is payware itself. However in the "cheap" or "give me the code or give me death" camps, the cheaper and more open options will still win out.

      If performance were really so paramount, the Intel architecture itself would have gotten dumped a long time ago.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    6. Re:GCC will live by Shanep · · Score: 2

      so what if it's a little slower - that's just another donut and cup of nice coffee for me and an excuse to kick back and relax between hectic coding sessions...

      So I assume from this comment that you are refering to compile time?

      I think it is important to note that this article is not about compile time, but something I think is far more important, it's about the executable speed of your compiled code.

      If I had a PIII or 4 and the compiler was reasonably priced, I would probably buy Intels compiler, though the last time I payed for a compiler was for the latest and greatest Borland C++ v3.0. Back then, I was quickly dissapointed to learn that the new Watcom compiler was pretty quick.

      I'm moving to PPC anyway, so I'm not overly excited (I must be part of the fabled 5%, I prefer the company of 5% types anyway).

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
  2. Not open source by Nate+B. · · Score: 4, Insightful

    The article itself states the compiler itself is not open source. So how's this going to cause it to be chosen over GCC when it (probably) won't be distributed to the same degree as GCC?

    Q: Why do people use MS-Office?
    A: Because its there.

    Q: Why will people use GCC?
    A: Because its there!

    Same concept, really. Most Free Software will continue to be built with GCC until Intel releases this compiler under the GPL, performance not withstanding.

    --

    "Insanity is doing the same thing over again expecting a different result."
    1. Re:Not open source by Sunda666 · · Score: 2, Interesting

      Compilers like this will be used mainly by performance freaks, like AutoDESK (it still exists?), Adobe and folks that do intensive-cpu apps and have the cash to pay for an improved compiler to have and edge over competition (see? photoshop xxx rotates a picture 11 degrees faster than paintshop yyy...).

      Being an user of a special compiler myself (SDS's cc68000), I think that this kind of compiler has a niche market, and the good old GCC is still the most widely used, and probably will be for ages.

      Altough, If this new intel compiler does ELF, I can see MandrakeSoft or RedHat building their RPMs (glibc too - yay!) with it and claiming they are faster than the competition ;-).

      --


      ``If a program can't rewrite its own code, what good is it?'' - Mel
    2. Re:Not open source by Jahf · · Score: 2, Interesting

      One other possibility is to use the free-for-use but not open-source Linux version (mentioned earlier, so I'm basing this on hearsay) to compile your own system.

      Distros like Sorcery and Gentoo, which are geard to allow you to have the most optimized OS possible for your system could greatly benefit by this.

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
    3. Re:Not open source by be-fan · · Score: 2

      Not only does icc do elf, it also supports most of the gcc linktime stuff like .gnu.linkonce.* sections. It is *very* compatible, as long as you don't use any gcc-specific extensions (except inline asm). It tends to be a little less strict than gcc 3.x, though.

      --
      A deep unwavering belief is a sure sign you're missing something...
  3. The end of gcc 'cause intel's compiler is faster? by Rushuru · · Score: 3, Insightful

    As long as intel's compiler is not GPL and does not support as many architectures as gcc does, I don't think gcc will vanish any time soon.

    Plus everytime benchmarks showed that a closed source product was faster/better than the free software counterpart, the open source community worked hard to improve its champion.

    gcc is dead, long live gcc

    --
    !
    ^_^
  4. Is it surprising? by Chazmati · · Score: 5, Interesting

    I guess I'm not that surprised that the corporation that designed the CPU would produce a more optimized compiler.

    The interesting thing is that the Intel compiler's code ran at 'virtually identical' speeds on an Athlon.

    1. Re:Is it surprising? by Shiny+Metal+S. · · Score: 5, Insightful

      I am, however, surprised with one thing: Why doesn't Intel try to improve the GCC itself? They sell hardware, after all, and it would really benefit them, when they could say "Our 1GHz CPU is 40% faster than AMD 1GHz CPU using the standard GCC compiler." Intel should want every compiler on Earth to use their optimization (so should AMD and others), not only their compiler.

      --

      ~shiny
      WILL HACK FOR $$$

    2. Re:Is it surprising? by DGolden · · Score: 5, Insightful

      Becasue they could inadvertently improve gcc's output on non-intel architectures, perhaps? - GCC compiles to an intermediate tree form called "RTL" first, and thus some of intel's higher-level optimisations could end up imporving gcc PPC code, say. And that would be a bad thing for Intel, in the same way as you don't see Microsoft coders adding completion ports to linux to improve linux server I/O.

      (although, a lot of intel's optimizing is probably due to their knowledge of the arcane, baroque, and just plain stupid x86 architecture, and thus would not be applicable to saner CPUs archs like... virtually anything else currently available.)

      --
      Choice of masters is not freedom.
    3. Re:Is it surprising? by tomstdenis · · Score: 2, Informative

      While you're right that some of the optimizations are higher levels, alot of the stuff GCC doesn't currently optimize is instruction pairing, data prefetching, etc...

      That is a lower-level backend issue and won't seriously improve the other backends at all.

      The OP has a point though, by upgrading GCC instead of making their own compiler more people will have access to a compiler that makes code tuned for their processor better.

      For instance, I have a PIII [I don't but lets say I do]. I write code and build it in GCC. I go out and buy a PIV [roughly same clock rate] I notice that my code is not significantly faster. I get pissed off...

      However, I buy the PIV and tell GCC to use PIV specific optimizations, my code turns out faster and I am happy.

      Tom

      --
      Someday, I'll have a real sig.
    4. Re:Is it surprising? by eldrich · · Score: 3, Interesting

      Funnily enough when we tested the Intel fortran compiler against the Portland group fortran compiler (fortran here means numerically intensive double precission code) the Portland compiler produced the faster code. Here we use bought Portland and use it on the beowulf frontend to compile the actual cluster executables and use g77/gcc on all the development workstations. g77/gcc is not particularly fast but it is available and very very useful. We evaluated the Intel compilers but found more problems in going from intel to portand than g77 to portland. GCC will never die it is far too useful

      --
      My ZX81 could do that, but only on a good day!
    5. Re:Is it surprising? by Lars+T. · · Score: 3, Interesting
      Actually AMD processors gwt quite a boost too. In issue 23/01 of the German computer magazin c't (article not online - www.heise.de/ct/ ), there is an article about Intel's C compiler for Linux. Testing with SPECInt2000 , they get an average increase of 20% over gcc.

      P4/1.7 +26%, P3/866 +23%, Athlon/1.2 +16%, AthlonXP/1.2 +19% (due to SSE).

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    6. Re:Is it surprising? by bero-rh · · Score: 3, Insightful

      Don't forget that gcc can do SSE these days, as well.

      Check out the gcc HEAD branch, and try something along the lines of

      -O2 -march=athlon -mcpu=athlon -msse -m3dnow -mmmx

      --
      This message is provided under the terms outlined at http://www.bero.org/terms.html
    7. Re:Is it surprising? by Lars+T. · · Score: 2

      Yet the Intel compiler is still faster for Athlons than gcc.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    8. Re:Is it surprising? by bero-rh · · Score: 2

      There's quite a bit of progress going on in gcc HEAD.
      It has been a very stable compiler for about 6 weeks.

      Oh, and gcc can do mmx since some time before 3.0
      was released (e.g. 2.96 can do it).

      --
      This message is provided under the terms outlined at http://www.bero.org/terms.html
    9. Re:Is it surprising? by jd · · Score: 2

      See "Pentium Gnu C Compiler" (PGCC), which was developed by Intel engineers, iirc.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  5. But GCC's free... by PoiBoy · · Score: 2, Interesting
    While the article did provide evidence that Intel's compiler produces faster code, it neglected to mention one small difference betwee gcc and Intel cc: gcc is free, while a single-user license from Intel is $499.

    While software firms and organizations developing mission-critical programs may decide to switch to icc, the fact that gcc is free will help it to remain popular among hackers and other budget-constrained users. Moreover, most of the source code programs one downloads for Linux are designed to be compiled with gcc.

    --
    Sig (appended to the end of comments you post, 120 chars)
  6. Umh, this isn't really surprising by entrox · · Score: 5, Interesting

    I was always under the impression that a vendor supplied compiler would almost always out-perform a generic cross-compiler, which is available on much more other platforms. GCC is all fine and dandy, but it's it shines in other aspects than pure optimization and fast code (they may be faster on some architectures than the vendor supplied compiler, but that's not my point). The produced code x86 was always sub-optimal. Because of that, projects like pgcc exist(ed).

    --
    -- The plural of 'anecdote' is not 'data'.
  7. What does their 'kernel' mean by lxnt · · Score: 2, Interesting

    It seems that they've been testing performace of
    some code blocks they've called 'kernels' for some
    obscure reasons.

    That makes the test useless - if they've compiled
    some linux kernel by both, say GCC and MSVC and their own compiler - that's where the real results
    are to be derived from. Needless to say that they
    couldn't do that.

    And their (surely optimized) "kernel"s run faster compiled by their own compiler. Bah! No surprise.

    Conclusion : this is unfair comparison, and the results of the test say nothing.

    --
    ./lxnt
    1. Re:What does their 'kernel' mean by glwtta · · Score: 2

      I gotta say the whole "kernel" thing confused me a bit - when they mentioned one kernel showing a decrease in performance with Intel, I just thought: "which one? 2.4.17?"

      --
      sic transit gloria mundi
  8. Mozilla w/ Intel compiler by wolruf · · Score: 3, Insightful

    I really hope Mozilla will soon compile with Intel to see how it compares with GCC as we cannot compare yet OS/compiler (Win32 builds uses Visual C++, Unix use GCC most of the time):
    evaluate Intel's C Compiler

    --
    wolruf@gmail.com
  9. wtf? by glwtta · · Score: 5, Interesting
    will stay the hammer that drives a stake through the fibrillating heart of the aging technology behind the GNU C compiler

    Could this be more full of itself? Somehow I have trouble accepting sweeping generalizations about the fate of compiler technology from someone who obviously dropped out of a creative writing program at some third-rate school.

    --
    sic transit gloria mundi
    1. Re:wtf? by p3d0 · · Score: 2

      It sounds like an entry in the Bulwer-Lytton Fiction Contest.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  10. Performance is important by Jacek+Poplawski · · Score: 5, Interesting

    Sometime I analize assembler code produced by gcc-2.95.3 and I am dissapointed. Gcc can do so stupid things like inserting instruction inside - instead outside of loop. Probably gcc3 is fixed, but I heard it still produces slow code (not faster than gcc-2.95.3). So which compiler should I use today?
    I know gcc3 is better, becouse it supports more platforms, but what about speed improvements? To have fast inner loop in linux application I must code that loop in assembler. That is a problem for someone, who's creating a computer game.

    1. Re:Performance is important by Shiny+Metal+S. · · Score: 5, Informative
      Sometime I analize assembler code produced by gcc-2.95.3 and I am dissapointed. Gcc can do so stupid things like inserting instruction inside - instead outside of loop.
      Instead of being dissapointed, you should talk about it on GCC mailing lists or even submit a patch. This is how GCC evolve. If you are skilled enough (and I suppose you are, if you can read and understand optimized assembly), and if you suffer because of low performence, than you should act instead of just being dissapointed. Remember that GCC is a free software, you can improve it.
      --

      ~shiny
      WILL HACK FOR $$$

    2. Re:Performance is important by Webmonger · · Score: 2

      Another reason 3.x is better is that it supports C++ better. Template handling is much more efficient, and using directives can be used to allow Parent::do_this(int) and Child::do_this(char) to coexist in Child, instead of Child::do_this(char) making Parent::do_this(int) inaccessable.

    3. Re:Performance is important by Shiny+Metal+S. · · Score: 3, Informative
      I can read, understand and write x86 assembler, but I am not skilled enought to understand gcc source.
      That's enough to be helpful. You can just post to gcc@gcc.gnu.org what you were compiling, what assembly you got, and how would you improve the assembly output.

      Really, that way you and everyone else could benefit.

      --

      ~shiny
      WILL HACK FOR $$$

    4. Re:Performance is important by rseuhs · · Score: 2
      Instead of being dissapointed, you should talk about it on GCC mailing lists [gnu.org] or even submit a patch.

      The problem is that in the case of GCC and any other project led by RMS, things are not that easy.

      In the case of GCC, I think a fork might be very beneficial to fuel development.

    5. Re:Performance is important by jejones · · Score: 2

      Agreed about C--but OTOH, Intel's compiler suffers from the same source language limitations, so if there is a difference in performance, one can't attribute it to conservative optimization forced by possible aliasing.

    6. Re:Performance is important by jelle · · Score: 2

      Well, with dependency paths defining the minimum time for a loop, and because of the fact that there is more than one resource that the processor can use each clock, there are many cases that inserting an instruction in a loop does not result in any increased cycles, yet does reduce the register pressure in the loop.

      I've used such tricks myself on other architectures with confirmed speed increases, and I'm pretty sure the same is true for the P4 & Athlon.

      In the 'old' days, execution speed was just counting instructions and their cycle counts, then processors came out with one cycle per instruction, making it easier, and then processors with a variable amount of instructions per cycle, making it less straight-forward again.

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
    7. Re:Performance is important by jelle · · Score: 2

      Then open a project on sourceforge and put your patches there.

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
    8. Re:Performance is important by dvdeug · · Score: 2

      Instead of being dissapointed, you should talk about it on GCC mailing lists [gnu.org] or even submit a patch.

      The problem is that in the case of GCC and any other project led by RMS, things are not that easy.

      Like what? You're going to spend the time to understand a complex program and write some intricate patch, and you can't take time to sign your name to a form and send it in?

      In the case of GCC, I think a fork might be very beneficial to fuel development.

      Why? They had a fork, called EGCS. It became the new GCC, and everyone's happy. Do you really think there's that many would-be compiler writers who are too lazy to send in the paper work?

    9. Re:Performance is important by jelle · · Score: 2

      Well, maybe the current gcc maintainers are being (more than?) difficult, but there could be others who are really interested in your patches. If you just put it up on sourceforge.net, then they should be able to find it without too much hassle.

      Don't let all suffer because the current maintainers are distracted by other things, or worse.

      Remember gcc before? Development got stuck until approx version 2.7.2, then some people got fed up, forked (egcs), and now the leaders of egcs took over from the older gcc guys. Maybe it's time for another fork, or maybe they'll wise up.

      Maybe too, your patches aren't the right thing right now for the current gcc source tree and it's current development track, however if you keep it to yourself, it will be lost forever, and if you put it out there, others can pick it up, use it, improve it, and it then actually may have a change to be accepted later on (maybe it needs 'cleaning up', and somebody comes around sees the patches, cleans it up and gets it ready for submission. Even open source projects have project development such as coding standards, and code freezes you know, and the good thing with open source is, that if the current 'owners' fall asleep, people can take it away from them and there is nothing they can do about it).

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
    10. Re:Performance is important by jelle · · Score: 2

      True, the GPL doesn't force you to make the patch very public. In fact AFAIK, when you use the patch only in-house, and the patched code or binary never leaves the office, you don't have to do anything.

      An OSS-related part of the official company website carrying such patches would be a big achievement. I would defitely give the company a positive edge for OSS-favoring people. Good luck pulling that off!

      --
      --- Hindsight is 20/20, but walking backwards is not the answer.
  11. Take over? I think not... by Christopher+B.+Brown · · Score: 5, Insightful
    • It's not free software.

    • The results do not involve

      geometric mean performance on multiple kernels compiled through it reached 47% improvement over GCC.


      The testing didn't involve compiling kernels at all.

      The 47% performance improvements were on a numerically intense benchmark program.

    • This helps users of PPC, Alpha, and StrongARM exactly how?



    The preferences of the article's authors is pretty clear:

    "Nonetheless, the magnitude of the performance differential in numerically intense applications is such that only the most dramatic sort of improvement in the long-awaited version 3 of the GNU C/C++ compiler will stay the hammer that drives a stake through the fibrillating heart of the aging technology behind the GNU C compiler. May it rest in peace."


    These are not the words of objective observers, and such comments strike me as being quite irresponsible.

    --
    If you're not part of the solution, you're part of the precipitate.
  12. It probably is faster, but so what? by eXtro · · Score: 3, Interesting

    It's not terribly suprising that Intel can make a more efficient compiler than gcc. They've got a performance group who's sole job is to understand the architecture and how to best exploit it. I can't read the article (its not coming up presently), but its hard to compete against a free product for most users, especially in the linux community. For some users the increased performance will be very important, especially people who write applications that crunch numbers. I'm not talking about gimp filters or spread sheets, sure, they crunch numbers but most of their CPU time is spent either idle or on user input. Remember, on linux gcc is both free and everywhere, and it does a good enough job for most people. Most people run systems that just use precompiled packages, and these packages are often just target at generic i386 processors. If people don't even bother exploiting features that gcc already has, I don't see how you can predict that enough people are going to switch to another compiler to even measure on the radar.

  13. GCC: when was the article written? by rsidd · · Score: 2, Interesting
    I couldn't find a date on the article. But it says only a "dramatic improvement" in the "long-awaited" GCC 3 will change things...

    In fact GCC3 was out some time back and it seems typically (to me) to perform around 20% more slowly than Intel's thing (compared to 40% for older gcc, as the article says). It's not so bad, imo.

  14. why by glwtta · · Score: 2
    At this point, it?s also important to note that the Intel compiler on both platforms is a little more pedantic than the default settings for either the GNU or the Microsoft compilers. Marginal error conditions that are dismissed by the other compilers are reported as warning level issues by the Intel compiler.

    I don't get it - why is that important?

    But that's a minor issue, the important part is convinced - I am throwing my gcc out the window and paying half a grand for Intel C/C++... (somebody needs to come up with a damn "roll eyes" smiley)

    --
    sic transit gloria mundi
    1. Re:why by PigleT · · Score: 2

      Hmmm. Has anyone else noticed WatcomC++ considering going Open?

      Personally, I think open-source will only have arrived when there's a *choice* of equally good free compilers available, and I can use any of them to compile the linux kernel and netbse userspace together for my Psion. That's where the portability aspect really comes in - it's "theoretically possible" now with GCC, so come on intel, catch up!

      Oh, and the smiley you seek is i ._ ! _. i

      ;8)

      --
      ~Tim
      --
      .|` Clouds cross the black moonlight,
      Rushing on down to the circle of the turn
    2. Re:why by mccalli · · Score: 2
      "...the Intel compiler...is a little more pedantic than the default settings for either the GNU or the Microsoft compilers."

      I don't get it - why is that important?

      Warnings should never be swept under the carpet, they should always be dealt with. They have a habit of biting later on, particularly when switching between architectures.

      One thing I always hate about linking with many third-party libraries is the way they often require dubious casting which generates warnings. I like nice clean code, and I like my compilers to wear jackboots when dishing out warnings.

      Cheers,
      Ian

  15. Does this mean? by soulhuntre · · Score: 2, Insightful
    That maybe the Open Source model isn't the be all and end all? Remember in the old days, when everyone believed that if you took the money out of programming somehow you magically got software that was faster/better/more innovative and bug free? Not. I think Open Source is doing a good job with what they are working on - but this cult like mentality has to go. of course, the most important thing to most people is really the "free" (beer) part. You mean they will give me stuff for free and feed me a philosophy that lets me pirate everything else I want in the name of "freedom"? WOW! SIGN ME UP! But after the glow fades:
    • GCC isn't the worlds best compiler
    • Linux not only crashes and has bugs, but some of them are caused by ego clashing and political tension... AND there are zealots who will try and cover them up.
    • Mozilla (the shining jewel of Open Source) is years late and many dollars short of beating IE.
    • Loki is dead and so goes the myht that Linux is a market that is large and willing to buy. They listened to the Linux zealots and got screwed.
    • Slashdot is squelching topics and moderators are abusing their power - so there goes the myth of the open minds of the Open Source community. The dream is gone and good riddance.
    In the end, I like and support the Open Source world... I think amazing things have happened... But your much better off when you realize it is simply another dynamic - it is not the best one and it certainly isn't the only one. Fight tyranny and repression.... read /. at -1!
    --
    --> Fight tyranny and repression.... read /. at -1!
    1. Re:Does this mean? by glwtta · · Score: 4, Informative
      Since when is Mozilla the shining jewerl of OS? Just curious.

      I'd agree with the gist of what you are saying, but some of your bullet items are just oversimplified, overstated bollocks.

      --
      sic transit gloria mundi
    2. Re:Does this mean? by GypC · · Score: 4, Insightful

      Awww, did you get your widdle bubble burst?

      • No one ever said anything about taking the money out of programming. I'm sure Red Hat programmers enjoy a decent salary. Much of Free software is hobby work, done for love.
      • Most of the true believers in Free software do not condone piracy at all. That would be your typical Windows user or Slashdot bigmouth you're thinking of.
      • GCC probably is the world's best compiler if you put correctness and platform independence ahead of speed.
      • Any OS crashes, building a stable system is a system administration skill. There are extremely stable combinations available.
      • Mozilla already rocks all over IE, IMNSHO.
      • Most businesses fail in the first couple years, especially in the current recession.
      • Slashdot does not represent any community but its own.

      Your bitterness is unbecoming. Slamming the good work of people in the Linux, Mozilla, and GCC projects because of your sudden realization that all of your juvenile misapprehensions are not 100% correct is a mark of poor character.

    3. Re:Does this mean? by Chanc_Gorkon · · Score: 5, Insightful

      While I will agree with some of the infighting bullcrap,I disagree with your bullets.

      Sure GCC may not be the best compiler on the face of god's green earth, but to me, if I was running a project with tight money constraints, and I had to choose between a $499 and a $0 dollar compiler and the only reason was the expensive one was faster, unless I absolutly had a better reason for paying the $499, I would have to choose gcc. For one, gcc is well known, in common use, and everything works pretty well on it. I am not saying it doesn't have it's caveats, but to me, compile speed means diddly. Personally, I would rather take the slow one because it gives me more time to drink my coffee while waiting on a compile! :) Well, no, I would rather have the fast one, but I am a poor married man with a kid and have no money to wast on a compiler when I can get one for free.

      Yeah Linux crashes....so does Windows, Solaris, FreeBSD, OpenBSD, z/OS, DOS/VSE, BeOS, Windows CE, PocketPC, Palmos..........get what I am getting at? And so far as covering these crashes up, I JUST don't see this happen, at least from the Linux realm. Oh and anyone trying to contradict what I am saying about other OS's crashing needs to be smacked in the head with a massive Clue stick. There has almsot never and probably never will be a uncrashable os. There has almost never been a completely bug free piece of code. Sure, some others in the list are better and crash MUCH less then windows (Linux fer sure as well as about 90 percent of the list), but to say that people are tying to cover Linux crashes up is BS!

      Mozilla not delivering? Where the heck have you been? Mozilla, as of late, is TON's better then it was. And with the earlier post that Mozilla will also support anti-aliased text, well, besides Konqueror, I see noone else that competes and surely not that bug ridden, crash pron piece of filth called Netscape 6 (or 4.78 for that matter....). I know it's been updated since 6.0 came out, but heck it was based on a sub point 1 release of Mozilla and even Mozilla was better then Netscape 6 when 6 came out! Plus there's that AOL/Time Warner FILLED bookmark list that installs with it and ...well, people should just download Mozilla and fergeddabout Netscape. I am not saying this because I am a Open Source Zealot (because I ain't). Mozilla is doing good and who gives a rat's rearend if it was late. I personally don't care if crap is late....I care if it works. Case in point, one could say the rewrite of Enlightenment is late, but I just think that raster and mandrake (if he even works on e anymore) are trying to make E the best GUI they can by not only making it a GUI but a shell as well.

      Loki is dead. Long live Linux. Listen, most people are not like us. They use their computers as tools and not gaming machines. Joe sixpack will ask if it's being made for PS/2 not for the PC. Now that's not to sayt gaming on Linux isn't important. It is, but just because Loki has died doesn't mean their won't ever be games on Linux, commerical or free. There are lots of great free games for Linux. Armegatron, GLTron, Tux Racer, Rocks and Diamonds, Maelstrom and the list goes on. Sure, they might not be a 3d shooter, but then there's Quake for that. Also, the time is ripe for a new gaming shift. MMPORPG and 3d Shooter cookie cutter games can only last so long before something, anything comes to take it's place. Right now is the time for a truly innovative game to come out and steal the show. Oh and Wolfenstien and Doom 4 won't be it...they'll just be another 3d shooter.

      Slashdot is censoring.....well, I doubt it. They aren't censoring. I can post anything I want under each new topic. If your talking about story submittals, well, when you are on the other end getting all of the submissions and a vast number are either duplicate, trolls or worse, well, then you start to develop a finely tuned BS detector that sometimes can be faulty. You can usually filter out most BS but sometimes some falls through and get's posted. Rob, Jeff, Chris and Neal are human you know.

      --

      Gorkman

    4. Re:Does this mean? by LinuxParanoid · · Score: 4, Insightful
      Look, if you want to condemn the "cult-like" mentality, stop perpetuating it. Specifically by avoiding broad unsubstantiated claims taking on the tone of religious fervor.

      Like "GCC isn't the worlds best" (best at what, pray tell? speed? ubiquity? price? portability?)

      Like "everyone believed that if you took the money out of programming somehow you magically got software that was faster/better/more innovative" (like those Open Source guys who said it was OK to make money?)

      Like "give me stuff for free and feed me a philosophy that lets me pirate everything" (conflating piracy with free software, not recognizing the legitimate desires of people to legally have more control of what they get, and legally paying less?)

      Open source is not a panacea. It's a way of licensing technology whose strengths and weaknesses will be more and more recongized over time, but whose pre-eminent virtue of providing greater freedom will offer increasing benefits as software monopolies continue to increase their control and prices so that they can keep their share price going up.

      Open Source also has one other long-term, difficult to refute benefit. The fact that Microsoft can't forever grow the software market and must illegally leverage its way into adjacent communications markets (MSN, VoIP), media markets (Slate, Corbis) and consumer services markets (Expedia) is still mostly being glossed over as premature. But it is not being ignored.

      --LinuxParanoid, who doesn't think these Linux guys are paranoid enough... ;)

    5. Re:Does this mean? by wytcld · · Score: 5, Informative
      GCC isn't the worlds best compiler
      As a sysadmin who often compiles packages, but doesn't write them, all I care is that ./configure;make;make install produces the desired results. Since I'm always multitasking anyhow over several machines, what do I care if a different compiler would make a 5 minute compile 4 minutes, if the end result - as it is with gcc - is a program that runs and runs well.

      Mozilla (the shining jewel of Open Source)
      BS. Konqueror is better, and KDE and Gnome the shining jewels, after Apache of course. (Sendmail? Bind? Proftpd? PHP? - not jewels perhaps, but great workhorses.)

      Loki ... listened to the Linux zealots and got screwed
      So sad, Linux may never be primary platform for gaming. I could care. And my Toyota will never enter the Indy 500.

      Slashdot ... dream is gone and good riddance.
      If you don't like the moderation, set up your own board and invite in only folks you agree with. /. works for me - what gets modded up is generally what I end up agreeing is most worth reading.

      --
      "with their freedom lost all virtue lose" - Milton
    6. Re:Does this mean? by Score+Whore · · Score: 2, Insightful
      ./configure;make;make install


      Just out of curiousity, if that's your normal installation procedure, why do you care if you have the source at all? Yes, it's partially true, that the source being available leads to people in the community fixing bugs (sometimes), but you apparently do not (not a knock, just an observation.) So why go to the trouble of downloading source, and building yourself? Binaries would suit you fine.

      ...after Apache of course. (Sendmail? Bind? Proftpd? PHP? - not jewels perhaps, but great workhorses.)


      Ironic, isn't it, that the real software that makes the internet go aren't GPLed, but instead released under the BSD license. It's also interesting how many notable GPLed packages are half done, whereas many BSD license packages seem more complete. Like the programmers involved have a better work ethic.
    7. Re:Does this mean? by istartedi · · Score: 2

      if I was running a project with tight money constraints, and I had to choose between a $499 and a $0 dollar compiler and the only reason was the expensive one was faster, unless I absolutly had a better reason for paying the $499, I would have to choose gcc.

      Exactly. It depends on the project.

      Scenario 1: Project runs client-side and is an interactive windowed application. It interacts with a remote database and is therefore "network bound". In this case, the app might as well be written Java and run by the JVM. It isn't going to make a difference. Use gcc.

      Scenario 2: Project runs server-side and performs enhanced rendering functions and post-processing of global weather data. The contract initially called for 5 loaded racks that are going to cost $30,000 each and require modifications to the HVAC system so the boxes can run properly. Your analysis indicates that a 20% speed-up will allow you to go with 4 racks and avoid modifying the HVAC system, resulting in a total cost savings of $35,000 for the company. Use Intel.

      A more tricky scenario is when the project starts out small and expands or changes environments. In that case I'd start with gcc, but ask myself every few weeks whether or not a speedup would help; especially if new hardware purchases were being considered.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    8. Re:Does this mean? by Chanc_Gorkon · · Score: 2

      Wel, if it was R ....E....A....L...L...Y SLOOOOOW, well, then yeah I would probably pay the bucks. That didn't happen here. Here, it's a MARGINAL comparison and they did not even specify what kernel they were compiling did they? Ok, a 47% increase (that's what is reported).....if gcc took one minute to compile a program, and icc is 47 percent faster at a compile then it would compile the same program in about 30 seconds. Yeah that's faster, but on today's hardware does it really matter? What's the big deal if an employee sits for another 30 seconds? Besides, the best time to compile is when you need to get up and take a break. gcc allows programmers to get mroe rest ;).

      You'd be surprised where the important things are. I have seen obscene amounts of money being spent on things like hardware, and piddly raises being given out and vice a versa. It all depends on where a companies priorities are at.

      --

      Gorkman

  16. Re:The end of gcc 'cause intel's compiler is faste by nusuth · · Score: 5, Insightful

    Gcc's speed sucks because of its fundemental design focus on supporting as many languages as possible and being avaliable on as many platforms as possible instead of optimizing for a particular language on a particular platform. Although code generator of gcc can use a lot of improvement, its speed can't be taken to levels possible with tailored compilers. If an open source alternative that can beat intel's compiler comes along, it won't be based on gcc.

    --

    Gentlemen, you can't fight in here, this is the War Room!

  17. Speed is everything?.... by StarBar · · Score: 3, Interesting

    I once worked in a company making compilers for embedded systems, and debuggers. At one point we were outperformed by a 3-400% compared to a competitor. 6 months later we were twice as fast as they were for that specific benchmark. I wonder how many customers actually used that for something useful? The hard part is actually debugging and portability. And for speed I would say that a profiler can make miracles finding the hotspots needing optimizations. Just hand optimize those spots and you are doing fine with your favourite tools.

    Also with optimizations follows compiler bugs (i.e. the compiler generates faulty code) that are very hard to find especially if you don't have the source to your compiler.

    Finally I think Intel just want to capture customers as thet did with their compilers in the early 90:s (ie PLM and Intel C) It's just not in their interest to be portable. With all this in mind such compilers could be good for a specific project but I'd be careful to build anything on highly optimizing compilers in general and not on a sound design.

  18. gcc is more than a compiler by Knos · · Score: 2, Informative

    Architecture dedicated compilers may well be faster, but gcc's performance has already reached a 'good enough' stage.

    What's more important is that gcc provides features that are absent from all the other compilers: gcc works virtually on any architecture, and offers a stable (in its functions) platform, and an unique interface to low-level features (such as building calls dynamically) as well as very good extensions. It demonstrates how free software can offer a standard, and not be affraid of 'innovating.'

    so, intel/dell/sun's compilers may have their place, but they don't play in the same category
    as gcc. They're useful for dedicated performance apps, or things like games.

    --
    . . . . . . . .. . . . . . . .
    may u!sh 2 sm!le at dz!z bad nn.!m!tat!ion
  19. gcc is "good enough" by Jason+Earl · · Score: 5, Insightful

    I am sure that Intel's compiler is better than gcc at crunching numbers, in fact, it's probably signficantly better. But my guess is that for most folks gcc is "good enough" at a much lower price.

    The commercial compiler companies have been trying to rid the world of gcc for quite some time now, and yet, come the close of the day it's the commercial companies that are getting closed down or bought out, and it's gcc that continues to gain users.

    Now, if Intel were to allow you to use their compiler for free (even without source code) for commercial purposes, then perhaps I would start to worry about the future of gcc. But that isn't going to happen, and gcc will continue to chug right along.

    1. Re:gcc is "good enough" by tomstdenis · · Score: 2, Informative

      "Now, if Intel were to allow you to use their compiler for free (even without source code) for commercial purposes, then perhaps I would start to worry about the future of gcc. But that isn't going to happen, and gcc will continue to chug right along."

      I'd say since there has been alot of time invested in GCC [and its vastly more portable], if the Intel compiler was made open source the GCC dudes would just try to merge the intel optimizations in.

      Keep in mind that GCC doesn't just compile for x86 processors [its only intel that does]. So even if Intel releases their compiler for free [open source style] that still won't kill GCC.

      Tom

      --
      Someday, I'll have a real sig.
    2. Re:gcc is "good enough" by Flower · · Score: 2

      Won't happen. I remember seeing an interview with a gcc developer and noting that some platform optimizations can't go into gcc due to patent issues. Been looking for it to cite but haven't found it yet.

      --
      I don't want knowledge. I want certainty. - Law, David Bowie
  20. Re:The end of gcc 'cause intel's compiler is faste by Ace+Rimmer · · Score: 5, Insightful
    Exactly, there is something missing in the article
    • The Intel's compiler does not support anything else but x86. (gcc works much more generally) - this is an advantage for Intel's compiler since they don't have to mess up with improvements which would break the result on another CPU arch.
    • They ran synthetic benchmarks which are often misleading (i I took gunzip as a part of my test only a slight modificiations of 3 instructions within the main loop would certainly give me very different results)
    • What gcc version did they measure? GCC 3.x (which they obviously haven't used) has at least 10% performance boost than old 2.95 on average (it may differ a lot for specialized tasks)

    This sound somewhat like a bit biased comparison - even though I think that Intel's compiler is indeed better in x86 optimization - most of gcc developers would confirm this...
    --

    :wq

  21. I talked with them about this... by fireboy1919 · · Score: 5, Interesting

    ...at a conference I went to on computer vision. You see, intel also has an optimized computer vision library. They began their talk for the day with the statement "Intel is in the business of selling chips. However, everyone already has enough processor power to do word processing and that sort of thing. We need people to make more complicated applications so that it make these faster chis we come out with worthwhile."
    I imagine that similar logic applies to their compiler: they give it away for free (binary version, so they can control it), but build in the hooks that make it work faster with their newer chips than with the competitions' while at the same time encouraging people to write more CPU intensive programs because they have the power to do so.
    Ultimately, they succeed at their real goal: to sell more chips. By the way, AFAIK, Intel still gives away its compiler in binary form, though only for Windows. Of course, the last time I checked was a year and a half ago...

    --
    Mod me down and I will become more powerful than you can possibly imagine!
    1. Re:I talked with them about this... by nusuth · · Score: 2, Interesting
      It seems Intel is charging for their compiler now

      Linux version is free for non-commercial use.

      Plus, it works similarly on Athlons

      Athlons benefit from better alignment, better scheduling, better cache utilisation, SSE & MMX use, vectoring of intel's compiler compared to MSVC compiler. When it is compared with gcc produced code, there are also benefits of better register utilisation and scheulding (MSVC scheulding is OK, gcc's is awful.) The reason intel's compiler can produce better code on a non-target processor (athlon) is that intel p3 architecture and athlon architecture is more similar to each other than they are to original pentium pro, which is the target processor for MSVC 6.x, or pentium (target for egcs, later merged into gcc.)

      --

      Gentlemen, you can't fight in here, this is the War Room!

    2. Re:I talked with them about this... by maaleron · · Score: 2, Insightful
      I think that's kind of a paranoid attitude.

      Intel is a business, and for them to succeed they need to sell their product. They're right in saying that they need to have people create applications which require more processing power. How does this harm you ? Unless all you need is to run Word, chanes are one of these apps may interest/benefit you. They've developed a compiler which is optimized for their product. How does this harm you ? They know their architecture better than anyone else, so I would expect them to release an optimized compiler. Nothing is stopping AMD or anyone else from doing the same for the Athlon. If it's free, nothings stopping you from using both.

      Ultimately they succeed at their real goal: to make money. As a side effect, you get better apps, more powerful procesors and an optimized compiler. Damned capitalists

  22. Well... by Krapangor · · Score: 2, Informative

    ...the gcc isn't the most 31337 compiler out there. I've seen the gcc slowing down programs on a Atlon 800 MHz down to the performance of a 400 Pentium III (II ?) (scientific apps).
    But isn't the main strength of the gcc it's crosscompiling abilities ? Never heard of any compiler supporting so much platforms.

    --
    Owner of a Mensa membership card.
  23. That's ridiculous by Kris+Warkentin · · Score: 2

    If someone needs hyper-optimized code for (intel)x86 only, sure this compiler rocks. It's a big world out there however, and Intel only comprises a small percentage of the microprocessors on this planet. The bottom line is that regardless of performance, gcc is still the most portable compiler anywhere and for a lot of people, this is more important. After all, Microsoft takes advantage of the fact that computers get faster and cheaper and so will gcc. For most situations, you don't need the fastest code because the human interacting with it can't tell the difference. Gcc isn't going away. Visual Studio isn't going away. Chances are, intel's compiler won't be used by anyone outside of very specialized number crunching applications because gcc and VC have long ago reached critical mass on their respective platforms.

    --

    In Soviet Russia, hot grits put YOU down THEIR pants.
  24. gcc 3 vs gcc 2 by glwtta · · Score: 3, Interesting
    I really haven't been keeping up with 3.0 (mostly because it doesn't work yet :) ) so I am hoping someone can inform my lazy ass.

    What are they targeting with this release? What new big (and important) features are in it? And, in view of the article, can we expect speed increases, or is it mostly about new features?

    In any case, I am not stopping using gcc just because some closed, expensive thing is much faster (even if it is ten times faster), and I expect a lot of people here feel the same way. Ok, I might consider if it was ten times faster :)

    Apart from the whole OS "cult" theres also another reason (and I am sure many will disagree with me here), but there is such a thing as "fast enough" and for the vast majority of things I use my computer for, that has been more than achieved. Don't get me wrong, I love tweaking, optimizing, overclocking and generally pushing the hardware as far as it will go, by any means handily available (including keeping a voodoo doll of my PC in the freezer), but I've found that I do this more for the process than the end result. Buying and installing a new compiler (which you know nothing about, in terms of how it works) just doesn't seem to be all that much fun. (Besides, I am sure my Athlon would never speak to me again)

    --
    sic transit gloria mundi
  25. Good benchmarking, poor analysis by LinuxParanoid · · Score: 5, Interesting

    It's not exactly new news that Intel's compilers are better than Microsoft's or GCC, as any astute watcher or compiler of SPECbench results can tell you. GCC has never been a performance barn-burner. People who wanted that paid the money, signed the forms, and tweaked their software to run under Intel's compilers.

    No, what's great news is that Intel's compilers are available now on Linux. So an ISV like Red Hat can compile the OS (or specific math libraries) on them for either real-user or benchmarking benefits.

    "Driving a stake through the heart" of GCC is a gross exaggeration, given the ubiquity, freedom, and free beer nature of GCC. "Giving GCC a kick in the pants" might be more accurate. And a good thing, too.

    --LP

    1. Re:Good benchmarking, poor analysis by rkit · · Score: 5, Informative

      "No, what's great news is that Intel's compilers are available now on Linux."

      I totally agree. Unix has always been popular in scientific computing and egineering, but I know of several people switching to WindowsNT because

      a) intel systems are extremly cheap (compared to architecures optimized for number crunching like RS6K)

      b) compilers available for NT produced MUCH faster code, e.g. Digital fortran. (Yes, I know ... but still a lot of excellent scientific computing software is written in fortran77, e.g. LAPACK)

      When it comes to numerical simulation, run times in the order of weeks are not unusual, so a performance penalty of 50 percent is simply unacceptable.

      So this may turn out to be a big win for linux in the scientific computing area.

      --
      sig intentionally left blank
  26. My own experiences by neonstz · · Score: 5, Insightful

    A while ago I tested the Intel compiler on some graphic-stuff I've been coding (using Visual C++). I got between 20-30% performance increase. The compiler was horribly slow though, MSVC was probably 4 times as fast compiling the entire project.

    I'm using GCC 3.0.x for Gameboy Advance development (ARM7TDI cpu). It works fine for me, but the vendor compiler generates between 30 and 40% faster (and smaller code) (or something like that, don't have the exact numbers right now). But as many others have pointed out, GCC is free, other compilers are not.

    GCC is excellent for multi-platform development and cross-compiling. Using the same compiler for Windows, Linux, *BSD, Irix, Solaris and Gameboy Advance is a huge advantage.

    Speed (on the generated code) isn't always the issue. At work we always compile and run with full debug information and no optimization (except for tiny, speed-critical parts and very very thouroughly tested libraries). The code is used in weapon systems (we ship the entire system, including the hardware). Coredumps are very nice if you want to find out why something crashed :)

    1. Re:My own experiences by wik · · Score: 2

      Insight of the day...

      If you're launching a weapon and it doesn't crash into something, you're in orbit.

      Anyway, I do performance modeling at work. My simulation code always has debugging symbols and all assert()'s left in (except for a few hard-hit IO libraries), because you never know when you're going to hit some data that tickles a latent bug.

      --
      / \
      \ / ASCII ribbon campaign for peace
      x
      / \
    2. Re:My own experiences by neonstz · · Score: 2, Funny

      "We're making weapon systems out of the Gameboy Advance"

      Or at lest, my first quick skimming of your post led me to that, though on rereading, I see they're not necessarily connected

      Well, I've actually thought of making a Gameboy Advance interface for our air defence system, just for fun. Displaying the radar tracks using sprites and a map background, maybe with corridors and other info. Select target with the arrow buttons, fire with A. The thought of launching an AMRAAM or HAWK missile with GBA is... interesting. :)

    3. Re:My own experiences by cananian · · Score: 2

      Yeah, I've looked at the code gcc produces for StrongARM, and it ain't that great. Pretty awful, actually. But the StrongARM is a very quirky architecture, too. Perhaps one day someone will put decent predicated-execution hooks in gcc's backend and someone else will spend the time to tune for ARM and things will be different.

      --
      [ /. is too noisy already -- who needs a .sig? ]
    4. Re:My own experiences by slashdot.org · · Score: 2

      That's interesting. Not too long ago I compiled a huge project (Spyglass Device Mosaic Web browser) with the Intel compiler, vs. the Microsoft compiler that was used before.

      I could not detect any improvements whatsoever. One of the tests I had was an HTML page that took DM 30(!) seconds to render. (CPU load was 100% on P4-1.7Ghz). I figured that the P4 optimization should give it quite a boost, but nothing. (and as the CPU load shows, this was not an IO issue).

      In my opinion the DM code is horribly written, so I wonder if 'better' code optimizes better. But if so, what is better code? (Supposedly VTune should help to determine this, but I've never been able to succesfully use it)

    5. Re:My own experiences by Alsee · · Score: 2

      what is better code?

      There is no spoon.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  27. Sure but... by tomstdenis · · Score: 2, Interesting

    Sure Intels compiler might be super good at optimizing, but are they forgetting any 12 yr old trying to learn C can pick up GCC for **free**?

    Tom

    --
    Someday, I'll have a real sig.
  28. Here we go again by Anonymous Coward · · Score: 4, Insightful
    The open source crowd still doesn't understand that people outside "the community" are willing to pay for better software, whether that payment is in money or an acceptance or lowered freedom (as in speech). Of course Intel's compilers are better than GCC--they've got top-notch professionals working on them full time, and their corporate image is on the line because their name is on the product.

    GCC will still be in very wide use, since it comes with Linux and it does a quite decent job. But anyone who really cares about performance will seek out the better alternatives, like Intel's compilers. This is not news, and it's particularly not bad news--we all want freedom of choice, and the more genuine alternatives everyone has, the better, right?

    1. Re:Here we go again by Greyfox · · Score: 2
      My department a couple of jobs ago did an upgrade to a more recent version of HP/UX for one of our development machines. Faced with a choice of shelling out $1000+ to the vendor for their C compiler or installing GCC, we went with GCC. Sure the HP C compiler was better optimising for the platform, but a moderate speed increase just wasn't worth the extra money for our application and it was rather nice that our code for Linux would compile unchanged on the HP box.

      The only time I'd ever go with a vendor compiler over GCC would be if I needed ultra-high performance and even then I'd seriously consider using GCC and hand-coding the bottleneck code in asm.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  29. There are other excellent compilers by cluge · · Score: 5, Interesting

    Compaq's (formerly DEC) C compiler for alpha's have always been excellent and far ahead of GCC. The problem is that a lot of compilers (we haven't tested the intel yet) won't compile all the code that you may want or need. In the *NIX env. GCC seems to provide the highest level of compatibility over a wide variety of platforms n(SUN, AXI, BSD, Linux, Tru-64, Windows, et al).

    Until there is only one chip left to support (Intel is fast working on it, with the support of turncoats Compaq, HP and others) GCC will be a viable option. GCC is a great "cross platform" compiler that works for much of the current written open soruce code base. You can get that compiler to work for many different OSs and archs.

    In the end, remember apache wasn't the fastest web server, but it was the "most correct" and it was free! It really doesn't matter how well your C compiler works if it won't compile your code or run on your system.

    --
    "Science is about ego as much as it is about discovery and truth " - I said it, so sue me.
    1. Re:There are other excellent compilers by HalfFlat · · Score: 2

      It is worth noting though that GCC version 3 is one of the most standards-conforming C++ compilers available.

      It is significantly better than Intel's on weird template and STL stuff, and a vast improvement over Microsoft's Visual C++ (which even in its latest incarnation has failed to address partial specialisation bugs dating back to vanilla 6.0.) Just because these template issues are weird, does not make them useless. On the contrary, they can allow code which is both more easily maintained and faster. For examples, consider Blitz (templated numerics library) and Boost (a very well thought out set of extensions to the standard C++ library.)

  30. Interesting results by Salamander · · Score: 3, Interesting

    I'm surprised that nobody has commented on what might be the most interesting result on these tests - that the same code produced by the same compiler runs 10% faster on Windows XP than on Linux (2.4.10, according to SuSE's description of 7.3). Sure, the "kernels"[1] used by the benchmark might not be as representative of real life as we'd like, but this should still be cause for concern. Kernel developers have flamed each other endlessly over smaller differences on less comprehensive benchmarks between the Arcangeli and van Riel VM systems. Do we have to go through a Mindcraft-like period of denial before anyone starts taking such a result seriously?

    [1]The objections about the "kernels" used in the benchmarks not being the same as the "kernel" with which we're all familiar only demonstrate the ignorance of people who don't know that the scientific programming and benchmark communities have been using the term just as long as the OS community. Their usage may be different, but it's just as valid.

    --
    Slashdot - News for Herds. Stuff that Splatters.
    1. Re:Interesting results by glwtta · · Score: 2
      2.4.10? wasn't that one a mess?

      Not trying to come up with excuses for Linux just yet, it's just the first thing to jump out at me.

      All in all, they have very little information about the actual benchmarks in that article. But I expect we'll see more people doing these "head to head" comparisons now that both OSes can use the same compiler. Kyle? Tom? up to you guys :)

      --
      sic transit gloria mundi
    2. Re:Interesting results by Salamander · · Score: 2
      2.4.10? wasn't that one a mess?

      IIRC, 2.4.10 was the first 2.4 kernel with the AA VM. Yes, it was a mess, but I don't think advances since then explain a 10% performance difference for this type of benchmark.

      I also don't know for sure that OBL used 2.4.10. They said they used SuSE 7.3, and SuSE's page for 7.3 says it uses 2.4.10, but that doesn't mean the benchmark used that version. Overall, there do seem to be a few things about the benchmark that give legitimate cause for suspicion. For example, I couldn't find the actual benchmark programs, or even a description, and why the hell were they testing on an HP Omnibook (700MHz P3) instead of a more realistic desktop system, and why did they build the code for a WinXP system on a Win2K system? Very odd.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    3. Re:Interesting results by Salamander · · Score: 2

      That would indeed be an interesting comparison. Unfortunately, I'm not sure if the Intel compiler preserves enough gcc-specific behavior for that, since so much of Linux (especially the kernel) is written so that it doesn't even work properly with different versions of gcc. Of course, I'm absolutely certain that the code in Windows depends on an even bigger bucket full of language extensions, but then nobody claims that Microsoft is the champion of standards and compatibility so at least they're not being hypocritical about it.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  31. Who owns those architectures these days? by Christopher+B.+Brown · · Score: 2
    PPC may have been a tad questionable, but you might want to look into the "technology transfers" of the last few years.

    You might find Alpha and StrongARM on the Intel list...

    --
    If you're not part of the solution, you're part of the precipitate.
  32. For mathematical applications by Zo0ok · · Score: 3, Funny

    The code tested computed some kind of geometric mean... It is not surprising att all that performance can be improved significantly by optimising against parallell instructions (such as SSE/SSE2). There is no guarantee that any major improvements will be seen on an "ordinary application".

    However, I will find use for this information and I will try Intels compiler and compare it to GCC.

    Very minor changes in the code of this kind of high-performance applications can result in very big speed-ups, with any compiler. It would be interesting to see some real world problem (some PDE-model or something) based on for example BLAS (Basic Linear Algebra Solver, or something, www.netlib.org), being computed with gcc/icc and see the "real" difference.

  33. A possible reason for the 47% improvement by c=sixty4 · · Score: 2, Informative
    It is well known that the Pentium 4 has a seriously underforming FPU when dealing with standard floating point operations instead of the P4 specific SSE2 operaions.

    It is quite possible that a similar improvement could be achieved by GCC in floating-point intenisve code simply by supporting SSE2.

    --
    "The good die first." "Most of us are morally ambiguous, which explains our random dying patterns." --- MST3K
    1. Re:A possible reason for the 47% improvement by glwtta · · Score: 2

      um, they used PIIIs

      --
      sic transit gloria mundi
  34. GNU is no longer the driving force behind free sw by rseuhs · · Score: 4, Interesting
    I know it's highly controversial to say this, but IMO, GNU is no longer the driving force behind free software. While GNU created great things in the past (emacs, shell-utilities and above all gcc of course) lately development seems to have stagnated a bit.

    It seems to me that GNU and the FSF has become a bunch of bureaucrats and politicians who forgot what free software is all about.

    Today, the real dynamic and successful projects are mostly non-GNU: KDE, Apache, Linux, Wine, etc.

    Today, GNOME is the only GNU-project that can be called a bit dynamic, and I think this is because of a lot of 3rd party involvement via the GNOME-foundation and the fact that RMS is not the final authority in the GNOME-project.

    What breakthroughs has there been in RMS-led projects in the last - say - 5 years? I can't think of any.

    Of course, gcc is still the best open-source compiler we have, and no alternative is in sight (unless Intel open-sources theirs which is highly unlikely), but I see it as a weak spot in the free software-world. How long have we been waiting for a decsent c++ compiler? Maybe I'm paranoid, but maybe RMS is not very enthusiastic about C++ support because GNOME would look even worse in comparison to KDE, once a good C++ compiler is available?

    I think we need a lot more non-GNU involvment for gcc (gcc-foundation?) to get some fresh blood into this project. And if RMS doesn't allow that, we need a fork.

    But of course, that's just my opinion, so flame me.

  35. they got theirs by glwtta · · Score: 2
    you diss GCC you get slashdotted - just the way it goes ;)

    --
    sic transit gloria mundi
  36. Supported Platforms by garoush · · Score: 5, Insightful

    How can GCC die when Intel can't come close the impressive list of Supported Platforms by GCC?

    --

    Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
    1. Re:Supported Platforms by leereyno · · Score: 3, Informative

      Actually Linux distributors can put anything on their CD's they want, provided that they have the permission of whomever owns the code. Debian does refuse to put anything in their distribution that isn't free as in speech, but that is their choice.

      Lee

      --
      Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
  37. How so? by autopr0n · · Score: 2

    By charging for their compiler, they acomplish two things:

    1) They make money off people who can afford it

    2) They make money off people who can't, and thus need to buy a faster PC.

    --
    autopr0n is like, down and stuff.
  38. Read the fine print by lkaos · · Score: 3, Insightful

    In essence, the Intel compiler attempts to maximally exploit the 128-bit Streaming Single-Instruction-Multiple-Data (SIMD) extensions on packed integers and floating point numbers, which enable fine-grained code parallelization, found in the Pentium III and Pentium 4 CPUs.

    So the compiler produce code that only is optimized for Pentium III & Pentium IV CPUs. So it is not a production quality compiler because it can only produce code for specific processors of an architecture family.

    I really don't see what the big deal is. If I wrote a program in assembly to take advantage of these extensions on a Pentium III does that mean I can get a story /.'d since assembly is now going to overtake C?

    --
    int func(int a);
    func((b += 3, b));
    1. Re:Read the fine print by man_ls · · Score: 2

      This is a good thing.

      Think about it. The technology is there, so why not use it? It's the same thing I tell my programming teacher when she gets pissed about my using strrev(char *string); instead of writing my own string reverse function in C++.

      Hell, a lot of shitty compilers aren't even optimized for MMX yet, and that set of instructions DOES exist in every processor out there now.

      I'd assume that if you're using the Intel compiler on an AMD chip, it's not going to try to optimize for P3 and P4 instruction sets. So why not use an AMD compiler for compiling to 3dNow! and the like?

      Intel isn't obligated to produce a compiler that is faster for *every* architecture in existance. They're only obligated to make a straight compiler that works with it all...if it happens to like its own processors better than others, thats called the left hand working well with the right. It would be pretty hard for Intel to make their compiler work as well with 3dNow! as it does with SSE and SSE2.

    2. Re:Read the fine print by lkaos · · Score: 2

      You miss my point. It's not about producing fast code for _every_ architecture, but producing the same code on all processors of a single architecture.

      Look, all compilers optimize to the current architecture and for the desired chipset, but let's examine what this would be used for:

      Let's say it's being used to write regular old application level programs. Well, all these fancy optimization has to be shut off because distributing different binaries for different processors is not only a pain, but will likely draw many false bug reports.

      That means you have to use it for an in house project where you know the architecture and are looking to speed things up. Well, while this is surely convient to not have to rewrite these routines in assembly, it still could be done in GCC. While there is obviously a place for the Intel compiler, it is not anywhere near the market for GCC or even MSVC.

      Optimizing is fine, but that doesn't mean GCC is obsolete. It's the same argument with regards to the VectorC compiler.

      Anyway, I will say one good thing about Intel's compiler. It kicks ass for C++, mainly because Intel has patents on lots of the cool C++ optimizations...

      Let me stress my point though, just because a compiler produces super fast code for a certain processor of a large processor family, doesn't mean that it's the silver bullet against GCC.

      --
      int func(int a);
      func((b += 3, b));
    3. Re:Read the fine print by lkaos · · Score: 2

      No, not at all. Whether a compiler is production quality is entirely dependent on the production environment.

      There are not many production environments where Pentium III & IV processors are the only processor out there though and since most of the time, it doesn't make sense to release separate binaries for difference processors, Intel's compiler is hardly a replacement for GCC.

      If it's C++ and GCC 2.95.x or lower, I'm not suprised at all :) 3.0 is much better at C++. Then again, earlier versions of VC++ have horrible C++ support and all versions of VC++ have a bastardized version of STL so that may be why your having trouble porting.

      Atleast you agree though that portability is more important than speed in most circumstances. It's not just portability though. Even if your a Unix shop that uses multiple Unices but doesn't share code between them, it's important to have a standard compiler to avoid forcing employees to learn all the niches of each different compiler.

      --
      int func(int a);
      func((b += 3, b));
    4. Re:Read the fine print by 3247 · · Score: 2
      Hell, a lot of shitty compilers aren't even optimized for MMX yet, and that set of instructions DOES exist in every processor out there now.
      Wrong. I know several servers running on older CPUs (mostly pre-MMX i586).
      --
      Claus
  39. real question is C++ conformance + compiler speed by hosercat · · Score: 2, Interesting

    The intel compiler and it's library quality has to be able to handle ANSI C++ at least as good as GCC 3 or it's not much of an option for me. Is this not an issue for anyone else? Another factor is compilation speed. You wouldn't want to dump gcc for development builds if icc is signicantly slower as I hear it is.

  40. Is what they measure important to you? by Jay+Carlson · · Score: 2
    I'm always looking for more data on the relative performance of systems. For almost all of us, the quality of compiler-generated code is an inseparable part of system performance. If you have a processor that looks really fast but no compiler can produce good code for it, you'll have better performance if you use a "slower" machine that compilers do support well.

    The best performance measure is running your code on a variety of systems. Because most people can't do that, it may make sense to look for standard benchmarks that look like your code, and then make analogies based on the similarities of those loads to what you want to do. It's critical to pick the right benchmarks to have a good analogy; if you're interested in 3d performance, it doesn't make sense to make performance comparisons based on the number of rc5 keys per second.

    Unfortunately, the Open Magazine article doesn't give any information on what exactly their tests are doing. So it's not possible for you to figure out which, if any, of their tests will be analogous to your code. :-(

    As I've mentioned before, I'm mostly interested in integer performance. From what I've read about the Intel C compiler, its strength is floating point. If I did a lot of FP work, I'd be sending Intel a credit card number about now, and I imagine many FP people will.

    But for integer work, I think it's not so clear. Andreas Jaeger has a nice page benchmarking versions of GCC. On Athlon processors, SPEC CPU2000 CINT2000 base looks like it's around 10% faster when built with the Intel C compiler than with GCC 3.0.1. I think I can live with that.

    It's a lot easier to modify gcc than icc too, and yes, I really do hack on gcc from time to time.

  41. Better than GCC but not better than VC++ by garoush · · Score: 2

    Are we surprise that Intel's compiler is better than GCC? We better not be -- they own the CPU after all.

    However, *I* am surprise that Intel's compiler *is* in fact better than Microsoft's C++ compiler (which is if you used it). After all MS has a whole army of codders working on their compiler (not to mention for 15+ years). MS should know all too well by now how to write an optimized compiler -- and bug free, support for the latest standard, and on and on.

    Now *THIS* should be the news of the day not Intel vs. GCC.

    --

    Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
    1. Re:Better than GCC but not better than VC++ by garoush · · Score: 2

      I was comparing VC++ and Intel -- that is the subject of my posting and content.

      I guess "Anonymous Cowards" don't read -- they just want to jump the gun.

      --

      Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
    2. Re:Better than GCC but not better than VC++ by spitzak · · Score: 2
      In my experience VC++ has produced noticably faster code than gcc. This is for *OPTIMIZED* code (ie -O5 in gcc and whatever the equivalent is in VC++).

      You are certainly right about the compatability problems. All too often we need to turn off the optimizations on VC++ and the result is slower code (for unknown reasons debug VC++ output is probably more than TWO times slower than debug gcc output).

  42. fibrillating hearts by Error27 · · Score: 2
    Everyone has been quoting parts of this sentence but it deserves to be quoted in full.

    "Nonetheless, the magnitude of the performance differential in numerically intense applications is such that only the most dramatic sort of improvement in the long-awaited version 3 of the GNU C/C++ compiler will stay the hammer that drives a stake through the fibrillating heart of the aging technology behind the GNU C compiler."

    If I read that correctly, it means that they did all the tests with gcc2. I think gcc3 version has not been optomized as much so it would probably be worse, but it would still be interesting to see how they compare.

  43. Warning by Lars+T. · · Score: 3, Interesting
    Heise Newsticker reports (in German), that the compiler switch -ipo (inter procedural optimization) with the Intel C++ compiler can seriously mess up the compiled program. An example given (with image) is Povray under both Windows and Linux, which can tint some images.

    What good is a fast running kernel, when it has more bugs than something from Microsoft?

    --

    Lars T.

    To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  44. AMD should support GCC enhancements by VersedM · · Score: 5, Interesting

    It seems like it would be a nice move for AMD to support GCC optimizations for Athlon processors. The idea would be similar to IBM supporting Linux as a way of chipping away at market dominance by Microsoft.

    AMD should supply GPL'd contributions to GCC that optimize code for its Athlon processors. This would give them a relatively cheap way of putting out a competing compiler to Intel's proprietary version since it would leverage all the work that has already been done by the GCC group. It could also make them the preferred chip for open source OS's by ensuring that Athlons run GCC code faster than any other processor. This would be strategically very valuable at a time that they are about to push their new 64 bit instructions while Linux is simultaneously becoming viable/validated as an enterprise platform. Since GCC is not limited to Linux, these performance enhancements would also translate into gains for non-open source development projects as well.

    All in all, it seems that this could be a be a great way for AMD to give developers a way to produce AMD optimized code while at the same time encouraging the use of their new 64 bit instructions in the booming open source OS server/workstation market.

    1. Re:AMD should support GCC enhancements by Graymalkin · · Score: 2

      Why do all Linux users think that AMD is somehow more Linux friendly than Intel is? AMD is out to make the beaucoup bucks and the beaucoup bucks are in the Microsoft using populace, not a population that is smaller than a margin of error. AMD does not automagically become the friend of Linux simply because it is a competitor to Intel which Linux users see as the Great Satan Jr. It is in AMD's best interest to like Microsoft because they need Microsoft's users in order to make money. They've got a 64-bit chip coming out in the near future, they need an OS to stick on top of it that people have a desire for. Selling a handful of these processors to Linux users isn't exactly going to keep AMD in the black.

      That said, it would be cool if chip manufacturers did put some optimizations back into open compilers. However this is bad business. Would you buy Intel's compiler if GCC had the same performance? No. Thus Intel would be losing market share in the compiler world. Same with AMD or any other chip manufacturer. It is much better business to sell optimizations to people selling compilers and get a little kickback from each sale. Vendors using these optimized compilers can offer a higher performance version of their product with little extra overhead (the price of the optimized compiler and the few manhours to do a recompile and repackage). Letting users of particular processors buy or download a patch to increase performance on their machines is going to sell more copies of said software.

      --
      I'm a loner Dottie, a Rebel.
    2. Re:AMD should support GCC enhancements by Glock27 · · Score: 2
      I couldn't agree more, though I have heard AMD supplies decent information. It would be nice if AMD donated some engineer time to the gcc team...especially for Hammer!

      299,792,458 m/s...not just a good idea, its the law!

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    3. Re:AMD should support GCC enhancements by Glock27 · · Score: 2
      Why do all Linux users think that AMD is somehow more Linux friendly than Intel is? AMD is out to make the beaucoup bucks and the beaucoup bucks are in the Microsoft using populace, not a population that is smaller than a margin of error. AMD does not automagically become the friend of Linux simply because it is a competitor to Intel which Linux users see as the Great Satan Jr. It is in AMD's best interest to like Microsoft because they need Microsoft's users in order to make money. They've got a 64-bit chip coming out in the near future, they need an OS to stick on top of it that people have a desire for. Selling a handful of these processors to Linux users isn't exactly going to keep AMD in the black.

      There will be a big demand for AMD 64 bit systems running Linux. Those (expensive) server processors and chipsets will actually provide more profit margin than the desktop chips, which are largely used for Windows (though you might be surprised at the actual percentage of Linux).

      Linux is growing fast for both desktop and server use, and my guess is that AMD is used by lots of savvy Linux techies. AMD would do very well to court that crowd, since it is influential on buying decisions. I think AMD would be well advised to improve gcc optimizations for Athlon.

      299,792,458 m/s...not just a good idea, its the law!

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  45. Can someone answer... by Spoing · · Score: 2
    ...why is Intel's C/C++ even an also-ran?

    OK, it's interesting as an experiment in Intel-specific compilers. As a baseline when testing out any new x86-compatable processors, it's probably a critical tool. But otherwise?

    Seriously: Why even bother?

    As for proclaiming GCC dead...please. Speed benchmarks and compilers are notorious PR pieces. I can't think of a better example of pure sensationalism. Disagree? Prove me wrong.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  46. Re:OS is irrelevent. by Salamander · · Score: 2
    Numerical computation code running on Intel Windows and Intel Linux will run at exactly the same speed.

    ...except that they didn't, in this case, and the article - which you obviously didn't read - even suggests some reasons why that might not always be the case.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  47. Re:Take over? I think not... by anonymous+loser · · Score: 5, Insightful
    • You should say "open source," because saying it isn't free is ambiguous even in your mind, and downright wrong in an accountant's mind. This isn't the show-stopper you seem to imply it is. People have been using and will continue to use closed-source compilers for many, many years. Take a look at the popularity of VC++, Watcom, Borland, etc. in spite of the free (as in open source and $$$) availablility of GCC on Windows.
    • No, they didn't compile kernels. They compiled (and tested) ON multiple kernels. Don't you feel silly now, contesting so loudly a point you misinterpreted? I happen to do a lot of engineering design and analysis, and work with people who would be quite interested in saving nearly 50% of their computation time when performing analysis, especially when some analyses take as much as 3 days of computation time. This translates directly to a very large and real cost savings for a company.
    • Well, perhaps it will allow the GCC compiler folks a glimps into some of the optimizations Intel managed (by studying the output produced), which will in turn allow the GCC writers to rethink GCC's optimization strategies. Those improvements would hopefully benefit more platforms than just Intel.


    Next time the zealot in you decides to come raging out, take a deep breath and count to 10. Think about how this news might be good for the open-source community before you begin bashing wantonly.

  48. you just don't get it by markj02 · · Score: 5, Interesting
    You have a fundamental misunderstanding of what open source is all about. Open source is not about producing the "best" software, it is producing about a variety of software that people can pick and choose from and adapt to their own needs. GNU C may not be the compiler I need, but unlike Intel's or Microsoft's compiler, I can hack GNU C and make it fit my needs.

    Now, as for GNU C and benchmarks, GNU C has never produced the fastest code on any platform. Unless you lived under a rock and never did any high performance computing, you'd know that. And if you took the time to look at the GNU C documentation, you'd also know that this is no accident. But to most GNU C users, this fact never mattered. GNU C generates decent code and it has many other attributes that make it the "best" compiler for many applications.

    You see, there is another misunderstanding that you and Bill Gates share: you think that there is a single "best" solution to everything. In real life, there isn't. What is "best" for you isn't necessarily "best" for me, and there may well be no way to reconcile our conflicting needs in the same piece of software.

    I do agree that Slashdot moderation tends to exclude voices like yours and I think that's wrong. Why? So that one can point out how uninformed and confused you actually are.

    1. Re:you just don't get it by markj02 · · Score: 2
      If its not about producing the best software how will it succeed?

      There is no such thing as "the best software". Microsoft can hack on Visual C++ for the next 100 years, and it still won't be "the best software" for me--that's because Microsoft's user community and I have irreconcilable preferences and needs.

      if the goal of OSS is just to provide options that's all most of it will ever be, just another option. there seems to be too much confusing of socio-politcal agendas and what is technically superior.

      Providing options isn't a socio-political agenda, it's a technical and engineering issue. The ability to read and modify source code means that a software author doesn't have to anticipate every need any user may have and doesn't have to document every obscure behavior. Whatever oddball functionality I want in a piece of software, I can add myself. That may not matter to you, but it matters to enough people to make open source software popular and successful. And it is something closed source software, by definition, cannot deliver.

  49. Patents by anpe · · Score: 2

    I've read once that most of code optimizations couldn't be implemented in GCC because they were patented by Intel or IBM or , does anyone as info about this ?

  50. Re:Take over? I think not... by Marillion · · Score: 2

    Compaq released Linux versions their C/C++ compiler suite for the Alpha chip a few years ago. A few adopted it for their internal applications. If I recall correctly, I think one of the digital visual effects firms compiled their renderer using it and got a 5% to 10% improvement.

    However, GCC is universal. It runs everthing, targets anything and costs nothing. Nothing in terms of both Beer and Speech.

    --
    This is a boring sig
  51. Re:GNU is no longer the driving force behind free by Ray+Dassen · · Score: 5, Informative
    What breakthroughs has there been in RMS-led projects in the last - say - 5 years? I can't think of any.

    So? The GNU project does not have a mission statement that includes "produce major breakthrough every couple of years". The FSF's top level page has a couple of links that are essential when trying to evaluate its success: why we exist (as relevant as ever), what we provide and where we are going.

    But of course, that's just my opinion, so flame me.

    I rarely flame people for their opinions. I occasionally flame people who clearly haven't bothered to try to understand what they're talking about and who don't let facts get in the way of their opinions. You seem to fit that category nicely. In particular, your comment "I think we need a lot more non-GNU involvment for gcc (gcc-foundation?) to get some fresh blood into this project. And if RMS doesn't allow that, we need a fork." shows you to have little understanding of gcc's development process. Gcc's development process was broken open in 1999 (by the FSF effectively admitting the failure of its cathedral-style development model of gcc 2.8.x and embracing the bazaar-style development model of the EGCS fork) and has an effective foundation (in the form of the GCC steering committee), as anyone who has read the GCC FAQ or is familiar with gcc's history knows.

  52. this isn't exactly news by markj02 · · Score: 5, Insightful
    GNU C has never generated the best code for any platform--it purposely traded off retargetability for ultimate performance. Sun's compilers easily beat GNU C on SPARC, and even on the 68k there were proprietary compilers that generated better code. Anybody who has done any high performance computing with GNU C should know that, or they should perhaps start working in a different field. What GNU C does offer is decent performance, consistency across platforms, multiple integrated language front-ends, and some very useful extensions and features. Those advantages usually far outweigh a moderate performance gain.

    I do a lot of high performance computing with GNU C. It doesn't matter to me how fast the Pentium works with some oddball proprietary compiler--the performance I get with GNU C is the performance an Intel-based machine has for my purposes. If that's less than optimal, that just makes Intel's platform less attractive. If Intel wants to do something about that, they should invest in improving the GNU C backend.

    1. Re:this isn't exactly news by markj02 · · Score: 2
      GNU C and 'high performance computing' don't belong in the same sentence, sorry.

      As I was saying, the GNU C optimizer is known not to be the best in the world. What you don't seem to get is that it doesn't matter. A performance difference of, say, 30% corresponds to maybe half a year in hardware evolution. Do you buy a new machine every six months? I don't.

      Also, C optimizers are largely irrelevant for high performance computing--ANSI C simply does not permit important optimizations. You either have to do them by hand for your inner loops, you have to write them in FORTRAN, or you have to use some non-standard language constructs or compiler options.

  53. no, it isn't by markj02 · · Score: 2
    Sorry, even a 50% performance improvement on some benchmark isn't going to get me to switch to some proprietary compiler. I have used "fast" proprietary compilers from Sun, IBM, and others. Each of them usually has their own idiosyncracies and problems. So does GNU C, but with GNU C, they are the same on all platforms, and they actually get fixed in a finite amount of time. And with all of those compilers, you can usually structure the code that it will run fast (manual unrolling, manual constant folding, etc.).

    If you see something in particular in GNU C that you don't like or that seems inefficient, fix it or at least report it. Don't just whine about it.

  54. Re:Of course it generates faster code. by Zeinfeld · · Score: 2
    CPUs are so fast these days most people don't even bother to turn on optimization. Not worth the 2 seconds it takes to type "-O34".

    A more likely reason for not turning on optimization would be not wanting to wait for the optimizer to run. Another good reason is that it is often harder to debug optimized code.

    At one time though the most frequent reason to avoid the optimizer was that many were buggy as heck and would introduce all kinds of bugs based on an imperfect understanding of how the program work. This was particularly the so with Fortran compilers where the derranged semantics of the language often bit the optimizer hard. It would also bite the programers on many occasions who would make use of common blocks that was outlawed under the Geneva convention.

    Intel has sold its compiler expertise for years. There is Intel code in most of the commercial compilers in use. I don't see why Intel should give code away to Microsoft to sell in Visual Studio.

    Equally, there is little point in having an internal optimization team that can't beat an external team with no advance knowledge of the processor architecture.

    --
    Looking for an Information Security student project suggestion?
    Try http://dotcrimeManifesto.com/
  55. Re:The end of gcc 'cause intel's compiler is faste by dhogaza · · Score: 3, Insightful

    As someone who spent about twenty years of his life as a professional compiler writer, no, that's not the problem. My company marketed compilers for Pascal, Modula-2, C, C++ on the PDP-11, Vax, M68K, Sparc, N3200, MIPS and x86 (not all languages on all platforms). All based on a single technology.

    We routinely beat the system vendor's offerings on benchmarks and (more importantly) real programs.

    And we went broke a decade ago, oh well. Compilers became a commodity and we didn't figure out the consequences in time...

  56. Experience with the Intel Compilers by ChaoticCoyote · · Score: 2

    Note that Intel's compilers are available free for non-commercial work. I've written reviews of the Intel compilers, and my experiences suggest that Intel does, indeed, produce faster code than does gcc -- although not to the extent claimed in the Open Magazine article.

    I'm no fan of Intel per se; read my article and Intel's responses for a full story. However, I'm not going to ignore Intel's delivery of high-quality Linux compilers for C++ and Fortran.

    I'm using the Intel compilers (C++ and Fortran) for development of multiprocessing application; Intel supports OpenMP and gcc does not. Overall, I'm very happy with the Intel compilers, and recommend them to any serious developer. It never hurts to have more than one compiler, no matter what platform you're working on.

  57. Kernels === benchmarks (not Linux) by wscott · · Score: 3, Informative

    You have to understand benchmarking people. When they say kernels they mean benchmarking kernels. Small contained programs that extract key loops or algrothmns from larger programs.

    They have a suite of keys loops where each is inportant to someone (fft, lloops, matrix mul, 3d geom, etc..) and determined that in general Proton (the internal codename) is much faster than GCC. Of course it is.

    If only it was free. Unfortunatly, Intel built that compiler on several other companies IP and can't release the source.

  58. Ummmm... didn't they design the chip by Keith+Gabryelski · · Score: 5, Insightful

    Let me get this straight.

    Intel is happy that their compiler can beat another compiler?

    I'd hope so... They designed the damn chips, had a head start, have cash money to buy a few smart compiler dudes .. you'd think they'd have enough pride to work on a compiler until it was the best it could be.

    It is interesting to see Intel pick on GCC. They are in the CHIP BUSINESS... A compiler (any compiler) helps them.

    You'd think THEY would be the ones to release a compiler into open source so they could get the rest of the world looking at how to do even more optimizations for their chips.

    GCC has been out there for well over a decade. Open to anyone to improve ... or just stare at.

    Intel could show us all how to make a better compiler. Open up their source code... but someone might improve on their techniques and that would make them sad. So, instead they berate a compiler that has done them only a service.

    Just my thoughts. Yours may vary.

    1. Re:Ummmm... didn't they design the chip by Dwonis · · Score: 2

      Maybe Intel will open the source, eventually. Right now, they're probably just trying to get a quick return on their investment from people who want a fast compiler now.

    2. Re:Ummmm... didn't they design the chip by Imperator · · Score: 2
      It is interesting to see Intel pick on GCC. They are in the CHIP BUSINESS... A compiler (any compiler) helps them.


      No. GCC makes it much easier to port your code to other platforms. This is exactly what Intel doesn't like about it.
      --

      Gates' Law: Every 18 months, the speed of software halves.
    3. Re:Ummmm... didn't they design the chip by 3247 · · Score: 2
      You'd think THEY would be the ones to release a compiler into open source so they could get the rest of the world looking at how to do even more optimizations for their chips.
      No. As of now, their CPUs are the only ones that profit from their optimizations. If they released the source code, the same optimization techniques might be introduced into compilers for other platforms.
      (On the other hand, their optimizations heavily rely on features only present in their CPUs.)
      --
      Claus
    4. Re:Ummmm... didn't they design the chip by sql*kitten · · Score: 2

      It is interesting to see Intel pick on GCC. They are in the CHIP BUSINESS... A compiler (any compiler) helps them.

      You're right, it is strange, and also they charge money for VTune, their tool for optimizing code for Intel processors. You would think that they would want to get their own development tools into as many hands as possible in an attempt to get ISVs to write apps that favored Intel over AMD.

      But Intel have the money to hire very smart consultants, so there must be a good reason, maybe related to anti-trust worries.

    5. Re:Ummmm... didn't they design the chip by dylan_- · · Score: 2

      Well, you're quite right...and I would have modded you up (since I have some points ATM), but I decided not to simply because you posted rudely, instead of pointing out the flaws in his argument politely.

      Slashdot is bad enough without relatively low uid posters adding to the noise.

      --
      Igor Presnyakov stole my hat
  59. The new intel compiler used to be Kai C++ by Karma+Star · · Score: 5, Informative

    We use Kai (or KCC) at work, and it is truely a remarkable product. It's a two-stage compiler - it generates C code native to the platform your working on, then calls the compiler/linker for that platform to compile it. The idea here is that the native compilers for any given platform will be able to optimize for that platform. So Kai just optimizes what it can and dumps it out into C code, then calls the native compiler/linker with optimizations on to recompile that code into the executable. The Kai C++ compiler was ported to Windows, Solaris, Linux, IRIX, etc., so there was the added benefit that any code written with Kai in mind would compile easily across other machines.

    Kai and GCC are very similar in concept, except that Kai was a bit of a "higher end" compiler. Think of GCC being the Toyota of compilers, and KCC being the Lexus of compilers. You may pay the extra bucks just for the optimization/cross-platform abilities that Kai has - but most normal folk don't need it.

    Unfortunately, Kai got purchased by Intel, and (from what I see on their site) they seem to be dropping the other platforms to support only intel. Really, the Intel compiler is really the Kai compiler, but only for Intel. In fact, Kai (Kuck and Associates Inc.), is now part of Intel. Personally, I think this sucks, since Kai really is a superior product compared to any other C++ compiler out there, if you will to pay the extra $$$...

    --
    Me email iz skyewalkerluke at microsoft's free email service.
  60. GCC obsolete? Don't think so. by WillWare · · Score: 2
    I was surprised by this: the magnitude of the performance differential in numerically intense applications is such that only the most dramatic sort of improvement in the long-awaited version 3 of the GNU C/C++ compiler will stay the hammer that drives a stake through the fibrillating heart of the aging technology behind the GNU C compiler. The suggestion is that GCC is technologically obsolete. That sounds like horseshit to me.

    To be fair to the reviewers, I'll refer to the 2.95 GCC manual, even though manuals for 3.0, 3.01, 3.02 and 3.03 are already online. The sections dealing with GCC's "technology" are primarily sections 14, 16, and 17. There are gobs of optimizations in GCC, and lots of them are specific to target architectures. The way to define new architecture-specific optimizations is mostly spelled out in section 16. The means for doing this appears to be very general.

    A fair criticism of GCC's technology would be to say that optimizations have not yet been defined for recent Intel processors, and Intel's compiler already has them. To say GCC could never have them sounds like a lie. The nice thing about GCC's open-sourceness is that people contribute new optimizations. Intel-specific optimizations would be keenly interesting to a lot of GCC users, and the only reason they wouldn't happen would be that Intel hadn't released enough architecture information to make them possible.

    Perhaps the hot new compiler technology about which the reviewers are so thrilled is the trade secret?

    --
    WWJD for a Klondike Bar?
  61. I continue to be amazed... by ChaoticCoyote · · Score: 2

    ...at the reactionary attitude of supposedly intelligent people.

    Who said that gcc is obsolete? What a ridiculous notion! Intel's compilers may be fast, but they are Intel specific -- gcc is a amazingly portable, cross-platform tool. Why can't the two tools be complementary instead of antagonistic? I'm building code for clusters of multiprocessor, Intel-based computers; for such work, the Intel compiler is exceptional and provides tools (OpenMP) that gcc does not have. Yet gcc is my compiler of choice for other projects where portability is paramount.

    Narrow minds are limited minds.

    I'm all in favor of lots and lots of tools for various platforms; competition is good. It amazes me that Open/free software advocates complain incessantly about monopolies, but then take offense when someone treads in their sacred territory. Intel, Borland, and other vendors will provide impetus for the evolution of gcc -- and that's a good thing.

  62. Re:Take over? I think not... by dstone · · Score: 2

    It's not free software.

    So? Neither is anything by Microsoft and they have taken over. I'm not saying it's right, but it's true and it ain't free.

  63. Re:Take over? I think not... by zsazsa · · Score: 2, Flamebait

    Biting at the troll ...

    It's not free software.

    It's free as in beer for uncommercial uses - go ahead and download it yourself. The only problem seems to be that they say it's just for RedHat or TurboLinux. However, it seems like it just puts itself in /opt and leaves things alone, thankfully. They did get it to work under SuSE.

    geometric mean performance on multiple kernels compiled through it reached 47% improvement over GCC.

    The testing didn't involve compiling kernels at all


    I believe this misunderstanding comes from the fact that they called their different benchmarks "kernels" for some reason.

    Ian

  64. This is great news! by alexhmit01 · · Score: 3, Insightful

    Wow, everyone that I saw posting apparently believes that their home computer is the end all and be all of computing. You're an idiot.

    Look, we only use a handful of Linux machines, so we aren't likely to use this. However, if I was rolling out 1000 workstations in my enterprise, and we were tweaking/tuning the OS before rolling it out, recompiling with this would work.

    Assuming Red Hat makes compiling under the Intel compiler a requirement for inclusion in their distribution, they're in a great situation.

    Why not compile everything with an optimized compiler? You still have the freely redistributable GCC for compiling open source code, but for stuff that is being downloaded in binary format, wouldn't you want it to run faster?

    Does it compile quicker? Who cares. When you are doing software development, you want something that compiles quickly. When you are rolling out a production environment, free speed is good.

    Look, your precious GCC is terrific, it is a flexible, cross-platform compiler. It's always been week on the performance. The GCC team has always made it clear that the biggest problem ISN'T processor-specific tweaks, its general compiler improvements that are patented.

    GCC is a baseline, things should compile with it. Things should also compile to the POSIX standard. That doesn't mean you don't add tweaks on the platforms that you support and set it up so that ./configure figures out which to use.

    Give me a break. I realize that many of you just use Linux to configure and tweak Linux to the point that you can post on Slashdot about how you can do anything with Linux. However, those of us that have included it as one of our tools to solve problems can use ANY tools that are made available to us.

    If I can get a 47% performance improvement by recompiling some of my applications, terrific. Replacing the server may be cheap in terms of hardware (a few grand for a new server every 6-12 months isn't bad, its one of the few reasons to use x86 servers), but it takes time. Building and testing new hardware is easily 2-3 man-weeks before TESTING (expensive, look at your salaries and double it to estimate costs to the company), recompiling on your test machine and testing is just the testing time.

    Alex

    1. Re:This is great news! by 3247 · · Score: 2
      If I can get a 47% performance improvement by recompiling some of my applications, terrific. Replacing the server...
      The average server does not do heavy number-crunching. First, the impact of CPU speed is very low for most server tasks; often the CPU just waits for harddisk, network interface, etc.
      Then, only "numerically intense CPU performance improved by 47%" (quote from original article). For applications other than number-crunching, such as normal user applications or daemons, you won't get such big improvements ... if you'd get improvements at all.
      --
      Claus
  65. Intel's compiler doesn't always beat GCC by PeterM+from+Berkeley · · Score: 2

    Hello,

    I tried Intel's C++ compiler on a pentium 4 running Linux. (Yes, they have an evaluation verson of their compiler for Linux.)

    The results were disappointing on my own pet benchmark: the scientific simulation I use.

    The Intel C++ compiler produced code 2x slower
    than gcc. I used "naive" optimization flags
    like -O3, etc.

    PM

  66. Who cares about performance? by Tom7 · · Score: 2


    Who cares about performance?

    Seriously.
    Everything on my computer runs plenty fast at the instruction level except for:

    mprime (distributed prime search, though I think this is written in hand-tuned x86 asm)
    quake 3 (my video card is the bottleneck, and I also believe that speed-critical parts are written in hand-tuned x86 asm)

    I suppose I should include multimedia encoding as well. (I am not sure how these were written. Maybe a faster compiler really would help here, if I had the source to recompile.)

    Being faster is nice when it comes at no cost, but I say it is one of the least important goals of a compiler. Much more important is being reliable (doesn't make mistakes, doesn't crash, is compliant with the language definition if it exists), being available on many platforms, and in this case, being Free software. If GCC gets these optimizations, great for them, I will upgrade. But I consider a move to the Intel compiler a downgrade because (though it may have better performance) it fails at least at portability and freedom.

    (By the way, I think that the way they summarize their numbers is quite misleading. The geometric mean really exaggerates those two benchmarks that Intel creams GCC on (probably because the Intel compiler recognizes some loop idiom that it knows how to compile efficiently). What I saw looked like an average 10%-20% better performance, with a few outliers.)

  67. Optimizations and Patents by GnrcMan · · Score: 4, Insightful

    One of the biggest hurdles in getting GCC's optimization up to snuff with closed source compilers are patents. Optimization is a patent minefield. Compaq's got 'em for specific optimization techniques they use in their Alpha compiler, Intel's got 'em for their compiler, Microsoft has them as well. Kinda skews the playing field.

  68. Re: GCC Steering Committee by ghutchis · · Score: 2, Informative

    http://gcc.gnu.org/steering.html

    I think you'll find GCC development currently to be some of the most transparent and open of any project out there. Period.

  69. Intel compiler vs. GCC by Erich · · Score: 2
    I have one application that I use that I compile with a target-specific compiler. I use SparcWorks at Work to compile our development tool when I need to do big, long jobs. We do most of the main development with GCC. Why?

    • GCC is a good compiler. It has some handy extra features (macro varargs), produces sensible warnings, and works "good enough" for most development. It also works nicely with gdb.
    • The GNU tools are extremely robust. There have been several times when I've had to go in and change things due to bugs (limitations) with Solaris sed or cc. Like trying to get sed to work on the really long lines of text that the preprocessor generates sometimes.
    • The GNU tools are there on all platforms. I can, without modifying the Makefile significantly, compile the same tool on my Windows box, or a Linux or Mac box that someone might have at home.
    And, the most important reason why I, like most people, don't need Intel's CC on a regular basis:
    • Usually, SPEED DOESN'T MATTER. Okay, so you compile your kernel and all your apps with intel's compiler. My computer (duron 600) is fast enough for what I need to do: editing files with vim, browsing the web with Galeon, playing music and video clips, SSHing to other computers. rc5des gets most of my CPU time. If I needed a perforance boost in the CPU, I could easily get one with 2x the performance for cheap. But for now I don't.

    Sure, there are applications where speed is important, and for those having a platform-specific fast compiler can help. For most things, though, the advances in CPU performance has made the need for an ultra-optimized compiler somewhat useless for most applications that people use.

    If your vim is slow, it's probably due to a slow disk or insufficient memory on your long file. If your galeon is slow, it's probably due to insufficient memory or low bandwith. A new compiler probably won't help you.

    --

    -- Erich

    Slashdot reader since 1997

  70. Re:Take over? I think not... by CoughDropAddict · · Score: 3, Insightful

    * You should say "open source," because saying it isn't free is ambiguous even in your mind, and downright wrong in an accountant's mind. This isn't the show-stopper you seem to imply it is. People have been using and will continue to use closed-source compilers for many, many years. Take a look at the popularity of VC++, Watcom, Borland, etc. in spite of the free (as in open source and $$$) availablility of GCC on Windows.

    You're comparing apples and oranges when you try to argue that since Windows people use closed-source compilers, then Linux people will also. These are completely different groups of people, and I suspect that plenty of people in the Linux community will start using a closed-source compiler when they pry the gcc source from their cold, dead hands.

    * No, they didn't compile kernels. They compiled (and tested) ON multiple kernels. Don't you feel silly now, contesting so loudly a point you misinterpreted?

    Christopher wasn't the misinterpreter, Slashdot was. Did you read the text he quoted? "the new Intel C/C++ compiler's geometric mean performance on multiple kernels compiled through it reached 47% improvement over GCC." You cleverly omitted the bolded text.

    Next time the zealot in you decides to come raging out, take a deep breath and count to 10. Think about how this news might be good for the open-source community before you begin bashing wantonly.

    Chill. Chris wasn't being a zealot, he was simply offering counterarguments to the ridiculous claim that Intel's closed-source, x86-only, C/C++ only (I bet) compiler spells death for GCC.

  71. Another Intel/GCC 3 comparison (Oct 2001) by wolruf · · Score: 2, Interesting

    There's another Linux-only comparison between Intel 5.0.1 and GCC 3.0.1:
    http://coyotegulch.com/hpc/intel_gcc_bench1.html

    --
    wolruf@gmail.com
  72. Reasons the MS-based conclusions are flawed by Anonymous+Brave+Guy · · Score: 2

    Some interesting "choices" seem to have been made in the analysis here. Let's look at a few.

    Firstly, why are we comparing a brand new Intel compiler with a Visual C++ version that is several years old? The full VS.NET is now shipping to MSDN subscribers, and will be publicly available next month. They do mention VS.NET at one point, but it's still horribly biased. They admit that it's 25% faster than 6.0 in unspecified tests, based on a beta version, and we all know how much benchmarks of betas are worth. Try comparing the results with Microsoft's own showcases for their new optimisations in VS.NET, on a real version of VS.NET, and see how much the conclusions depend on your chosen benchmarks. They even have a go at the installation, because (quelle surprise) it takes longer to install VS.NET (a whole development suite) than it takes to install the Intel C++ compiler. Well, duh.

    Next up, we seem to be judging the compilers based purely on geometric mean performance generating numerically intensive code. That's a very, very limited metric, and in fact totally irrelevant to many people.

    Why geometric mean? That's an odd choice, for a start, and AFAICS is never justified in the article.

    Why numerically intensive code? Most real code isn't, so where are the comparisons for the rest? The /. headline is grossly misleading.

    Why is speed of generated code the only factor worth considering all of a sudden? A factor of 3/2 in the performance of generated code is relevant to the scientific community, but few others. The quality of the rest of the generated code, the level of support for the C++ standard, the quality of supplied libraries, etc., are all much more important to most real developments.

    I don't know much about GCC, so can't really form an opinion on the conclusions there. But the MS-based conclusions of the article are grossly misleading.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  73. Is that a good thing, though? by Anonymous+Brave+Guy · · Score: 4, Interesting
    GCC is the only compiler you can count on being present on every Linux (or BSD) system. Thus most code released is going to continue being compilable by gcc, and it's going to remain the baseline for source distribution.

    Is that a good thing? Internet Explorer dominates the web browser market for much the same reasons, whether or not there are better alternatives available. Now we have a proliferation of web sites that only work with IE instead of standard HTML, and all the other well-documented problems.

    It would be an advantage for the Linux world if it was easier to port code from other platforms. Most of that code isn't written with GCC, it's written with VC++, C++ Builder, CodeWarrior, etc. If you're going to do this, standards compliance and ease of portability are very important.

    I don't know how good GCC is these days; it used to have quite a good reputation for standard compliance and quality of generated code, but that was a couple of years back. If it hasn't kept up -- I said "if", because I don't think this article demonstrates that either way -- and the Linux community religiously stick with it based on philosophical arguments rather than technical merit, surely they'll just be shooting themselves in the foot?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Is that a good thing, though? by Anonymous+Brave+Guy · · Score: 2
      Dude, it's not because GCC isn't standards compliant that you can't just, say, recompile a Mac program on Linux. The reason is that each platform has its own unique libraries APIs, system resource layouts, etc. This is more than just C/C++ language standards.

      Of course it is. However, well-designed large scale applications will isolate the platform-specific libraries as much as possible, to allow for ease of porting, particularly if the possibility of a shift to a different development environment was considered up-front. Porting the low level GUI code and other stuff requiring external libraries is supposed to be the little bit you do at the end. For the remainder of the program -- 90+% of most smartly written source code -- it is standards compatibility and compiler features that count.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  74. Get Intel compiler for free (as in beer)... by acidblood · · Score: 3, Informative

    here. Only for non-commercial use. At least the cost factor will no longer be a problem for some users.

    --

    Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/

  75. Remember Watcom C? It's been opensourced. by Reziac · · Score: 2

    Some while ago, in fact (August 2000), based on the final commercial version, 11.0b. Take a look at http://openwatcom.org. And the people in charge are the cream of the Watcom community. They're being slow and careful (and remember this is a volunteer project by people with day job, so it's being done in their copious free time), but knowing this crew, they'll do it RIGHT.

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  76. PGCC Compiler Claims Same Performance Improvement by sabat · · Score: 2, Interesting

    The Pentium Compiler Group (look here) has a compiler patch to optimize GCC for the Pentium family. It's been out for years -- my company uses it and we notice great improvement -- and claims about the same performance gain as this "new" intel compiler. Interesting thing is, it was based on patches from INTEL!

    From the PCG FAQ:

    1.18 Where did PGCC come from?

    When Intel released the Pentium some of their team produced a version of gcc with enhancements which gave 30% speed improvements on some benchmarks. Having demonstrated the improvements possible, they stopped development and released the code.

    PGCC came from this work and further enhancements of the Intel code that had been produced. It aims to improve the stability of the compiler and to carry on improving the quality of the generated code.

    1.19 How much speed improvement can I expect?

    The 30% achieved by the Intel engineers is rare in the real world. Typically, the improvement will be about 5% using an intermediate optimization level like -O3 and no fine-tuning. Sometimes the 30% can be achieved - gzip-1.24 unzips about 20%-35% faster - but don't bank on it.

    ---
    The interesting thing here is the note that the Intel engineers supposedly stopped work on the code. Apparently, they didn't.

    Anyway, I recommend checking this out if you want to stick with GCC. The optimizations that work the best:

    gcc -O6 -march=pentiumpro

    The pentiumpro switch will also optimize for PII and PIII (and presumably PIV).

    As with the intel compiler, don't try to build the Linux kernel with this.

    --
    I, for one, welcome our new Antichrist overlord.
  77. 65% increase in codesize for the Intel compiler? by jelle · · Score: 4, Interesting

    So I downloaded the Linux_cpu.zip

    It contains a shared and a static library, and two binaries. Full of symbols, so I stip them

    61124 bytes in libcxa.a
    49356 bytes in libcxa.so.1
    90380 bytes oblcpu_gcc
    131736 bytes oblcpu_icc

    $ ldd oblcpu_*
    oblcpu_gcc:
    libm.so.6 => /lib/libm.so.6 (0x4002b000)
    libc.so.6 => /lib/libc.so.6 (0x4004d000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
    oblcpu_icc:
    libm.so.6 => /lib/libm.so.6 (0x4002b000)
    libcxa.so.1 => not found
    libc.so.6 => /lib/libc.so.6 (0x4004d000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

    Ok, so the icc version needs the shared library to be loaded as well.

    $ size libcxa.so.1 oblcpu_*
    text data bss dec hex filename
    22839 3008 124 25971 6573 libcxa.so.1
    70563 15860 1923912 2010335 1eacdf oblcpu_gcc
    93858 24236 1923768 2041862 1f2806 oblcpu_icc

    Codesize for gcc: 70563 bytes
    Codesize for icc: 93858 + 22839 = 116697

    Hmm, that is a 65% increase in code size! Not to mention the increase in data size (can anybody say 'lookup table' or 'buffering'?)

    Hmm... I wonder if they tried gcc optimizations such as '-funroll-all-loops'. Too bad they didn't provide the source so we could verify the results.

    I got a free evaluation CD from Intel with the February issue of "Linux Magazine", so I'll be doing my own comparisons thank you.

    --
    --- Hindsight is 20/20, but walking backwards is not the answer.
  78. SSE performance, or real world? by -tji · · Score: 2

    Much of the optimization he discusses in the article are based on optimizing MMX and SSE scenarios. Does gcc even use these features of the x86 CPU's?

    In a benchmark environment, it's very easy to come up with examples that shine with SSE. But, it's much harder for real world applications.

    The Intel compiler may very well be more efficient than gcc. But, I highly doubt that it is ~40% faster in real applications.

  79. Re:Take over? I think not... by Sentry21 · · Score: 2

    However, GCC is universal. It runs everthing, targets anything and costs nothing. Nothing in terms of both Beer and Speech.

    And sucks on all platforms.

    Which is fine, because that's what it's for. Intel's compiler does one thing great - x86 C/C++/Fortran compilation. GCC does many things in mediocrity - Java, C, C++, Fortran, Objective C, on PPC, Alpha, MIPS, PaRISC, x86, blah blah.

    GCC is omnipresent and will continue to be so, but people who want the big power will pay the big bucks.

    Was Loki compiling with GCC? If so, how much faster would their games have been with this compiler? Hell, Myth II was actually playable on my Cyrix 133 in software mode, if they could get this kind of optimization, it could prove that, in a lot of cases, Linux is great for things that people think it isn't so good for.

    --Dan

  80. It's not 47 percent on my app by Chang · · Score: 4, Interesting

    The gain is obviously highly dependant on the application.

    I tested the Intel compiler against GCC using Robert Hyatt's excellent crafty chess engine and the speedup was only 7%. (Athlon 1.2Ghz)

    On a PIII-500Mhz the speedup was only 2.5%

    Of course for other application results with vary, but I for me the Intel compiler isn't worth the money or the effort.

    Hats off to the GCC team for building one of the greatest tools of all time. You can't beat GCC for sheer usefulness and ubiquity.

  81. umm... mingw anyone? by yerricde · · Score: 2

    From the article:

    what really makes the Intel compiler so very interesting is the fact that it delivers the same instruction sequences on both Linux and Windows platforms.

    Um... duh! GCC for Windows/x86 and GCC for Linux/x86 also produce the same instructions. This shows that the Open Magazine writers have no ability to use Google, as a simple search for Windows GCC turns up MinGW as the second result. (The first result is Cygwin, which by default uses a more heavyweight C library.)

    --
    Will I retire or break 10K?
  82. GCC can't generate 16-bit code by yerricde · · Score: 5, Informative

    Fortunantly, GCC just about compiles on everything with a CPU

    "Unfortunantly," last time I checked, GCC doesn't generate code for 8086 or 80286 processors, only i386 and up, so you can't build an OS that's backwards-compatible with legacy 16-bit apps with GCC.

    --
    Will I retire or break 10K?
  83. So what's the alternative? by yerricde · · Score: 2

    > GCC is the only compiler you can count on being present on every Linux (or BSD) system.

    Is that a good thing? [IE example]

    No. However, is there a compiler released as free software (or heck even only freely redistributable) that outperforms GCC? It's not like IE, where there exist multiple free web browsers (Mozilla and Konqueror).

    Most of that code isn't written with GCC, it's written with VC++, C++ Builder, CodeWarrior, etc. If you're going to do this, standards compliance and ease of portability are very important.

    This is not a compiler issue as much a library issue. Most free apps written in C are written in either ANSI C89 or something that approximates C99 (that is, GNU C). A Mac Cocoa application ported to BSD links against GNUStep; a Windows app links against winelib.

    If ... the Linux community religiously stick with it based on philosophical arguments rather than technical merit, surely they'll just be shooting themselves in the foot?

    What about economic arguments? Most hobbyists do not have $500 to spend on an Intel compiler license, and distribution vendors surely can't charge that per copy. Nothing will get bundled with the standard free operating system distributions that is not at least free to redistribute and to use for any purpose.

    --
    Will I retire or break 10K?
  84. Open Watcom has NOT been released yet by yerricde · · Score: 2

    [Watcom C++ has been released as open-source software] Some while ago, in fact (August 2000), based on the final commercial version, 11.0b. Take a look at http://openwatcom.org

    I did, and they still don't have a release up. It's not open source until it has been licensed to at least one third party under an open-source license.

    They're being slow and careful

    Some would say "too slow." At this rate, x86 will be dead and we'll all be using Hammer and Itanium processors by the time Open Watcom comes out.

    --
    Will I retire or break 10K?
    1. Re:Open Watcom has NOT been released yet by Reziac · · Score: 2

      Hi Damian, long time no talk to :)

      Yeah, I checked (both the site and the newsgroups) after I posted that, and they've pushed back the expected release point yet again. One big hangup was extracting all the code that Sybase didn't own and couldn't release -- apparently Legal took a long time even to get going on this and the process is taking WAY longer than was expected.
      But Stephen Howe (one of the prime movers) says it's still coming along, so perhaps we'll live to see it :)

      --
      ~REZ~ #43301. Who'd fake being me anyway?
  85. Will this matter? by Restil · · Score: 2

    If you're a developer, working with the latest hardware, how long does it take to recompile your code?

    Probably not very long. Chances are good, if you're smart, everytime you compile you're recompiling one or two objects at a time. Not the entire codebase. Does it matter if it takes 2 seconds rather than one second? Do you ever notice? Would you care?

    All this means, is that on one architecture, gcc has room for improvement. Yet gcc works on damn near everything. Intel's does not. Its all give and take.

    -Restil

    --
    Play with my webcams and lights here
  86. Let me get this straight by volpe · · Score: 2
    First you suggest that the key to wide distribution is Open Source alone:

    The article itself states the compiler itself is not open source. So how's this going to cause it to be chosen over GCC when it (probably) won't be distributed to the same degree as GCC?

    Then you make the following analogy:

    Q: Why do people use MS-Office?
    A: Because its there.

    Q: Why will people use GCC?
    A: Because its there!

    You just contradicted yourself. MS-Office is not Open Source and it appears to be doing just fine.
    1. Re:Let me get this straight by volpe · · Score: 2


      Open up your brain and adjust a few things:

      You're off to a bad start already.


      1) Microsoft platform = closed source(*). Microsoft Office is loaded on practically every single corporate PC out there and at least half of all home machines.

      2) Linux platform = open source(*). GCC is open source. GCC is on every single linux server and desktop with the development stuff loaded.


      This was exactly my point. These similarities between the successes of opposing business models serve to refute the notion that something won't be accepted if it isn't open source.


      I don't see the contradiction

      I'll try to contain my surprise


      You might see it if you were a pedantic asshole only concerned with logic instead of a realistic world view

      Ad hominem: -1

    2. Re:Let me get this straight by volpe · · Score: 2


      this doesn't really contradict the first thing he said. the first part was saying thant since inte's compiler is not opensource, and will not be accepted in an opensource world.


      Are you saying he was making two completely different and unconnected points? At best, his example is a non-sequitur. At worst, it contradicts what he said. I still see an implication that if something isn't open source, it's not going to be successful, followed by an example showing a case where business model doesn't affect success.

  87. Imprecise floating point! by sasami · · Score: 5, Insightful
    The article doesn't bother to mention what compiler flags were used to optimize the benchmarks.

    The Intel compiler does not generate precise floating-point code by default!

    From the compiler documentation:
    Option: -mp
    Description: Favors conformance to the ANSI C and IEEE 754 standards for floating-point arithmetic.
    Default: OFF
    Looks like we can't even have IEEE compliance, we can only favor it. More gory details can be found in the manual (warning, big PDF...), but the "optimizations" that shocked me most were:

    Division may be replaced with multiplication by the reciprocal The long double type is identical to normal double "Truncating" from float to integer is actually round-to-nearest!
    These are all defaults. Trading precision for speed can be a lifesaver sometimes, but not in numerical analysis!

    --
    I like canned peaches.
    --
    Freedom is not the license to do what we like, it is the power to do what we ought.
    1. Re:Imprecise floating point! by dvdeug · · Score: 2

      Looks like we can't even have IEEE compliance, we can only favor it.

      The difference between that and GCC is that GCC has the "favor IEEE" on by default. All the gory details are in the GCC mail archives, but GCC is no wonder of IEEE conformance, either.

  88. Re:The end of gcc 'cause intel's compiler is faste by cananian · · Score: 2
    Not only that --- the article doesn't even say which compiler flags they used with the two compilers. For all we know, they could have been testing against gcc *with all the optimizations turned off*! Without more detailed information on how the compiler was invoked, such comparisons are meaningless.

    Also, they're still getting slightly less performance on linux, which --- since their benchmarks are completely OS-independent number-crunchers --- probably means that their methodology was faulty. Did they disable background tasks, for instance? Did they log in single-user?

    I don't trust these numbers at all.

    --
    [ /. is too noisy already -- who needs a .sig? ]
  89. -march=i486 -mcpu=i686 by yerricde · · Score: 5, Interesting

    The hobbyist licence is free.

    But it prohibits selling copies of the compiler's output. Thus, if you make a CD of your software, you probably can't even sell it for $5 to cover duplication costs. Plus, such a restrictions is incompatible with the "no restrictions on selling" language in the GNU GPL.

    Although aren't most Linux distros only compiled for the i386 anyway, ignoring what i686 optimizations exist in GCC?

    AFAIK, the Linux distributions are compiled with something like -march=i486 -mcpu=i686 which means roughly "Use only those instructions available in i486 and up, but schedule for i686." (Source: GCC 2.95.3 docs, info gcc invoking submodel i386)

    --
    Will I retire or break 10K?
    1. Re:-march=i486 -mcpu=i686 by jdavidb · · Score: 2

      You can also check out Linux From Scratch if you'd like to compile with your own optimization options. Personally, even though I tend to compile my Linuces from scratch nowadays, I still don't do any optimization.



      Actually, for my next system, the options will be something more like -march=powerpc. :)

  90. Re:real question is C++ conformance + compiler spe by elflord · · Score: 2
    I couldn't agree more. Even though the code I write needs to run fast, a little extra speed is just not worth the development effort of having to put up with a broken compiler. Once gcc 3.x is at the point where it can compile KDE (which basically means they need to nail down the ABI), I'm not going to look back. The support for the standard is several orders of magnitude better than that in earlier releases.

    Compile speed is also a big issue for me, and I'd guess anyone who compiles C++ code.

    Cheers,

  91. Re:GNU is no longer the driving force behind free by elflord · · Score: 5, Interesting
    > Maybe I'm paranoid, but maybe RMS is not very enthusiastic about C++ support because GNOME would look even worse in comparison to KDE, once a good C++ compiler is available? Paranoid, stupid?

    He actually makes an interesting point. I mean, they released a g++ 3.0 that would not correctly compile KDE. It appears that the associated ABI bugs are not going to be addressed until 3.1. And they've dropped the ball on it badly enough that it's been forked twice over the last few years. Up to and including 2.95.x, there were a lot of very obvious and annoying bugs with g++ (no namespace std, no stringstream class, no ios_base class, etc) I don't see any conspiracy theories, but it doesn't seem that gcc have historically given C++ a very high priority.

  92. People will start to care about this kind of thing by SilentTristero · · Score: 2
    At my company GenArts, we write image processing plug-ins for high end film and video processing systems. Performance is absolutely key. If it takes an hour to render a sequence, even a 5% gain is important. 30-40% is amazing, and our customers REALLY CARE. We're starting to port our stuff to Linux, e.g. for Shake and the fact that the Intel compiler smokes both MSVC and GCC is important for us. We couldn't care less about compile time; we use CL/GCC for debugging builds, then switch to icl toward the end of the cycle. GCC isn't going to go away any time soon, but anything we can do to get more high-performance real-world apps (like audio and video editors) into Linux (even if only on x86) is good news for the Linux market.

    -- SilentTristero

    ps: to compiler folks, "kernel" means a small bit of highly computational code, usually with no I/O; not an OS kernel. Kernels to them are things like FFT, convolution, and so on.

  93. Re:Its output is not GPL compatible by Wesley+Felter · · Score: 2

    What if I compile a GPL'ed app and don't distribute the binary? Certainly the GPL doesn't restrict me in that case, because the GPL only restricts redistribution.

  94. Missing the point by Dr.+Spork · · Score: 2
    It's stupid to interpret the article as saying that GCC should be retired. Of course it's more versatile than a x86-specific compiler.

    What the upshot should be is that any x86 application which is released in binary and not compiled with the Intel compiler is cheating the user about 20% in performance. In other words, Linux distributions would look much more impressive if they were pre-compiled with this compiler, and the entire Linux community (who doesn't build their own kernel/apps--which is most Linux users) is being short-changed.

    The sad fact is that until RPM/APT packagers switch to the new compiler, every task done on Linux will be slower that in Windows. Every "Linux is fine as it is, however that may be" apologist is just making the whole OS look stupid.

    What we really need is a centralized gang of package-makers (perhaps at Sourceforge) who paid for the Intel compiler and have some nice machines, which are totally dedicated to compiling major releases of popular GPL apps. Failing that, we can only hope that Red Hat et. al. will use the Intel compiler to make all their future RPMs. They'd be stupid not to.

    1. Re:Missing the point by dvdeug · · Score: 2

      Failing that, we can only hope that Red Hat et. al. will use the Intel compiler to make all their future RPMs.

      I wouldn't hope that. Red Hat employs several of the main GCC hackers.

      As a side note, Debian will never employ a non-free compiler in compiling its packages. So Red Hat and Debian probably won't switch over, leaving it for Caldera and SUSE and the other non-free distributers to use the Intel compiler if they so want.

    2. Re:Missing the point by Dr.+Spork · · Score: 2

      I fear you're right, and I think this just shows Debian and Red Hat are not really interested in delivering its customers a good product. If anything kills Linux, this sort of hardheadedness will be it. Soon, Windows will start looking pretty good again.

    3. Re:Missing the point by dvdeug · · Score: 2

      What responsible OS vendor would switch to a compiler they didn't have the source to? Possible trojans, a whole new set of bugs that they can't fix, and no control over whether improvements will be made or bugs will continue to be fixed upstream. For a slight speed increase - it's not a tradeoff most would make, for good reason.

  95. Re:Kernels === benchmarks (not Linux) by ToLu+the+Happy+Furby · · Score: 2

    You have to understand benchmarking people. When they say kernels they mean benchmarking kernels. Small contained programs that extract key loops or algrothmns from larger programs.

    Exactly correct. 14 replies and this is the only one that even understands the terminology used. Someone mod parent up.

  96. Hmmmm.... oooooh well by rice_burners_suck · · Score: 2

    Perhaps Intel's C/C++ compiler produces faster code because, uh, Intel knows exactly how their processor works inside and out? I'm sure that their guides to optimization and whatnot are nothing nearly as effective as having the actual engineers around to answer your questions about what's faster under what circumstances.

    Who knows, maybe the folks who wrote the compiler had the fscking schematics to the flipping processor?!??!?!?!

    On the other hand, perhaps it's some sort of a coincidence that Intel's compiler happens to produce 47% faster code. For a real analysis, they should have tested against Borland's compiler, and WATCOM's compiler. I happen to have been using WATCOM for a number of years now, and I can tell you that, being a staid and steadfast compiler (likening it to Melville's fine description of Starbuck, in the first "Knights and Squires" chapter in Moby Dick), it produces DAMN good code. I cannot compare it to the compiler Intel has authored, because I have never used their compiler.

    Astute readers may notice the author's prominent omission of Microsoft's compiler. The reasoning behind said omission centers around the fact that Microsoft is a giant squid, and therefore, their products will sell just fine whether they work correctly, efficiently, both, or neither. Oh well.

    In any case, I believe that whether or not Intel's compiler is the best out there, they should release the entire product under some sort of open source license that allows its inclusion in GPL'd code, such as, hmmm... GCC perhaps. Please allow me to explain my reasoning behind this idea. Intel is in the business of making microprocessors. I believe that if they give the world access to the source code (and technical documentation) to one hell of a darn good compiler, and allow others to modify or copy it, will encourage people to make more and faster software for Intel platforms. Imagine if there is an "experimental" new branch of GCC, where the entire system has been completely overhauled on an algorithm basis. Perhaps the compiler can be made to execute more quickly, while still producing better code for whatever platforms... There are endless possibilities in the world of compilers, and I think that a truly good compiler could be produced with the help of engineers from the world's top microprocessor companies, which means not just Intel, but their competitors as well. I say this because I surmise that if Intel took this move, other processor vendors would find themselves in a position where they need to do the same or better for their clients, or some such bullshoot like that. Well, as the saying goes, "Oh well." Because I don't know what the hell I'm talking about, because I'm tired, because I've been working all freakin' day long, and that's tiring, and sh*t.

    xxxxxxxxxx O xxxxxxxxxx H xxxxxxxxxx xxxxxxxxxx W xxxxxxxxxx E xxxxxxxxxx L xxxxxxxxxx L xxxxxxxxxx

    Oh yeah, and I almost forgot to mention something that I consider pretty interesting. SLASHDOT'S LAMENESS FILTER IS A PEACE OF SHIT. I MEAN, YOU CAN'T EVEN INCLUDE A CODE SNIPPET IN YOUR COMMENT, FOR CRYING OUT LOUD. LIKE SOMEONE'S SIG SAYS, A LAMENESS FILTER ON SLASHDOT IS LIKE A SHIT FILTER ON YOUR ASS. It's anything but staid and steadfast! GET RID OF THAT DAMN THING!!! If you don't get rid of that stupid lameness filter thing, leave it in, but ALLOW THE USER TO POST THEIR COMMENT, but put an option in your preferences and stuff to GLOBALLY HIDE "LAME" comments, just like the OPTION to HIDE ANONYMOUS COWARDS' COMMENTS, d00dz. That way, the user can decide whether to look at that '1337 stuff or n0t. BUT DON'T MAKE THIS SYSTEM SO STUPID!

    Now, finally, I'll put in my closing "OH WELL", and be on my way:

    xxxxxxxxxx O xxxxxxxxxx H xxxxxxxxxx xxxxxxxxxx W xxxxxxxxxx E xxxxxxxxxx L xxxxxxxxxx L xxxxxxxxxx

    From memory, and this may be totally wrong...

    "As you can see, we've had our eye on you for some time now Mr. Anderson. It seems that you've been living two lives. In one, you're Thomas A. Anderson, program writer for a respectible software company. You have a social security number, you pay your taxes, and you help your landlady carry out her garbage. The other life is lived in computers, where you go by the hacker alias Neo and are guilty of virtually every computer crime we have a law for. One of these lives has a future, and one of them does not. Now, I'm going to be as forthcoming with you as I can, Mr. Anderson. You're here because we need your help. We know that you've been contacted by a certain individual, a man who calls himself Morpheus. Whatever you think you know about this man is irrelevant; he is considered by some authorities to be the most dangerous man alive. My partners think I'm wasting my time with you, but I think you wish to do the right thing. We're willing to wipe the slate clean; give you a fresh start; all we're asking is your cooperation in bringing a known terrorist to justice."

    "That sounds like a really good deal, but I think I got a better one. How 'bout I give you the finger, and you give me my phone call."

    "Hmmm... Mr. Anderson. You disappoint me."

    "You can't scare me with this gestapo crap. I know my rights. I want my phone call."

    "Tell me, Mr. Anderson, what good is a phone call, if you're unable to speak?"

    Now, seriously, this is the end of my comment. Finis.

    1. Re:Hmmmm.... oooooh well by rice_burners_suck · · Score: 2
      Hi there. I read your comment late last night, after going out, coming back, and having too much beer. (Negra Modelo, because Guiness sucks.) Your comment was extremely funny when I was drunk, especially the part about Intel's d00dz being unmatchably staid and steadfast compiler writers. "A staid, steadfast man, whose life was a telling pantomime of something or other, not a tame chapter of sounds" or something like that, is the quote from Moby Dick. It's chapter 27, if I remember correctly. Maybe later I'll dig through my books and look it up, just to be sure. Oh well.

      Oh yeah... thanks for reading my comment in its entirety.

      From memory:

      "You!"

      "Marty is that you?"

      "Hey, hey doc, where are you?"

      "Working."

      "Where's Einstein, is he with you?"

      "Yeah, he's right here."

      "What's going on, where've you been all week?"

      "Never mind you Marty, can you meet me at Twin Pines Mall tonight at 1:15? I've made a major breakthrough and I'll need your assistance."

      "Wait a minute, 1:15 in the morning?"

      "Precisely."

      "You know doc, you left your equipment on all week."

      "Never mind you Marty; you better not hook up to the amplifier, there's a slight possibility of overload."

      "Yeah, I'll keep that in mind."

      [clocks go off]

      "Are those my clocks I hear?"

      "Yeah, it's, uh, eight o'clock."

      "Perfect! My experiment worked! They're all exactly 25 minutes slow!"

      "What a minute, wait a minute Doc, are you telling me that it's 8:25?"

      "Precisely."

      "Damn. I'm late for school!"

  97. Re:Take over? I think not... by Courageous · · Score: 2

    ...especially when some analyses take as much as 3 days of computation time...

    Oh. You work on small problems then, right?

    :) :)

    C//

  98. no redefinition by markj02 · · Score: 2
    The GPL is quite clear about what open source is about:

    By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software

    Furthermore, the notion that open source software caught on because it was faster or higher quality is ridiculous to anybody who is familiar with its history. GNU C was accepted and widely used long before it became the high quality compiler it is today. Linux caught on long before its networking and stability were competitive. But the ability to get the source code and fix it more than makes up for any deficiencies and limitations to many users, and that's why open source software has been as successful as it has.

    As for "redefinition", I don't see why we should let you, the Microsoft PR department, or a bunch of clueless journalists and VCs define what open source is all about. If open source isn't for you, just don't use it and go away.

  99. KAI? by HiThere · · Score: 2

    An earlier poster claimed that this was originally the KAI C/C++ compiler, and that Intel had bought them and killed off the versions for non-Intel platforms.

    I would be quite surprised if they then turned around and opened the source, which might allow those cross-platform versions to be resurrected.
    .

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  100. Re:The end of gcc 'cause intel's compiler is faste by HiThere · · Score: 2

    One feasible way would be with a quite intelligent post-processor. This would need to be architecture specific, since what it would be initializing would vary with the target.
    .

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  101. Check the license to make sure that it's unencumbe by HiThere · · Score: 2

    Check the license to make sure that it's unencumbed enough for your purposes. I have seen warnings that it is incompatible with the GPL, and that it could be interpreted to prohibit the recovery of the cost of distribution.

    OTOH, it should be fine for simple experimentation.
    .

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  102. Intel VTune - Profiler on Steroids by goingware · · Score: 2
    At the advice of a friend I recently tried the Intel VTune performance analyzer on a Windows program I'm developing for my client (it has a 30-day free evaluation, with free tech support even during the eval).

    I am extremely impressed with it and right away I was able to make my code much faster, faster even than getting a better compiler would have been able to do.

    The 5.0 release version is windows only, but the VTune 6.0 Beta will profile code running on both Windows and Linux. You still need a Windows host to run the UI on, but you can profile on a Linux box across the network. I think they supply kernel patches to put some performance monitoring tools in the kernel.

    If just a few key free software developer had this tool, it would make a tremendous difference. For the most part, the suggestions it gives you are applicable to any processor, not just x86. Yes, the code coach will tell you to put in SIMD instructions but you don't need to do that, you can pay attention to when it tells you there is a hidden temporary in C++, for example.

    If the profiling were applied to libraries like the XLib, Gnome libraries, KDE libraries, glibc and so on it would benefit all platforms.

    Also you can profile cross-platform code on Windows, like AbiWord, the Gimp or Mozilla and help out code on Linux.

    I'm using an eval copy now but I'm planning on purchasing a licensed copy soon. I think it will make a huge difference to the results I can produce for my consulting business, and I plan to use the tool to contribute to free software products as well.

    --
    -- Could you use my software consulting serv
  103. 20 year old technology shouldn't matter anymore by leereyno · · Score: 2

    The IBM AT (286) came out in 1984, the XT (8088) in 81, and the 8086/88 itself back when disco was still very much the rage and I was in grade school. I cannot think of any reason we should give a rat's ass whether any compiler can create code for these chips anymore. They don't have enough power to run anything more than a text based dumb terminal anyway. My Ti-92 calculator has a more powerful CPU in it (68000) than an XT. We might as well worry about whether GCC can create code for a PDP-11 while we're at it.

    Making an open source version of dos would have been a great idea 10 or 15 years ago, but today it just doesn't matter. Is anyone's aversion to MS stuff so strong that they would rather reinvent a version of DOS instead of just using 6.22? There is DRDOS/OpenDOS/whatever-they're-calling-it-now if you don't like MS-DOS.

    The only area where 8 and 16 bit chips are of any importance is in embedded systems with low performance requirements. The good news is that for the 68HC11, the most popular microcontroller around, there is a GCC cross compiler available. I've downloaded it and played with it myself, it works.

    Lee

    --
    Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
    1. Re:20 year old technology shouldn't matter anymore by Paul+Komarek · · Score: 2

      Hmm, I guess I'd sort of hope that gcc supports the PDP-11. You'd think someone would have done it already.

      -Paul Komarek

  104. DOS still used in embedded systems by yerricde · · Score: 2, Informative

    The only area where 8 and 16 bit chips are of any importance is in embedded systems with low performance requirements.

    And a surprising number of those 16-bit embedded systems are based on the x86/DOS platform. The FreeDOS project is still relevant.

    --
    Will I retire or break 10K?
    1. Re:DOS still used in embedded systems by Shanep · · Score: 2

      And a surprising number of those 16-bit embedded systems are based on the x86/DOS platform.

      The elevator displays (inside showing time, floor, company, etc) in the building at my last contract in Sydney were running on DOS.

      A few times I noticed the screen showing the typical BIOS POST info and "Command.com not found, insert disk in drive A:", along with frozen screens etc.

      And getting the train to work often includes the delight of seeing Windows NT BSOD on platform timetable screens. About 6 to 8 screens per platform per station adds up to what must be a whole lot of money the tax payer should never have had to pay for. Especially when they often either display a BSOD or a frozen login screen on systems that could have been served by a free OS that rarely freezes outside of hardware problems.

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
  105. It's the optimiser... by RallyDriver · · Score: 3, Interesting

    Everyone seems to have their heads so immersed in "computers == x86" they can't see the obvious:

    A point I'm suprised no-one has made yet - GCC is a great compiler, and it's optimiser kicks ass, on sensible (read: orthogonal etc.) CPU architectures (Sparc, PA-RISC) and even semi sensible ones (Motorola 68k).

    HP compiles the HP-UX kernel for PA-RISC with gcc, and not their own compiler, because it produces the tightest code there is for their platform.

    The 80386 is definitely non-sensible; an ungodly mess nothing short of Byzantine - 16 different registers, with no two with instruction sets alike. 80 bit data formats. 8 and 16-bit legacy modes. It shares the unqiue distinction of being even uglier than VAX. Intel would have scrapped the whole steaming turd many moons ago instead of reinventing the 1970's and microcode, were it not for the Wintel monopoly fuelling the fire for faster 80x86 compatibles.

    This has chicken-and-egged its way into the open soruce world - the ultimate reason I'm running Linux on P3 and not a Sparc, PA-RISC, 88100, MIPS, RS6k or whatever is because of Microsoft; yes really - the Wintel (or DOStel) hegemony made x86 the best bang for buck architecture through economies of mass production, even though it ***sucks***, which is why Linus Torvalds had one as an impecunious student in 1986.

    Now, I'm trapped in the Wintel sheep model on a smaller scale - I have a P3 for the same reason that most people have Windows; I'd have a Sparc or Merced based Linux box in a heartbeat, but all the Linux software I like to use comes ready-rolled for x86, and no I don't enjoy typing "make" 15 times just to install intant messaging.

    It's hardly surprising that Intel's code optimiser does better on their archtecture (including 3rd party implementations thereof). It's very goofy to try to optimise for x86. I think you'll find the Intel / GCC gap to be a lot smaller on Merced (IA-64), which is a more sensible setup.

  106. Wrong on both counts... by Anonymous+Brave+Guy · · Score: 2
    If Internet Explorer were Free Software, standards wouldn't matter because whatever Internet Explorer does would become a de facto standard (and would probably wind up getting standardized in a future version of the W3C specification -- not something Microsoft is about to allow happen).

    Right now, whatever IE does already becomes a de facto standard, because of its ubiquity and dominance in the marketplace. That's my point. Its own "standards" are now rated by many as more important than the W3C's, which is not good for other browsers or consumers in general. This is exactly my point about GCC, for exactly the same reasons.

    The W3C has been left with little choice but to accept a number of Microsoft's proposals, or risk becoming irrelevant. But the C++ standards groups aren't under the same pressure. They will quietly ignore GCC's eccentricities if they feel it appropriate, and GCC will be left as a compiler for "not quite C++" that no-one outside of the Linux/open source community gives a wotsit about. The level of porting to Linux that goes on at present will drop to almost nothing, and the popularity of Linux will remain forever at the enthusiastic hobbyist level. Personally, I think that would be a shame, and I'm sure many here would agree.

    The question then becomes: what can we do about it? As I said before, if you accept the "GCC is the Linux C++ compiler" rule, based on religious or philosophical reasoning rather than technical merit, you bring it upon yourselves. Competition and alternatives are healthy in the open source/free software environment, just as they are anywhere else. In the meantime, it's in everyone's interests to move away from this perception that if you're writing C++ for Linux, you're actually writing for GCC. Move toward the standard as the baseline for your distribution; that's what it's there for. Then you can pick up alternative compilers if and when they come along.

    GCC is standards compliant, but it does have some of its own extensions, such as a 'long long' data type in C that's like 'long' but is 64 bits instead of 32.

    GCC is not fully compliant with the C++ standard. As yet, no compiler is, though the leading edge is expected to be as near as makes no difference within weeks (including the elusive export support). As for extensions, why not go with the standard instead, since C99 now provides for fixed-size integers?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Wrong on both counts... by Anonymous+Brave+Guy · · Score: 2
      I should mention that gcc does also have a -pedantic option and other such things, so if you have a need to write code that is certain to be portable, you can use that.

      Sure, no problem there. My problem was the "other way around", the implication in the original post that everything is written for GCC, rather than that GCC can be used to compile everything. Most of the extensions GCC provides don't offer that much over normal C++. They're a convenience, but using them costs portability.

      As for C99 providing for fixed-size integers, well, I didn't know that. Does it provide a 64-bit integer? Arbitrary length integer? (I'm thinking bignum here.)

      Not arbitrary AFAIK, but several useful variations on the theme; look up the header <inttypes.h>.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  107. Why only consider "free" stuff? by Anonymous+Brave+Guy · · Score: 2

    I don't know of any truly free alternatives just now, but that's really not the point. If you tie yourself into a specific compiler, even one as well-regarded as GCC, then you have "vendor lock-in" as surely as if you install MS everywhere, and all the same problems. In particular, if and when a better alternative comes along, you won't be able to take advantage of it. Aim for the standards instead, and you'll be in with a much better chance.

    I've covered the standard vs. library issue under another reply to my last post. I invite you to follow that thread to see why your reasoning here doesn't affect my argument for standards compliance.

    Finally, the economic issue is pretty irrelevant to companies. A compiler costs them nothing in real terms, and they are the ones writing the "killer apps" Linux so desperately needs if it's going to take off as a serious OS platform for the non-hobbyist world. If there's a good Linux C++ compiler available to them that lets them port their code, they will buy it if necessary. The question is whether GCC is, and will remain, up to the job. My reservation is that the original post implied it would continue to be used, whatever the answer to that question may be.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  108. Re:SSE optimizations - geometric mean is better by The+Famous+Druid · · Score: 2, Informative

    Actually, geometric means tend to reduce the impact of one "outstanding" result.

    A quick example, 3 data points, values (2,2,16)

    The arithmetic mean is (2+2+16)/3=20/3=6.66666

    The geometric mean is (2*2*16)^(1/3)=64^(1/3)=4

    They've used the geometric mean precicely because it doesn't skew the entire result if one test improves greatly.

    --
    Quidquid Latine dictum sit, altum videtur (anything said in Latin sounds important)
  109. It's GNU/Linux, not just Linux by 3247 · · Score: 2
    Today, the real dynamic and successful projects are mostly non-GNU: KDE, Apache, Linux, Wine, etc.


    Well, although the Linux kernel is not a GNU project, most of the userland programmes that make up the OS are. Without GNU, Linux would just be useless. (This is also why it should really be called GNU/Linux.)
    --
    Claus
  110. Re:Take over? I think not... by markmoss · · Score: 2

    The article itself explains that a lot of the optimization is agressive translation of loops into operations on vectors, usng the SIMD (MMX, SSE, SSE2, etc.) opcodes

    This sounds like scientific/engineering computations, and maybe 3D graphics computations in games. Anyone know if the Intel compiler does speed up graphics where you notice?

    Yes I'd like a speed-up in Spice simulations of electronic circuits, but I don't spend as much time on that in a year as I spend just waiting for Windoze reboots... AFAIK, the only code in OS's or Office suites that could be vectorized to advantage is the graphics processing, and in most things I use at work the graphics processing is already fast enough to be imperceptible.

  111. Re:Kernel compilation by Ayende+Rahien · · Score: 2

    As far as I'm aware, Linux Kernel isn't portable outside of GCC.
    It uses too many gcc-spesific extentions.

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?
  112. Reality check. Speed isn't everything by Kaz+Kylheku · · Score: 2

    It's hardly news that GCC is beat on benchmarks by this compiler or that. When has this not been the case?

    When you see claims like that being made, try to think of factors that were not included in the analysis:

    - architecture support. Does the benchmarked compiler have back ends for every architecture that GCC supports?

    - diagnostics: does it diagnose code as well?

    - conformance: how well does it comply to ISO C
    and C++? Does it have a standard library, or at least integrate with one?

    - correctness: can it be trusted to generate
    correct code, even when aggressively optimizing?
    Are some of the benchmark results depending on a fluke, such as unwarranted assumptions about object aliasing which just happen to be true?

    - extensions: does it provide a consistent set of extensions across all the architectures it supports?

    A project like the Linux kernel supports many architectures, and also needs certain extension from the compiler. Some of the extensions are darn useful, like the GCC inline assembly syntax which can allocate registers for you, and tightly weave your machine sequence into surrounding code. You wouldn't want the kernel to require a completely different compiler for each architecture.

    - do any of the optimizations affect binary compatibility among modules (calling sequences, object layouts).

    - how many language front ends does the competing compiler have? Is it C or C++ only, or are other languages supported?

    - Is the source code open? Can anyone who is willing to invest the time and energly retarget the compiler?

    - How well does its generated code run on older chip family members, like the Pentium, 486 or 386? That could be important for some embedded work.

    - Can it sacrifice speed and optimize for size?

    There is no way that another compiler can replace GCC all that easily. Think about what it takes to compile every component of a GNU/Linux system: the kernel, libraries, and tons of programs. Even with support for all of GCC's extensions, there is the matter of confidence.

  113. Great compiler by be-fan · · Score: 2

    I'm using icc now, and I must say its a great compiler. It performs really well, even for non-fpu intensive tasks. For example, in a test case I tried to find out the speed of page coalescing algorithm. Compiled with icc, the benchmark ran 30% faster under icc than under gcc. That's a significant difference. In addition to performance, the compiler has a lot of other great features. Its error messages still edge out gcc's in my opinion (which is the real reason I like it, not really the performance) and its got good C++ compatibility. It has gcc-style inline asm support, and is substantially compatible with gcc. There are a couple of problems with it, however. Not all the command-line options supported by gcc are supported in icc. Normally, this isn't an issue, but in some cases the additional control might be nice. I'm a little worried about its quality, however. While the compiler itself hasn't bugged out on me yet, the IPO support (intraprocedural optimization, basically optimization between multiple object files) sometimes fails in weird cases (in my toy OS kernel with C++ objects with destructors created on the stack). Also, the lack of documentation about its exception handling runtime (which has to be rewritten in order to use C++ exceptions in a kernel) is annoying.

    --
    A deep unwavering belief is a sure sign you're missing something...
  114. Re:Its output is not GPL compatible by be-fan · · Score: 2

    The reason you can't compile Linux with icc isn't licensing, but actual compatibility. icc doesn't support many non-standard gcc extensions that the Linux kernel uses.

    --
    A deep unwavering belief is a sure sign you're missing something...
  115. Other icc vc gcc benchmark here by jelle · · Score: 2

    (btw s/stip/strip/ of course)

    here is another benchmark icc version 5.0.1 with gcc 3.0.1. Note the difference is a lot smaller, except for the whetstone, which show interesting results (read the accompanying text).

    Now, openmag people, see this site and how it documents the compiler options used, and how it makes the benchmark _source_ available for download. Read it and learn.

    These benchmarks are done by Scott Roberts, who recently posted this to a gcc mailing list.

    --
    --- Hindsight is 20/20, but walking backwards is not the answer.
  116. 20 year old instructions by heroine · · Score: 2

    GCC still only generates mostly 8086 instructions from 20 years ago and only a small number of 386 instructions. Most of the optimization in the last 10 years was reordering for pipelined architectures, which doesn't matter anymore now that the hardware does most of the reordering. At least the Pentium III supports 100 instructions not generated by GCC.

  117. Re:PGCC Compiler Claims Same Performance Improveme by TheLink · · Score: 2

    P4 is very unlike the PPro architecture (the PII and PIII are very similar to the PPro with a bit better 16 bit app handling).

    So I doubt the optimisations will work as well for the P4. Might even be worse.

    --
  118. Re:Take over? I think not... by cduffy · · Score: 2

    And my company cares about having a compiler that we can port to new platforms without buying expensive licenses to do so. There are many reasons to care about open source without being a zealot.