[MOAB-dev] problem with pcomm

Grindeanu, Iulian R. iulian at mcs.anl.gov
Wed Dec 2 11:03:32 CST 2015


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/e9336356/attachment-0001.html>


More information about the moab-dev mailing list