Announcement

Collapse
No announcement yet.

Why FreeBSD Doesn't Aim For OpenMP Support Out-Of-The-Box

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

  • Why FreeBSD Doesn't Aim For OpenMP Support Out-Of-The-Box

    Phoronix: Why FreeBSD Doesn't Aim For OpenMP Support Out-Of-The-Box

    Seen as silly to come, the stock compiler of FreeBSD doesn't (at least not yet) ship with OpenMP support enabled by default...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    They should remove Libre Office too, as no developper use it as an editor to code C++.

    Comment


    • #3
      I had a lot of fights with software that uses libomp. You just don't want to do that if you are on a webserver. We were really surprised at how slow everything got when someone was resizing some jpgs with imagemagick (imagemagick is another thing you don't want to use on a webserver, better use graphicsmagick).
      So I don't think its insane to not have it enabled by default.
      Or if using that library, make sure it can be globally switched off.

      Comment


      • #4
        Michael, tbh your benchmark "methodology" has long been questioned and a subject of ridicule in the BSD community. While not a BSD user, I personally find it laughable to the point that I no longer bother even following links to your benchmark comparisons. I find them mostly useless, and the discussions regarding them range from annoyingly uninformed to an outright trollfest.

        Comment


        • #5
          What I neglect to account for, Michael, is that while your benchmark and comparison methodologies are flawed, they probably attract tons of clicks, which I've come to the conclusion is their main purpose as opposed to actually providing meaningful information. Looking from this perspective I guess I understand the apparent lack of any refinement and enhancements to them -- they are just doing perfectly what they're meant to do -- bait clicks.

          Comment


          • #6
            Originally posted by Ardje View Post
            I had a lot of fights with software that uses libomp. You just don't want to do that if you are on a webserver. We were really surprised at how slow everything got when someone was resizing some jpgs with imagemagick (imagemagick is another thing you don't want to use on a webserver, better use graphicsmagick).
            So I don't think its insane to not have it enabled by default.
            Or if using that library, make sure it can be globally switched off.
            That sound that is maybe clang OpenMP support that is glitchy because with GCC i use OpenMP without any sort of problem and i don't use it by the book. I mean i use for parallel start code global Async Threadpools / global Affinity set Async Threadpools with C++11/14 which are awesome for time sensitive operations(when start a bunch of thread everytime is too expensive) and i use OpenMP 4 for inner loop parallelism on serial operations big enough to justify the thread creation cost(OpenMP is fantastic and easy to use here).

            This approach works wonders for me on X86_64 and ARM systems as well, especially when cache coherency is important with inner loop datasets. In fact OpenMP even behave well on inner loops called from a thread inside the threadpools(i'm guessing GCC inner black magic is at work here).

            It is true tho, i've never tried Clang at this level and my code basically fallback to serial outside ICC/GCC compilers, so maybe this is old news for everybody but me.

            About imagemagick, well in Linux i have 0 issues with it and in fact when used with PHP is amazing for websites(i upload to my server full HD images and imagick do realtime scaling with filters depending on the device and so far the performance is not noticeable for me compared to other solutions) but i guess i can try graphic magic and see since it look pretty well done too(have to check PHP side of things tho).

            Comment


            • #7
              libomp not libgomp, yeah my bad is a clang issue probably

              Comment


              • #8
                Originally posted by g1618058 View Post
                Michael, tbh your benchmark "methodology" has long been questioned and a subject of ridicule in the BSD community. While not a BSD user, I personally find it laughable to the point that I no longer bother even following links to your benchmark comparisons. I find them mostly useless, and the discussions regarding them range from annoyingly uninformed to an outright trollfest.
                Yeah I have to completely agree here, it's very rare that any of the benchmarks done on this site are of any real use because of what they are comparing against. 98% of the time I do bother looking at them I just get annoyed that I wasted 5 mins of my life for nothing (again), often leaving out crucial tests with some bullshit reason (ie my only power measurement device is jerking off on something else right now). Then don't post the damn article because it's not finished. Or get a better power measurement device (Ubiquiti mFI pro 8 has 8 slots that can be monitored with ethernet/wifi)

                Do it right the first time or don't even bother at all.

                Comment


                • #9
                  Beginning with binutils-2.27 is the option "-z relro" enabled by default for all Linux distributions. No idea what this means for FreeBSD...

                  The option marks the relocation tables as read-only, making these a bit saver. This however has got a side effect. All address bindings need to be resolved at application start. Only then can these also be set to read-only. This means that lazy binding is no longer possible (aka "just in time" or "on demand" binding of functions) and application starts can see a small delay (but with a possible performance improvement for when an application stays in memory long enough). See also "-z now" versus "-z lazy".

                  Comment


                  • #10
                    Well, I guess FreeBSD doesn't run on multi-core systems then. Seems rather stupid to waste 50-96% of the performance potential since your programming paradigm was invented in the 1970s. The basic work sharing constructs in OpenMP are already years old. I already implemented some programming assignments in school some 10 years ago with OpenMP 2.0.

                    Comment

                    Working...
                    X