Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling grappa with icpc #254

Open
alexfrolov opened this issue Dec 16, 2015 · 5 comments
Open

Compiling grappa with icpc #254

alexfrolov opened this issue Dec 16, 2015 · 5 comments

Comments

@alexfrolov
Copy link
Contributor

Hi, guys!
I want to have some experiments with Grappa. I'm trying to build grappa with icpc from composer_xe_2015.5.223 and it doesnt work.

...

/mnt/lustre/home/frolo/grappa.master/system/common.hpp(56): error: namespace "std" has no member "unique_ptr"
  std::unique_ptr<T> make_unique(Args&&... args) {
       ^

In file included from /mnt/lustre/home/frolo/grappa.master/system/Aggregator.hpp(53),
                 from /mnt/lustre/home/frolo/grappa.master/system/Aggregator.cpp(37):
/mnt/lustre/home/frolo/grappa.master/system/common.hpp(61): warning #12: parsing restarts here after previous syntax error
  using std::nullptr_t;
                      ^

In file included from /mnt/lustre/home/frolo/grappa.master/system/Aggregator.hpp(55),
                 from /mnt/lustre/home/frolo/grappa.master/system/Aggregator.cpp(37):
/mnt/lustre/home/frolo/grappa.master/system/Communicator.hpp(130): error: qualified name is not allowed
    std::unique_ptr< Locale[] > locale_of_core_;
    ^
...

It seems that Intel C++ compiler does not fully support C++11, which is strange. Is Grappa compatible with Intel C++ compilers?

Best,
Alex

p.s. It's good to have an opportunity to play with Grappa again :-)

@bholt
Copy link
Member

bholt commented Dec 16, 2015

Are you sure it's not the standard library you're using that's out of date? Try compiling something that uses C++11 features but doesn't require the new stdlib, like a lambda. It looks to me like Intel's compiler just uses whatever stdlib it finds on your system, so it's probably picking up an out-of-date one.

@nelsonje
Copy link
Member

Welcome back!

I'm afraid we only support GCC and LLVM/Clang right now. Part of the reason is to avoid other compilers' different interpretations of the C++11 spec, and part of it is that we use some GCC-specific directives in the code. I did try a couple hacks to get Grappa to compile with icpc earlier this year, but the binary I built immediately crashed in the threading layer for reasons that were unclear, and so I never committed the changes.

I'm sure the problems can all be fixed, but it will probably take some work.

The errors you're seeing do seem a little odd, and not like the errors I saw previously. Perhaps some flags we're passing to the compiler are confusing it?

@alexfrolov
Copy link
Contributor Author

It seems that unique_ptr is still not supported by intel c++ compiler. Okay, Intel.

@jeffhammond
Copy link

@nelsonje @alexfrolov Can either of you try Intel 16? They've been out for a while now I think.

@nelsonje If you do not have access to Intel 16, write me an email and I'll give you a license for your troubles, assuming you're willing to revisit this.

@nelsonje What GCC-specific directives are you using? Are they essential or can we try to find either Intel or ISO equivalents?

@jeffhammond
Copy link

Update: I have no problem compiler Grappa with Intel 16, but most of the tests fail (#255).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants