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

Elemental 0.87 release Intel 17.0.1 compilation error #215

Closed
hashmenow opened this issue Jan 6, 2017 · 22 comments
Closed

Elemental 0.87 release Intel 17.0.1 compilation error #215

hashmenow opened this issue Jan 6, 2017 · 22 comments
Assignees

Comments

@hashmenow
Copy link

hashmenow commented Jan 6, 2017

A fresh build of Elemental 0.87 (01/05/2017) failed to compile in Intel 17.0.1 due to incompatible declarations in DistMatrix, however the compilation went flawless in GCC 5.3.0.

[13%]Building CXX object CMakeFiles/El.dir/src/core/DistMatrix/Block/CIRC_CIRC.cpp.o
In file included from /home/mselvam/Elemental/version_source2/Elemental/src/core/DistMatrix/Block/CIRC_CIRC.cpp(15):
/home/mselvam/Elemental/version_source2/Elemental/src/core/DistMatrix/Block/./setup.hpp(168): error: declaration is incompatible with "El::DistMatrix<Ring, El::DistNS::CIRC, El::DistNS::CIRC, El::DistWrapNS::BLOCK>::diagType *El::DistMatrix<Ring, El::DistNS::CIRC, El::DistNS::CIRC, El::DistWrapNS::BLOCK>::ConstructDiagonal(const El::Grid &, int) const" (declared at line 68 of "/home/mselvam/Elemental/version_source2/Elemental/include/El/core/DistMatrix/Block/CIRC_CIRC.hpp")
BDM::ConstructDiagonal
^

compilation aborted for /home/mselvam/Elemental/version_source2/Elemental/src/core/DistMatrix/Block/CIRC_CIRC.cpp (code 2)
make[2]: *** [CMakeFiles/El.dir/src/core/DistMatrix/Block/CIRC_CIRC.cpp.o] Error 2

@bvanessen
Copy link

Has there been any progress on this bug? I tried with intel 18.0 beta and I am still seeing them.

@jeffhammond
Copy link
Member

I think I tested Intel 18 beta when it first appeared and saw it was still an issue. I have an open support ticket already and just added a link to your comment and requested an update to see if the compiler team has made any progress.

@bvanessen
Copy link

bvanessen commented Aug 9, 2017 via email

@jeffhammond
Copy link
Member

@bvanessen I recall @mukunthh was able to build the subset of Elemental required for their code. I also know that whatever version of Elemental is in the ICC test bucket passes, but that's not the latest. If you think you'll be okay with an older version of Elemental, I'll look up details.

@hashmenow
Copy link
Author

@bvanessen Can you try Intel compilers 17 update 1 with elemental 0.86 version.?

@bvanessen
Copy link

bvanessen commented Aug 9, 2017 via email

@bvanessen
Copy link

bvanessen commented Aug 9, 2017 via email

@jeffhammond
Copy link
Member

In theory, somebody should run git bisect to understand what post-0.87.7 commits broke the build. I will try to remember to do that another day.

Until there is another Elemental release, I don't want to ask the Intel compiler team to start working on a new version. It's ideal if they can focus on a release rather than an arbitrary git hash.

@bvanessen
Copy link

bvanessen commented Aug 10, 2017 via email

@poulson
Copy link
Member

poulson commented Aug 11, 2017

I can't speak for anyone else, but I don't plan to work on another Elemental C++ release and would prefer to restructure the project entirely (including switching to Rust). If someone else wants to step up and take the reigns for the current branch, they are welcome to do so.

@bvanessen
Copy link

bvanessen commented Aug 11, 2017 via email

@poulson
Copy link
Member

poulson commented Aug 11, 2017

That is correct, but noyhing prevents anyone else from doing so.

@jeffhammond
Copy link
Member

What are the advantages of Rust for Elemental? I have looked at Rust's principles, written a little bit of code in it, and discussed it's merits in HPC with others, but I fail to see how converting Elemental to it would be anything but a huge step backwards.

@poulson
Copy link
Member

poulson commented Aug 11, 2017

Rust has substantially better build system and distribution support (via Cargo) and its "traits" provide a more flexible alternative to concepts and classes.

But my desire to switch languages is a bit of a red herring: the library suffered immense growing pains and deserves a principled rewrite that, among other things: separates the MPI support into a downstream project, avoids depending on scientific abandonware, focuses more on multithreaded parallelism, and employs code reviews and style guides.

@bvanessen
Copy link

bvanessen commented Aug 11, 2017 via email

@rhl-
Copy link
Member

rhl- commented Aug 11, 2017 via email

@poulson
Copy link
Member

poulson commented Aug 11, 2017

Brian: I would argue the core library should not even contain MPI support. Or, at least, MPI should not be required to build the library and it should not limit the core API.

Ryan: There is a zero overhead C interface, so there is no hurdle.

@jeffhammond
Copy link
Member

@bvanessen If all you want are BLAS-like primitives, you might look at https://github.com/solomonik/ctf.

@jeffhammond
Copy link
Member

Obligatory reference to https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ 🤓

@jeffhammond
Copy link
Member

@poulson Why not tie up the loose ends and make 0.88 so there's a clean break before you go off and doing something else? What is actually required to make a release out of the current development version?

When I graduated, I left a lot of loose ends in NWChem and all I got for it was a 8 years of regret.

@poulson
Copy link
Member

poulson commented Aug 11, 2017

Anyone reading this is more than welcome to "wrap up the loose ends" and push out a release. The last release should be fine in the mean time.

I don't have the desire to work on the current C++ code anymore, but that shouldn't stop anyone else.

@perdavan
Copy link

What is the more interesting thing on the Horizon? :)

jeffhammond added a commit that referenced this issue Aug 18, 2017
Workaround for Intel compiler issue mentioned in #215
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

6 participants