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

NERSC Perlmutter Compilation Error (pre-#4986) #5010

Closed
jwestern opened this issue Jun 23, 2024 · 3 comments · Fixed by #5012
Closed

NERSC Perlmutter Compilation Error (pre-#4986) #5010

jwestern opened this issue Jun 23, 2024 · 3 comments · Fixed by #5012
Labels
duplicate This issue or pull request already exists

Comments

@jwestern
Copy link
Contributor

jwestern commented Jun 23, 2024

I am experiencing the same compilation error on Perlmutter as in issue #4996, using WarpX versions that pre-date the commit for #4986; Thus, the issue appears unrelated to this commit.

The oldest release I've attempted to use is 24.04, from April 29, 2024. I am doing a GPU build.

Here is the last stretch of output from the compilation attempt, which contains the same error messages as found in issue #4996, namely,

error: no instance of constructor "blas::Queue::Queue" matches the argument list

and about HankelTransform.cpp :

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/ablastr/particles/NodalFieldGather.H(122): warning #20014-D: calling a __host__ function from a __host__ __device__ function is not allowed
      ablastr::utils::TextMsg::Abort( "/global/homes/j/jwestern/src/warpx/Source/ablastr/particles/NodalFieldGather.H", 122 , "Error: interp_field not yet implemented in 1D");
                                                                                                                        ^

/usr/include/c++/12/bits/unique_ptr.h(1065): error: no instance of constructor "blas::Queue::Queue" matches the argument list
            argument types are: (const int, int)
      { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                      ^
          detected during instantiation of "std::__detail::__unique_ptr_t<_Tp> std::make_unique<_Tp,_Args...>(_Args &&...) [with _Tp=blas::Queue, _Args=<const int &, int>]" at line 39 of /global/homes/j/jwestern/src/warpx/Source/FieldSolver/SpectralSolver/SpectralHankelTransform/HankelTransform.cpp

1 error detected in the compilation of "/global/homes/j/jwestern/src/warpx/Source/FieldSolver/SpectralSolver/SpectralHankelTransform/HankelTransform.cpp".
gmake[3]: *** [CMakeFiles/lib_rz.dir/build.make:1307: CMakeFiles/lib_rz.dir/Source/FieldSolver/SpectralSolver/SpectralHankelTransform/HankelTransform.cpp.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/Makefile2:1623: CMakeFiles/lib_rz.dir/all] Error 2
gmake[2]: *** Waiting for unfinished jobs....
/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(704): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(828): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(908): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(927): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(2524): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(704): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(828): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(908): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(927): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(2524): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/LaserParticleContainer.cpp(548): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/LaserParticleContainer.cpp(548): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/ParticleBoundaryBuffer.cpp(120): warning #550-D: variable "nodal" was set but never used
          int nodal;
              ^
          detected during:
            instantiation of "Index amrex::filterAndTransformParticles(DstTile &, const SrcTile &, Index *, const F &, Index, Index) noexcept [with DstTile=amrex::ParticleTile<amrex::SoAParticle<6, 0>, 6, 0, amrex::PinnedArenaAllocator>, SrcTile=amrex::ParticleTile<amrex::SoAParticle<6, 0>, 6, 0, amrex::DefaultAllocator>, Index=int, F=FindEmbeddedBoundaryIntersection, foo=0]" at line 645 of /global/u2/j/jwestern/src/warpx/build_pm_gpu_py/_deps/fetchedamrex-src/Src/Particle/AMReX_ParticleTransformation.H
            instantiation of "Index amrex::filterAndTransformParticles(DstTile &, const SrcTile &, const Pred &, F &&, Index, Index) noexcept [with DstTile=amrex::ParticleTile<amrex::SoAParticle<6, 0>, 6, 0, amrex::PinnedArenaAllocator>, SrcTile=amrex::ParticleTile<amrex::SoAParticle<6, 0>, 6, 0, amrex::DefaultAllocator>, Pred=lambda [](const SrcData &, int)->int, F=FindEmbeddedBoundaryIntersection, Index=int, nvccfoo=0]" at line 529

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(704): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(828): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(908): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(927): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(2524): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(704): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(828): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(908): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(927): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
              const amrex::Vector<amrex::Vector<int>> attr_int;
                                                      ^

/global/homes/j/jwestern/src/warpx/Source/Particles/PhysicalParticleContainer.cpp(2524): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

/global/homes/j/jwestern/src/warpx/Source/Particles/LaserParticleContainer.cpp(548): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/LaserParticleContainer.cpp(548): warning #811-D: const variable "attr_int" requires an initializer -- class "amrex::Vector<amrex::Vector<int, std::allocator<int>>, std::allocator<amrex::Vector<int, std::allocator<int>>>>" has no user-provided default constructor
      const amrex::Vector<amrex::Vector<int>> attr_int;
                                              ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

/global/homes/j/jwestern/src/warpx/Source/Particles/ParticleBoundaryBuffer.cpp(120): warning #550-D: variable "nodal" was set but never used
          int nodal;
              ^
          detected during:
            instantiation of "Index amrex::filterAndTransformParticles(DstTile &, const SrcTile &, Index *, const F &, Index, Index) noexcept [with DstTile=amrex::ParticleTile<amrex::SoAParticle<7, 0>, 7, 0, amrex::PinnedArenaAllocator>, SrcTile=amrex::ParticleTile<amrex::SoAParticle<7, 0>, 7, 0, amrex::DefaultAllocator>, Index=int, F=FindEmbeddedBoundaryIntersection, foo=0]" at line 645 of /global/u2/j/jwestern/src/warpx/build_pm_gpu_py/_deps/fetchedamrex-src/Src/Particle/AMReX_ParticleTransformation.H
            instantiation of "Index amrex::filterAndTransformParticles(DstTile &, const SrcTile &, const Pred &, F &&, Index, Index) noexcept [with DstTile=amrex::ParticleTile<amrex::SoAParticle<7, 0>, 7, 0, amrex::PinnedArenaAllocator>, SrcTile=amrex::ParticleTile<amrex::SoAParticle<7, 0>, 7, 0, amrex::DefaultAllocator>, Pred=lambda [](const SrcData &, int)->int, F=FindEmbeddedBoundaryIntersection, Index=int, nvccfoo=0]" at line 529

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

[ 60%] Built target lib_1d
[ 72%] Built target lib_2d
[ 84%] Built target lib_3d
gmake[1]: *** [CMakeFiles/Makefile2:1882: CMakeFiles/pip_install.dir/rule] Error 2
gmake: *** [Makefile:403: pip_install] Error 2
@jwestern jwestern changed the title NERSC Perlmutter Compilation Error (pre-[#4986](https://github.com/ECP-WarpX/WarpX/pull/4986) ) NERSC Perlmutter Compilation Error (pre-#4986) Jun 24, 2024
@ax3l ax3l added the duplicate This issue or pull request already exists label Jun 24, 2024
@ax3l
Copy link
Member

ax3l commented Jun 24, 2024

Hi @jwestern,

Thanks for the report. For duplicates, please comment or 👍 on the existing issue you found to simplify book keeping for us :)

I am closing in favor of #4996.
A fix is coming via #5012

@jwestern
Copy link
Contributor Author

Understood -- sorry about that! And thank you!

@ax3l
Copy link
Member

ax3l commented Jun 24, 2024

No worries, fix is now in! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants