[MOAB-dev] problem with pcomm

Lorenzo Alessio Botti lorenzoalessiobotti at gmail.com
Wed Dec 2 11:11:38 CST 2015


Dear Iulian, how do I enable debug mode?
I want to be sure compile with the right flags…

Thanks 
Lorenzo


> On 02 Dec 2015, at 18:03, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
> 
> Hi Lorenzo,
> Your code works on my linux machine.
> It could be something specific to OSX, 
> Sometimes we find that OSX uncovers bugs 
> 
> You mentioned that there is a seg fault at pcomm_tag(mbImpl, true)
> 
> It just creates there a sparse tag with name __PARALLEL_COMM, which will be used to store ParallelComm objects on the root (entity handle = 0)
> 
> Can you compile in debug mode and give more trace info?
> 
> Thanks,
> Iulian
> 
> From: Lorenzo Alessio Botti [lorenzoalessiobotti at gmail.com]
> Sent: Wednesday, December 02, 2015 10:20 AM
> To: MOAB dev
> Cc: Grindeanu, Iulian R.; Vijay S. Mahadevan
> Subject: Re: [MOAB-dev] problem with pcomm
> 
> 
> 
> =====================================
>    MOAB 4.8.2: test/test-suite.log
> =====================================
> 
> # TOTAL: 35
> # PASS:  35
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  0
> # XPASS: 0
> # ERROR: 0
> 
> .. contents:: :depth: 2
> 
> This is the sole failure.
> 
> ==============================================
>    MOAB 4.8.2: test/parallel/test-suite.log
> ==============================================
> 
> # TOTAL: 11
> # PASS:  10
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  1
> # XPASS: 0
> # ERROR: 0
> 
> .. contents:: :depth: 2
> 
> FAIL: parallel_hdf5_test
> ========================
> 
> Running test_write_elements ...
> Running test_write_elements ...
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Running test_write_shared_sets ...
> Running test_write_shared_sets ...
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Running test_var_length_parallel ...
> Running test_var_length_parallel ...
> Running test_read_elements ...
> Running test_read_elements ...
> Running test_read_elements_by_rank ...
> Running test_read_elements_by_rank ...
> Running test_read_tags ...
> Running test_read_tags ...
> Running test_read_global_tags ...
> Running test_read_global_tags ...
> Running test_read_sets ...
> Running test_read_sets ...
> Running test_read_sets_bcast_dups ...
> Running test_read_sets_bcast_dups ...
> Running test_read_sets_read_dups ...
> Running test_read_sets_read_dups ...
> Running test_read_bc_sets ...
> Running test_read_bc_sets ...
> Fatal error in MPI_Reduce: Invalid datatype, error stack:
> MPI_Reduce(1258): MPI_Reduce(sbuf=0x7fff533896d4, rbuf=0x7fff533896c8, count=3, MPI_DATATYPE_NULL, MPI_SUM, root=0, MPI_COMM_WORLD) failed
> MPI_Reduce(1168): Datatype for argument datatype is a null datatype
> FAIL parallel_hdf5_test (exit status: 3)
> 
> 
> The whole code, without any MPI initialisation,
> 
> #include "moab/ParallelComm.hpp"
> #include "MBParallelConventions.h"
> #include "MBTagConventions.hpp"
> #include "moab/Core.hpp"
> #include "moab_mpi.h"
> 
> using namespace moab;
> 
> int main(int argc, char **argv)
> {
>   Core moab;
>   Interface& imoab = moab;
> 
>   ParallelComm* pcomm = ParallelComm::get_pcomm(&moab, 0);
>   if (0 == pcomm)
>   {
>     pcomm = new ParallelComm(&imoab, MPI_COMM_WORLD);
>   }
>   delete pcomm;
>   return EXIT_SUCCESS;
> };
> 
> ~         
> 
> This is the Makefile
> MOAB_LIB_DIR = /Users/ihabia/src2/moab-4.8.2/moab/
> include $(MOAB_LIB_DIR)/lib/moab.make
> 
> %.o : %.cpp
>         @echo "Compiling ("$(CXX)") "$<" "
>         @$(CXX) ${MOAB_INCLUDES} -c $< -o $@
> 
> CXX = mpicxx -O2 -DNDEBUG
> 
> objects := $(patsubst %.cpp,%.o,$(wildcard ./*.cpp))
> 
> mbtestrun : $(objects)
>         @echo "Linking "$(CURDIR)"/"$@
>         @$(CXX) $(objects) -o $@ $(MOAB_LIBS_LINK) 
> 
> .PHONY : clean 
> 
> clean :
>         @rm $(objects)
> 
> 
> and this is mob.make
> 
> # The values below are for an un-installed copy of MOAB used directly
> # from its build build directory.  These values will be overridden below
> # for installed copies of MOAB.
> MOAB_LIBDIR = /Users/ihabia/src2/moab-4.8.2/src/.libs
> MOAB_INCLUDES = -I/Users/ihabia/src2/moab-4.8.2/src \
>                 -I/Users/ihabia/src2/moab-4.8.2/src \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/oldinc \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/parallel \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/parallel
> 
> MOAB_INCLUDES +=
> 
> MOAB_CPPFLAGS =        -I/Users/ihabia/src2/hdf5-1.8.16/hdf5//include -isystem /Users/ihabia/src2/hdf5-1.8.16/hdf5//include
> MOAB_CXXFLAGS =  -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align  -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -stdlib=libstdc++ -O2 -DNDEBUG
> MOAB_CFLAGS =  -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align  -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2 -DNDEBUG
> MOAB_FFLAGS =
> MOAB_FCFLAGS =
> MOAB_LDFLAGS =          -L/Users/ihabia/src2/hdf5-1.8.16/hdf5//lib  -stdlib=libstdc++
> 
> 
> MOAB_LIBS_LINK = ${MOAB_LDFLAGS} -L${MOAB_LIBDIR} -lMOAB    -lhdf5    -lc++ -lz -ldl -lm       -lc++ -lz -ldl -lm
> DAGMC_LIBS_LINK = ${MOAB_LDFLAGS} -L${MOAB_LIBDIR}  -lMOAB    -lhdf5    -lc++ -lz -ldl -lm       -lc++ -lz -ldl -lm
> 
> MOAB_CXX = /Users/ihabia/src2/mpich-3.2/mpich3//bin/mpicxx
> MOAB_CC  = /Users/ihabia/src2/mpich-3.2/mpich3//bin/mpicc
> MOAB_FC  =
> MOAB_F77  =
> 
> # Override MOAB_LIBDIR and MOAB_INCLUDES from above with the correct
> # values for the installed MOAB.
> 
> MOAB_LIBDIR=/Users/ihabia/src2/moab-4.8.2/moab/lib
> MOAB_INCLUDES=-I/Users/ihabia/src2/moab-4.8.2/moab/include
> 
> 
> 
> 
>> On 02 Dec 2015, at 16:17, Grindeanu, Iulian R. <iulian at mcs.anl.gov <mailto:iulian at mcs.anl.gov>> wrote:
>> 
>> Hi Lorenzo,
>> 
>> Do you initialize MPI before using moab? 
>> 
>> 
>> Iulian
>> 
>> ________________________________________
>> From: moab-dev-bounces at mcs.anl.gov <mailto:moab-dev-bounces at mcs.anl.gov> [moab-dev-bounces at mcs.anl.gov <mailto:moab-dev-bounces at mcs.anl.gov>] on behalf of Vijay S. Mahadevan [vijay.m at gmail.com <mailto:vijay.m at gmail.com>]
>> Sent: Wednesday, December 02, 2015 9:08 AM
>> To: Lorenzo Alessio Botti
>> Cc: MOAB dev
>> Subject: Re: [MOAB-dev] problem with pcomm
>> 
>> Lorenzo, we test your configuration very regularly (on buildbot and on
>> linux machines) and I haven't seen any issues with ParallelComm. Does
>> "make check" pass cleanly ?
>> 
>> I'll see if I can replicate this on my Mac.
>> 
>> Vijay
>> 
>> On Wed, Dec 2, 2015 at 8:49 AM, Lorenzo Alessio Botti
>> <lorenzoalessiobotti at gmail.com <mailto:lorenzoalessiobotti at gmail.com>> wrote:
>>> Dear All,
>>> I have a problem with the latest moab builds (both 4.8.2 and 4.9)…
>>> I cannot run the following code in an application linked to moab
>>> 
>>>  Core moab;
>>> 
>>>  Interface& imoab = moab;
>>> 
>>> 
>>>  ParallelComm* pcomm = ParallelComm::get_pcomm(&moab, 0);
>>> 
>>>  if (0 == pcomm)
>>> 
>>>  {
>>> 
>>>    pcomm = new ParallelComm(&imoab, MPI_COMM_WORLD);
>>> 
>>>  }
>>> 
>>>  delete pcomm;
>>> 
>>> 
>>> It seems that a segmentation fault is triggered during the initialization of
>>> the pcomm in particular in this function
>>> 
>>>  Tag ParallelComm::pcomm_tag(Interface *impl,
>>> 
>>>                              bool create_if_missing)
>>> 
>>> 
>>> with create_if_missing = true.
>>> 
>>> I’m building on OS X.
>>> Have you ever experienced this issue? What can I do?
>>> 
>>> I attach the config.log below
>>> 
>>> 
>>> 
>>> Bests
>>> Lorenzo

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20151202/6617963a/attachment-0001.html>


More information about the moab-dev mailing list