Announcement

Collapse
No announcement yet.

AMD Shanghai Opteron: Linux vs. OpenSolaris Benchmarks

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    I'm a former Solaris admin (of Solaris 10 u1, released Jan 2006. I've had accounts on Sol 5-9 machines, too, but I've never touched openSolaris and don't really know much about it. People who replied to this have pointed out that some important things have changed with OpenSolaris. I stand by everything I said before, just be aware that it doesn't all apply to OpenSolaris, and that people with mindsets other than mine probably like some of the things I dislike. I editted this first paragraph to put this big disclaimer up front, since I don't want to slag things that don't deserve it.)

    I was never impressed by the ancient 32bit free software they ship. If you wanted anything to run fast, you compiled it with Sun's Studio compiler (which is now free but not open source/Free software, but used to cost money).

    So yeah, crappy old gcc, probably 32bit only, no wonder it got killed. It probably wasn't doing much multithreading. Compiling stuff on Solaris is a big pain in general, because you have to find all the right libraries to link in. A bunch of stuff that's just in the standard libc is in other libs on Solaris (e.g. -lnsl or something.) My guess is that the Phoronix test suite didn't get the high performance versions of any openMP libraries.

    Besides all that, gcc4 can vectorize for SSE2, but gcc 3.4 couldn't. So maybe that's what helped LAME and oggenc, and some of the other benches to a lesser degree.

    x64 Solaris = 64bit kernel, and the same 32bit userspace they ship for 32bit x86 Solaris, with 64bit versions of a few key libraries available. (But _not_ of most libraries, so if you want to compile a 64bit binary of something, you often need to install your own 64bit versions of any libraries it wants, other than libc, libm, and maybe some numeric performance libs. IIRC, Solaris doesn't provide a 64bit libncurses even. And the sunfreeware libreadline and so on are all ancient. And 32bit only. Just like the blastwave.org packages, although they're at least more up to date.)


    Solaris is probably ok for a server that doesn't get any interactive command line use, so it doesn't matter that the Unix environment is crappy and old and not nice to use if you're used to recent GNU/Linux. It's patches and updates are totally designed around a "set it up and modify as little as possible" mindset. Which is the exact opposite of what I like and am used to, with Debian's and Ubuntu's stable releases where a security update isn't a patch, but a whole new version of a package you can install normally. And where you upgrade to new stable releases of the OS quite painlessly. I realize some of the reasons I don't like Solaris are just because I don't know it well, so I get annoyed with it when it's just different from what I'm used to, not that everything about it is intrinsically worse. However, I would totally not recommend it for interactive use if you care about things like having a non-ancient version of GNU sed. (Let alone not having to worry about all the crappy non-GNU unix utilities, and what order to put things in in your $PATH.)

    Installing Solaris updates tends to break other things esp. the N1 System Manager provisioning system, but also other stuff that depends on Java sometimes has hard-coded paths involving an exact version number of Java, so it breaks when you install Java updates. Again with my point about being good for setup and don't touch, opposite of Debian updates and proposed-updates being generally a good thing to install.

    If anyone feels inclined to defend Solaris, that's fine. I'm trying to be clear that the things I don't like about it are deal-breakers for me, but don't bother some people too much. My ideas of how I want a system to work revolve around something that updates easily to the latest stable version, which is why I use Debian and Ubuntu. My idea of what a package is is based on years of Debian experience, so that made me very unhappy with Solaris's apparently different concept.

    BTW, the Bork file encryption benchmark, which was the only one Solaris did well on (not counting the CPU-bound ones where all 3 basically tied, but where Solaris lost probably because it has more crap running in the background slowing it down.)... Anyway, Solaris probably did well on Bork because ZFS is pretty good. ext4 is good, too, compared to Intrepid's ext3. IIRC, previous articles have shown that Bork is mostly I/O limited on most machines. So that's what that bench tells us.
    Last edited by Peter_Cordes; 09 February 2009, 11:02 AM.

    Comment


    • #12
      Heh...

      Phoronix editors should know full-well that they're not comparing operating systems, but rather gcc 3.4.3 which is over 4 years old vs gcc 4.3. More to the point, if you want to compile software on OpenSolaris, you normally use Sun Studio 12 or a newer version of gcc (AFAIK, OpenSolaris will soon provide gcc 4.3). So how about you guys try to compile the packages you use in OpenSolaris with gcc 4.3 or even better with Sun Studio 12 which has the latest release in 10/2008 and is available from the official pkg.opensolaris.org,
      export CFLAGS=-fast
      export CXXFLAGS=-fast
      export CC=cc
      export CXX=CC
      which will optimize the binary for your processor (I don't think AMD Shanghai was out in 2004, eh ?). So don't expect gcc 3.4.3 to perform miracles for you...

      Originally posted by phoronix View Post
      Phoronix: AMD Shanghai Opteron: Linux vs. OpenSolaris Benchmarks

      In January we published a review of the AMD Shanghai Opteron CPUs on Linux when we looked at four of the Opteron 2384 models. The performance of these 45nm quad-core workstation/server processors were great when compared to the earlier AMD Barcelona processors on Ubuntu Linux, but how is their performance when running Sun's OpenSolaris operating system? Up for viewing today are dual AMD Shanghai benchmarks when running OpenSolaris 2008.11, Ubuntu 8.10, and a daily build of the forthcoming Ubuntu 9.04 release.

      http://www.phoronix.com/vr.php?view=13475

      Comment


      • #13
        llama, are you sure that your negative experience is still valid for OpenSolaris? I heard similar complaints regarding the older Solaris, but I also heard that OpenSolaris improved a lot in that direction.

        Comment


        • #14
          llama, you are referring to some really ancient Solaris I figure, Sun Studio Express has been free for a long time now, and is in the official opensolaris repository. GNU tools are now by default in the path, so gnu sed, ls, etc.. are used. And the updates (IPS based) are absolutely different from what Solaris had. It has come a long way since those times...

          Originally posted by llama View Post
          As a former Solaris admin, I was never impressed by the ancient 32bit free software they ship. If you wanted anything to run fast, you compiled it with Sun's workshop compiler, which I think is not available for free. (although it was included with the bundle of software we got with our Sun cluster).

          So yeah, crappy old gcc, probably 32bit only, no wonder it got killed. It probably wasn't doing much multithreading. Compiling stuff on Solaris is a big pain in general, because you have to find all the right libraries to link in. A bunch of stuff that's just in the standard libc is in other libs on Solaris (e.g. -lnsl or something.) My guess is that the Phoronix test suite didn't get the high performance versions of any openMP libraries.

          Besides all that, gcc4 can vectorize for SSE2, but gcc 3.4 couldn't. So maybe that's what helped LAME and oggenc, and some of the other benches to a lesser degree.

          x64 Solaris = 64bit kernel, and the same 32bit userspace they ship for 32bit x86 Solaris, with 64bit versions of a few key libraries available. (But _not_ of most libraries, so if you want to compile a 64bit binary of something, you often need to install your own 64bit versions of any libraries it wants, other than libc, libm, and maybe some numeric performance libs. IIRC, Solaris doesn't provide a 64bit libncurses even. And the sunfreeware libreadline and so on are all ancient. And 32bit only. Just like the blastwave.org packages, although they're at least more up to date.)


          Solaris is probably ok for a server that doesn't get any interactive command line use, so it doesn't matter that the Unix environment is crappy and old and not nice to use if you're used to recent GNU/Linux. It's patches and updates are totally designed around a "set it up and modify as little as possible" mindset. Which is the exact opposite of what I like and am used to, with Debian's and Ubuntu's stable releases where a security update isn't a patch, but a whole new version of a package you can install normally. And where you upgrade to new stable releases of the OS quite painlessly. I realize some of the reasons I don't like Solaris are just because I don't know it well, so I get annoyed with it when it's just different from what I'm used to, not that everything about it is intrinsically worse. However, I would totally not recommend it for interactive use if you care about things like having a non-ancient version of GNU sed. (Let alone not having to worry about all the crappy non-GNU unix utilities, and what order to put things in in your $PATH.)

          Installing Solaris updates tends to break other things esp. the N1 System Manager provisioning system, but also other stuff that depends on Java sometimes has hard-coded paths involving an exact version number of Java, so it breaks when you install Java updates. Again with my point about being good for setup and don't touch, opposite of Debian updates and proposed-updates being generally a good thing to install.

          If anyone feels inclined to defend Solaris, that's fine. I'm trying to be clear that the things I don't like about it are deal-breakers for me, but don't bother some people too much. My ideas of how I want a system to work revolve around something that updates easily to the latest stable version, which is why I use Debian and Ubuntu. My idea of what a package is is based on years of Debian experience, so that made me very unhappy with Solaris's apparently different concept.

          BTW, the Bork file encryption benchmark, which was the only one Solaris did well on (not counting the CPU-bound ones where all 3 basically tied, but where Solaris lost probably because it has more crap running in the background slowing it down.)... Anyway, Solaris probably did well on Bork because ZFS is pretty good. ext4 is good, too, compared to Intrepid's ext3. IIRC, previous articles have shown that Bork is mostly I/O limited on most machines. So that's what that bench tells us.

          Comment


          • #15
            Solaris is fine, but please benchmark it properly next time.

            What's really pity is that you have not benchmarked Ubuntu versus Solaris, but rather GCC 4.3.x versus GCC 4.2.x versus GCC 3.4.x. If you like to benchmark OSes, you will also need to do with the same compiler on all platforms.
            Otherwise I'm really pity of such linux users who have not tried any other OS and spread the board with messages like linux does have the best kernel and shame to Sun for developing OpenSolaris. Well, guys, really give OS a try. For me personally linux on bare-metal stopped existing till it delivers stable brtfs. Yes, ZFS is really a drug. Now, if I need Linux I run it inside VBox saving image to ZFS on top of Solaris :-)

            Comment


            • #16
              I be curious to see these tests carried out where SunCC was used instead of GCC. It's kinda unfair comparing a system using GCC4.2 and one using GCC3.x

              Likewise are the same results above seen when run on Intel platform. I know Intel and Sun have done a fair bit of optimisation for latest Xeon's etc.

              As for Drivers I installed OpenSolaris on my 2year old Dell laptop and when I logged in the first time it prompted me for the WPA key for my wireless AP right from the get go. I was quite impressed by this. I've subsequently switched to Dev released and I'm running B106 quite happily. In many ways IPS is quite similar to Apt/Yum though I think both of those are somewhat more usable - but hey thats what MAN pages are for.

              Been able to create ZFS filesystems with features such as CIFS turned on by default (and server joined to Active Directory domain) in one command sure beats the hell out of using Samba.

              Comment


              • #17
                What's the point of using the non-default compiler of an OS?

                Comment


                • #18
                  Originally posted by Vadi View Post
                  What's the point of using the non-default compiler of an OS?
                  To find out what's the culprit behind the difference. If the kernel or if the compiler itself.

                  Comment


                  • #19
                    Originally posted by Vadi View Post
                    What's the point of using the non-default compiler of an OS?
                    GCC isn't the default compiler in the Solaris world. This would be SunStudio (SunCC), which can be downloaded and istalled through IPS. Now I could be wrong here but I don't think GCC is included in the default install of 2008.11 and you have to install it from IPS (same as sunstudio)

                    Most people who are building software for Solaris/OpenSolaris will be using SunStudio after all it's better optimised for the OS etc. SunStudio is also available on Linux

                    I see that there in plans to integrate GCC 4.3 into opensolaris
                    http://opensolaris.org/jive/thread.j...86731&tstart=0

                    Comment


                    • #20
                      Originally posted by flice View Post
                      llama, are you sure that your negative experience is still valid for OpenSolaris?
                      No. I've only ever worked with Solaris 10 u1 (released Jan 2006) on a rack of dual-CPU dual-core Opterons. Yeah, I didn't realize that OpenSol was that different, so I needed to be more clear that I was talking about old Solaris. I'll go edit that in at the top of my post.

                      Originally posted by etacarine
                      llama, you are referring to some really ancient Solaris I figure
                      Yup.

                      Sun Studio Express has been free for a long time now, and is in the official opensolaris repository.
                      Ok, that's cool. I don't know if it was freely available in 2006, and didn't really look too hard, since I already had our copy of it. It's a pretty good compiler, although I did run into a lot more internal compiler errors compiling things with -fast than I ever did with gcc -O3.

                      [quote[ GNU tools are now by default in the path, so gnu sed, ls, etc.. are used. And the updates (IPS based) are absolutely different from what Solaris had[/quote]

                      And the GNU sed in question isn't 10 years old and missing the -i option (for editting a file in place)? That would be nice.

                      I'm very glad to hear OpenSolaris isn't like Solaris. Anything would be better than Sun's old update system. Thanks for clearing up my misconceptions re Solaris vs. OpenSolaris.

                      (Of course, if I still worked at my old job, I'd still have to deal with those machines that are still running crufty old Solaris 10, and still have no obvious way to upgrade to something better other than a re-install. Which is my whole objection to the setup-and-leave-it-until-the-hardware-is-obsolete style of old Solaris...)

                      Originally posted by Vadi
                      What's the point of using the non-default compiler of an OS?
                      The default compiler on Solaris is only there so you have something to use if you don't install their Studio compiler (which used to be commercial). So the point is to use the compiler that doesn't suck, and that Sun expects you to use if for compiling high-performance programs.

                      Apparently the default compiler on OpenSolaris is still gcc 3.4, since that's what the article said they used. Or maybe that's just gcc, and cc is the Studio compiler. (in which case, it's not exactly OpenSolaris's fault that the best compiler isn't gcc. It's the configure script that picks gcc instead of cc.) Maybe an OpenSolaris user could shed some light on the actual "default compiler" situation.

                      Comment

                      Working...
                      X