Tuesday 24 June 2014

A quick note on compilers

crayc++ and icpc vs g++

I was just on ARCHER again this afternoon, and I thought I’d
try recompiling dolfin with the Intel or Cray compilers.
Unfortunately, neither of them are very c++11 compliant.
So, for icpc, lots of complaints about std::unique_ptretc.

rc/dolfin-1.4.0/dolfin/adaptivity/ErrorControl.cpp(479): error: namespace "std" has no member "unique_ptr"
      std::unique_ptr<DirichletBC> e_bc;
           ^

Well, this has now been fixed in icpc 14.0.2, apparently, so I’ll just have to
wait for that to appear on ARCHER, I guess. It is already on Darwin, so we can test Intel there…

The situation with crayc++ is considerably further behind the curve…

CC-135 crayc++: ERROR File = 
rc/dolfin-1.4.0/dolfin/common/NoDeleter.h, Line = 42
  The namespace "std" has no member "shared_ptr".

    std::shared_ptr<T> reference_to_no_delete_pointer(T& r)
         ^

Someone from Cray once told me not to bother with crayc++,
it is always playing catch-up…

Written with StackEdit.

2 comments:

  1. I had the same issue with intel 13 and gcc4.3. I asked to the sysadmin support for intel 14 but still waiting. See here https://bitbucket.org/fenics-project/dolfin/issue/229/test-c-11-builds.

    With gcc-4.6 I hit on this bug https://lists.debian.org/debian-gcc/2011/07/msg00055.html

    C++11 can be nice for programmers but very annoying for installers on HPC platforms, where one cannot select the dolfin favorite compiler!

    ReplyDelete
    Replies
    1. If you get Intel 14, you need to have version 14.0.2 or later.
      14.0.1 is still not quite fully c++11 compliant.

      Delete