Results 1 to 8 of 8

Thread: Intel Cilk Plus Support Continues For GCC

  1. #1
    Join Date
    Jan 2007
    Posts
    14,327

    Default Intel Cilk Plus Support Continues For GCC

    Phoronix: Intel Cilk Plus Support Continues For GCC

    As some more positive news for the GCC compiler after writing how NVIDIA and Mentor Graphics could harm the open-source compiler, Intel engineers are continuing to work on improving the Cilk Plus implementation...

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

  2. #2
    Join Date
    Oct 2013
    Posts
    187

    Default

    It's really hard to choose between GCC and Clang with latest Intel OpenMP runtime patches for Clang

  3. #3
    Join Date
    Nov 2012
    Posts
    595

    Default

    Quote Originally Posted by siavashserver View Post
    It's really hard to choose between GCC and Clang with latest Intel OpenMP runtime patches for Clang
    No, not really. If someone cares about freedom he chooses GPL projects. Furthermore, GCC proven to be faster than Clang and it's much more mature. There's a need by the FLOSS community to have GPL GCC and having Clang is nothing, but nice option.

  4. #4
    Join Date
    Feb 2008
    Location
    Linuxland
    Posts
    4,988

    Default

    It's hard to find a third-party unbiased comparison of Cilk vs OpenMP. Cilk has FUD, then Oracle counters with theirs.

    I'm only familiar with OpenMP, and so far I don't see any advantage in Cilk over it. Still I'd like to read a thorough comparison.

  5. #5
    Join Date
    Oct 2013
    Posts
    187

    Default

    Quote Originally Posted by Pawlerson View Post
    No, not really. If someone cares about freedom he chooses GPL projects. Furthermore, GCC proven to be faster than Clang and it's much more mature. There's a need by the FLOSS community to have GPL GCC and having Clang is nothing, but nice option.
    I personally don't care about which license the compiler I'm going to use, is using. I would go with whatever is provided as default compiler on target platform since both GCC and Clang are pretty close regards to the (single threaded) generated code speed.


    I prefer to release my code under zlib license or one of Creative Commons license variants in case of artworks. I tend to avoid using GPL licensed and similar libraries like cancer in my code and believe that users should have the freedom to modify the code, be able to release it under whatever license and contribute back if they like.


    Quote Originally Posted by curaga View Post
    It's hard to find a third-party unbiased comparison of Cilk vs OpenMP. Cilk has FUD, then Oracle counters with theirs.

    I'm only familiar with OpenMP, and so far I don't see any advantage in Cilk over it. Still I'd like to read a thorough comparison.
    Nice read: http://www.cilkplus.org/faq/24

    Quote Originally Posted by Cilk Plus FAQ
    Should I expect Intel Cilk Plus to outperform TBB, OpenMP and MPI?

    Intel Cilk Plus offers a competitive alternative for parallel programming that is far easier to use than MPI. It is intended to complement TBB and OpenMP, enabling programmers to parallelize applications that may be too complex or cumbersome to fit into one of these frameworks. Cilk Plus is not intended to be a replacement for these platforms, however. In general, one should not expect to see performance improvements by convert an existing parallel code in TBB or OpenMP to Cilk Plus. TBB, OpenMP and MPI continue to be good choices for writing High Performance Computing applications.

    Intel Cilk Plus is designed to be a unique, general-purpose solution which provides good scalability for multi-core programs across a variety of applications and machines, and which allows programmers to exploit both data and task parallelism in their program in a straightforward, maintainable manner. The tradeoff is that Cilk Plus may not be as finely tuned for specific programming patterns or environments as TBB or OpenMP.

    In general, each of the parallel programming frameworks has their own strengths and weaknesses. Which framework offers the best performance depends on both on the kind of application and how much the code has been tuned for a particular platform. One should not expect na´ve conversions of tuned code from one platform to another to necessarily be comparable in performance, since each platform has its own unique tuning methodology and preferred programming style.

  6. #6
    Join Date
    Nov 2012
    Posts
    595

    Default

    Quote Originally Posted by siavashserver View Post
    I tend to avoid using GPL licensed and similar libraries like cancer in my code and believe that users should have the freedom to modify the code, be able to release it under whatever license and contribute back if they like.
    The cancer is very bad description of GPL, because it doesn't hurt anyone. The guardian of freedom is more close to reality. Your approach is very naive, but you have a right to use whatever license you want, because it's your code. However, you're not doing any favor to users of your code and you're not doing it to you either. You're doing a favor to misers and hustlers who want to take somebody's code and close it from others. It's not about freedom, it's about spongers. That's why bsd and similar licenses are very bad.

  7. #7
    Join Date
    Feb 2008
    Location
    Linuxland
    Posts
    4,988

    Default

    That link didn't really answer anything, further, it's as far from third-party as possible

  8. #8
    Join Date
    Oct 2013
    Posts
    187

    Default

    Quote Originally Posted by curaga View Post
    That link didn't really answer anything, further, it's as far from third-party as possible
    I've used both Intel TBB and OpenMP, but not professionally. Here is my observation after using both of them:

    • You can easily integrate both of them into your application
    • Both of them are kinda close regards to the features (since OpenMP 3+)
    • You can run into false memory sharing issues with OpenMP easier than Intel TBB, if not careful
    • You can not use Intel TBB directly with C language unlike OpenMP
    • Programs using OpenMP can be happily compiled into serial version in case of OpenMP support absence in compiler
    • Programs using OpenMP can be easily compiled into serial version for debugging purpose without raising a hell of #ifdefs
    • Intel TBB is a library and you can expect same set of feature support everywhere
    • OpenMP is a compiler extension, which is its both weakness and strength. It does have higher optimization opportunity, but you can't expect consistent performance because of different implementations. It can easily get crippled by proprietary compilers to promote their own solutions, and not keeping up with latest standards. Right now MSVC compiler supports OMP2, Intel and Clang OMP3.1 and GCC has in progress OMP4



    Feel free to Google for reasons why and when would someone choose one of these over each other

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •