-
Notifications
You must be signed in to change notification settings - Fork 110
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
Comments
Has there been any progress on this bug? I tried with intel 18.0 beta and I am still seeing them. |
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. |
Do we know if a recent working combination of the Intel compilers and Elemental?
|
@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. |
@bvanessen Can you try Intel compilers 17 update 1 with elemental 0.86 version.? |
I believe that that version of Elemental is too old for what we are trying to do. I was reviewing my notes, and I am trying again, but I think that 18.0-beta may be working with 0.87.7. I am trying it again.
|
I was successful building Elemental 0.87.7 with icc-18.0-beta.
|
In theory, somebody should run 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. |
Do we know what the timeline for the 0.88 release. I am concerned that waiting until a new version of that will mean that we are still many months out from having icc being usable for a recent Elemental build. Overall, I believe that there will be approximately a year gap where icc doesn’t work on Elemental.
|
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. |
Just to clarify, at this point you do not intend to bring 0.88 to completion as a c++ library?
|
That is correct, but noyhing prevents anyone else from doing so. |
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. |
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. |
If there is a discussion about reworking the library, I would be very interested in seeing a core elemental library that handles the most basic data distributions and BLAS-1/2/3 functions and then building extended functionality on top of that.
|
What exists in rust as an MPI equivalent?
|
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. |
@bvanessen If all you want are BLAS-like primitives, you might look at https://github.com/solomonik/ctf. |
Obligatory reference to https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ 🤓 |
@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. |
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. |
What is the more interesting thing on the Horizon? :) |
Workaround for Intel compiler issue mentioned in #215
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
The text was updated successfully, but these errors were encountered: