[Dune-devel] [SOCIS 2014]: C++11 threads vs POSIX threads

Agnese, Marco m.agnese13 at imperial.ac.uk
Fri Jun 6 02:01:31 CEST 2014


Hi Christian,
to be honest I do not know which feature I will use. 

Clang 3.2 (Dec 2012, http://clang.llvm.org/cxx_status.html) seems to support almost everything.
ICC 13 (Sept 2012, https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler) and GCC 4.4(Apr 2009, https://gcc.gnu.org/gcc-4.4/cxx0x_status.html) have exactly the same, very limited, support.

For what I read the classes included in <future> are very high level with very low control on what is going on therefore I think they are almost useless for our purpose.
But all the others features may be useful. Perhaps the limited support is sufficient for our purpose.

If we need a full support for concurrency, a possible solution is to activate the usage of threads only with newer compilers (gcc 4.8, clang 3.3, icc no support yet). Indeed the threads support is just performance boost and it doesn't add any new functionality.  

Cheers,
Marco.
________________________________________
From: christi at wg20.mathe-macht-spass.de [christi at wg20.mathe-macht-spass.de] on behalf of Christian Engwer [christian.engwer at uni-muenster.de]
Sent: Thursday, June 05, 2014 8:51 PM
To: Agnese, Marco
Cc: dune-devel at dune-project.org
Subject: Re: [Dune-devel] [SOCIS 2014]: C++11 threads vs POSIX threads

Hi Marco,

> Sequence points       Yes
> Atomic operations GCC 4.4
> Strong Compare and Exchange GCC 4.5
> Bidirectional Fences GCC 4.8
> Memory model GCC 4.8
> Data-dependency ordering: atomics and memory model     GCC 4.4
> Propagating exceptions GCC 4.4
> Abandoning a process and at_quick_exit GCC 4.8
> Allow atomics use in signal handlers Yes
> Thread-local storage GCC 4.8
> Dynamic initialization and destruction with concurrency       GCC 4.3
>
> What do you think?

In general I'm in favour of new C++ features. We decided to be
compatible with g++ 4.4, Clang 3.2, ICC 13.something and newer
versions of these compilers. This means that like half of the features
are not available. This does not mean that you can't use them, but you
will have to prove a fallback.

Which features do you plan to use?

Ciao
Christian



More information about the Dune-devel mailing list