[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