[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