Skip to content

Reply To: Parallelization usig MPI

Due to recent bot attacks we have changed the sign-up process. If you want to participate in our forum, first register on this website and then send a message via our contact form.

Forums OpenLB General Topics Parallelization usig MPI Reply To: Parallelization usig MPI

#10715
arjun_raf
Participant

@Adrian My apologies. I missed that step. I realized it only after trying to recreate it in another cluster. But I have a follow-up question as well. The cluster that I want to run the simulation has Intel Icelake processors and I have changed the CXX flag in config.mk to “mpicxx”.

I loaded the modules: 1) intel/2023.2.1 2) intelmpi/2021.10.0 , and on making it, gave me an error:
g++: error: unrecognized command line option ‘-ipo’
g++: error: unrecognized command line option ‘-axMIC-AVX512,CORE-AVX2’
g++: error: unrecognized command line option ‘-std=c++20’; did you mean ‘-std=c++2a’?

So I changed the CXX flag to mpiicpc and CC flag to mpiicc. It also returns an error when building the config.mk
Error:


src/utilities/omath.h(1613): error: namespace "std" has no member "integral"
  template <std::integral T>
                 ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/omath.h(1614): error: expected a ")"
  any_platform bool closeToZero(T x)
                                  ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/omath.h(1615): error: expected a ";"
  {
  ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(64): error: incomplete type is not allowed
  class ADf final : public AD {
                           ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(74): error: Vector is not a template
    Vector<T,DIM> _d = ( T( 0 ) );
    ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(81): error: Vector is not a template
    inline constexpr ADf(const T& v, const Vector<T,DIM>& d);
                                           ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(88): error: Vector is not a template
    inline constexpr Vector<T,DIM>& d();
                     ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(140): error: Vector is not a template
  inline constexpr ADf<T,DIM>::ADf(const T& v, const Vector<T,DIM>& d): _v(v), _d(d)
                                                     ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(264): error: Vector is not a template
  inline constexpr Vector<T,DIM>& ADf<T,DIM>::d()
                   ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(264): error: template argument list must match the parameter list
  inline constexpr Vector<T,DIM>& ADf<T,DIM>::d()
                                  ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1040): error: qualified name is not allowed
  inline constexpr ADf<T,DIM> max (const olb::BaseType<ADf<T,DIM>>& a, const ADf<T,DIM>& b)
                                         ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1040): error: expected a ")"
  inline constexpr ADf<T,DIM> max (const olb::BaseType<ADf<T,DIM>>& a, const ADf<T,DIM>& b)
                                                      ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1048): error: qualified name is not allowed
  inline constexpr ADf<T,DIM> max(const ADf<T,DIM>& a,const olb::BaseType<ADf<T,DIM>>& b)
                                                            ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1048): error: expected a ")"
  inline constexpr ADf<T,DIM> max(const ADf<T,DIM>& a,const olb::BaseType<ADf<T,DIM>>& b)
                                                                         ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1063): error: qualified name is not allowed
  inline constexpr ADf<T,DIM> min (const olb::BaseType<ADf<T,DIM>>& a, const ADf<T,DIM>& b)
                                         ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1063): error: expected a ")"
  inline constexpr ADf<T,DIM> min (const olb::BaseType<ADf<T,DIM>>& a, const ADf<T,DIM>& b)
                                                      ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1071): error: qualified name is not allowed
  inline constexpr ADf<T,DIM> min(const ADf<T,DIM>& a,const olb::BaseType<ADf<T,DIM>>& b)
                                                            ^

In file included from src/communication/mpiManager.h(39),
                 from src/communication/mpiManager.cpp(21):
src/utilities/aDiff.h(1071): error: expected a ")"
  inline constexpr ADf<T,DIM> min(const ADf<T,DIM>& a,const olb::BaseType<ADf<T,DIM>>& b)
                                                                         ^

In file included from src/communication/mpiManager.cpp(21):
src/communication/mpiManager.h(218): error: Vector is not a template
    void bCast(Vector<T,DIM>& sendData, int root = 0, MPI_Comm comm = MPI_COMM_WORLD) {
               ^

src/communication/mpiManager.cpp(1805): error: expected a "}"

src/communication/mpiManager.cpp(1805): error: expected a "}"

compilation aborted for src/communication/mpiManager.cpp (code 2)
make: *** [Makefile:59: src/communication/mpiManager.o] Error 2

Is it the issue with the compilers that I am using?