sst-elements icon indicating copy to clipboard operation
sst-elements copied to clipboard

[Ember] SST-Elements Build failed with OTF-2

Open saichennaintel opened this issue 1 year ago • 0 comments

New Issue for sst-elements

1 - Detailed description of problem or enhancement Compilation Error while building SST-elements with OTF-2

2 - Describe how to reproduce Inside SST ELEMENTS directory (using SST 12.1.0) ./configure --prefix=$SST_ELEMENTS_HOME --with-sst-core=$SST_CORE_HOME --with-otf2=<path_to_otf2> ; make all

3 - What Operating system(s) and versions Ubuntu 22.04.2 LTS

4 - What version of external libraries (Boost, MPI) OpenMPI-4.0.5

I can see that SST-elements was able to find OTF2-library (image attached). Looking at the compilation error I'm assuming this is due to type casting void pointer to EmberOTF2Generator* . But the code looks fine.

Should I change the code from

EmberOTF2Generator* gen = (EmberOTF2Generator*) userData;

to

EmberOTF2Generator* gen = static_cast<EmberOTF2Generator*> userData;

Here is the error log:

In file included from mpi/motifs/emberotf2.h:22,
                 from mpi/motifs/emberotf2.cc:24:
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPISend(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, uint32_t, OTF2_CommRef, uint32_t, uint64_t)’:
./mpi/embermpigen.h:32:21: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   32 | #define enQ_send mpi().send
mpi/motifs/emberotf2.cc:97:14: note: in expansion of macro ‘enQ_send’
   97 |         gen->enQ_send( *(gen->getEventQueue()), 0, msgLen, gen->extractDataTypeFromAttributeList(attributes), receiver, tag, GroupWorld );
      |              ^~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPIISend(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, uint32_t, OTF2_CommRef, uint32_t, uint64_t, uint64_t)’:
./mpi/embermpigen.h:34:22: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   34 | #define enQ_isend mpi().isend
mpi/motifs/emberotf2.cc:116:14: note: in expansion of macro ‘enQ_isend’
  116 |         gen->enQ_isend( *(gen->getEventQueue()), 0, msgLen, gen->extractDataTypeFromAttributeList(attributes), receiver, tag, GroupWorld, newReq );
      |              ^~~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPIISendComplete(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, uint64_t)’:
./mpi/embermpigen.h:39:21: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context

   39 | #define enQ_wait mpi().wait
mpi/motifs/emberotf2.cc:141:14: note: in expansion of macro ‘enQ_wait’
  141 |         gen->enQ_wait( *(gen->getEventQueue()), checkReq->second, NULL );
      |              ^~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPIRecv(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, uint32_t, OTF2_CommRef, uint32_t, uint64_t)’:
./mpi/embermpigen.h:33:21: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   33 | #define enQ_recv mpi().recv
mpi/motifs/emberotf2.cc:186:14: note: in expansion of macro ‘enQ_recv’
  186 |         gen->enQ_recv( *(gen->getEventQueue()), 0, msgLen, gen->extractDataTypeFromAttributeList(attributes), sender, tag, GroupWorld );
      |              ^~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPIIRecv(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, uint32_t, OTF2_CommRef, uint32_t, uint64_t, uint64_t)’:
./mpi/embermpigen.h:33:21: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   33 | #define enQ_recv mpi().recv
mpi/motifs/emberotf2.cc:218:14: note: in expansion of macro ‘enQ_recv’
  218 |         gen->enQ_recv( *(gen->getEventQueue()), 0, msgLen, gen->extractDataTypeFromAttributeList(attributes), sender, tag, GroupWorld );
      |              ^~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: In function ‘OTF2_CallbackCode EmberOTF2MPICollectiveEnd(OTF2_LocationRef, OTF2_TimeStamp, void*, OTF2_AttributeList*, OTF2_CollectiveOp, OTF2_CommRef, uint32_t, uint64_t, uint64_t)’:
./mpi/embermpigen.h:45:24: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   45 | #define enQ_barrier mpi().barrier
mpi/motifs/emberotf2.cc:250:22: note: in expansion of macro ‘enQ_barrier’
  250 |                 gen->enQ_barrier( *(gen->getEventQueue()), GroupWorld );
      |                      ^~~~~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
./mpi/embermpigen.h:46:22: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   46 | #define enQ_bcast mpi().bcast
mpi/motifs/emberotf2.cc:255:22: note: in expansion of macro ‘enQ_bcast’
  255 |                 gen->enQ_bcast( *(gen->getEventQueue()), 0, sizeSent, CHAR, static_cast<int>(root),
      |                      ^~~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
./mpi/embermpigen.h:50:26: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   50 | #define enQ_allreduce mpi().allreduce
mpi/motifs/emberotf2.cc:262:22: note: in expansion of macro ‘enQ_allreduce’
  262 |                 gen->enQ_allreduce( *(gen->getEventQueue()), 0, 0, sizeSent, CHAR, SUM, GroupWorld );
      |                      ^~~~~~~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
./mpi/embermpigen.h:49:23: error: ‘SST::Ember::EmberMpiLib& SST::Ember::EmberMessagePassingGenerator::mpi()’ is protected within this context
   49 | #define enQ_reduce mpi().reduce
mpi/motifs/emberotf2.cc:268:22: note: in expansion of macro ‘enQ_reduce’
  268 |                 gen->enQ_reduce( *(gen->getEventQueue()), 0, 0, sizeSent, CHAR, SUM, static_cast<int>(root),
      |                      ^~~~~~~~~~
./mpi/embermpigen.h:80:22: note: declared protected here
   80 |         EmberMpiLib& mpi() { return *m_mpi; }
      |                      ^~~
mpi/motifs/emberotf2.cc: At global scope:
mpi/motifs/emberotf2.cc:291:39: error: expected constructor, destructor, or type conversion before ‘(’ token
  291 | EmberOTF2Generator::EmberOTF2Generator(SST::ComponentId_T id, Params& params)

image image

saichennaintel avatar Apr 27 '23 16:04 saichennaintel