Thanks! Matt
On Tue, Jan 24, 2017 at 8:57 AM, Blaise A Bourdin <[email protected]> wrote: > Hi, > > I was able to build petsc master with home-brew gcc 6.3 and intel 17.0 > under macOS sierra. As Mark said, it is important to reinstall the entire > home-brew compiler + libs after upgrading macOS (and often Xcode). > I am able to read / write exodus files. I am attaching my configure > command lines: > > with intel 17.0: > ./configure ./configure \ > --download-chaco=1 \ > --download-exodusii=1 \ > --download-hdf5=1 \ > --download-hypre=1 \ > --download-metis=1 \ > --download-ml=1 \ > --download-netcdf=1 \ > --download-parmetis=1 \ > --download-triangle=1 \ > --with-blas-lapack-dir=$MKLROOT \ > --with-debugging=1 \ > --with-mpi-dir=$MPI_HOME \ > --with-pic \ > --with-shared-libraries=1 \ > --with-vendor-compilers=intel \ > --with-x11=1 > > with gcc: > ./configure \ > --download-exodusii=1 \ > --download-chaco=1 \ > --download-ctetgen=1 \ > --download-hdf5=1 \ > --download-hypre=1 \ > --download-metis=1 \ > --download-ml=1 \ > --download-netcdf=1 \ > --download-parmetis=1 \ > --download-triangle=1 \ > --download-yaml=1 \ > --with-debugging=1 \ > --with-shared-libraries=1 \ > --with-x11=1 > > Blaise > > On Jan 23, 2017, at 7:55 AM, Mark Adams <[email protected]> wrote: > > And I trust you updated all system software (like gcc, NetCDF and > ExodusII). OSX upgrades are hell. > > On Mon, Jan 23, 2017 at 12:36 AM, Matthew Knepley <[email protected]> > wrote: > >> On Sun, Jan 22, 2017 at 11:18 PM, Fande Kong <[email protected]> wrote: >> >>> Thanks, Matt, >>> >>> Clang does not have this issue. The code runs fine with clang. >>> >> >> Okay, it sounds like a gcc bug on Mac 10.6, or at least in the version >> you have. >> >> Matt >> >> >>> Fande, >>> >>> On Sun, Jan 22, 2017 at 8:03 PM, Matthew Knepley <[email protected]> >>> wrote: >>> >>>> On Sun, Jan 22, 2017 at 8:40 PM, Fande Kong <[email protected]> >>>> wrote: >>>> >>>>> Thanks, Matt. >>>>> >>>>> It is a weird bug. >>>>> >>>>> Do we have an alternative solution to this? I was wondering whether it >>>>> is possible to read the ".exo" files without using the ExodusII. For >>>>> example, can we read the ".exo" files using the netcdf only? >>>>> >>>> >>>> Well, ExodusII is only a think layer on NetCDF, just like other >>>> wrappers are thin layers on HDF5. It is >>>> really NetCDF that is failing. Can you switch compilers and see if that >>>> helps? >>>> >>>> Matt >>>> >>>> >>>>> Fande Kong, >>>>> >>>>> >>>>> >>>>> On Sun, Jan 22, 2017 at 6:50 PM, Matthew Knepley <[email protected]> >>>>> wrote: >>>>> >>>>>> On Sun, Jan 22, 2017 at 5:28 PM, Fande Kong <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> On Sun, Jan 22, 2017 at 12:35 PM, Matthew Knepley <[email protected] >>>>>>> > wrote: >>>>>>> >>>>>>>> On Sun, Jan 22, 2017 at 12:41 PM, Fande Kong <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> On Sat, Jan 21, 2017 at 10:47 PM, Matthew Knepley < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> On Sat, Jan 21, 2017 at 10:38 PM, Fande Kong <[email protected] >>>>>>>>>> > wrote: >>>>>>>>>> >>>>>>>>>>> Hi All, >>>>>>>>>>> >>>>>>>>>>> I upgraded the OS system to macOS Sierra, and observed that >>>>>>>>>>> PETSc can not read the exodus file any more. The same code runs fine >>>>>>>>>>> on macOS Capitan. I also tested the function >>>>>>>>>>> DMPlexCreateExodusFromFile() >>>>>>>>>>> against different versions of the GCC compiler such as GCC-5.4 and >>>>>>>>>>> GCC-6, >>>>>>>>>>> and neither of them work. I guess this issue is related to the >>>>>>>>>>> external >>>>>>>>>>> package *exodus*, and PETSc might not pick up the right >>>>>>>>>>> enveriment variables for the *exodus.* >>>>>>>>>>> >>>>>>>>>>> This issue can be reproduced using the following simple code: >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 1) This is just a standard check. Have you reconfigured so that >>>>>>>>>> you know ExodusII was built with the same compilers and system >>>>>>>>>> libraries? >>>>>>>>>> >>>>>>>>>> 2) If so, can you get a stack trace with gdb or lldb? >>>>>>>>>> >>>>>>>>> >>>>>>>>> 0 libsystem_kernel.dylib 0x00007fffad8b8dda >>>>>>>>> __pthread_kill + 10 >>>>>>>>> 1 libsystem_pthread.dylib 0x00007fffad9a4787 pthread_kill >>>>>>>>> + 90 >>>>>>>>> 2 libsystem_c.dylib 0x00007fffad81e420 abort + 129 >>>>>>>>> 3 libpetsc.3.7.dylib 0x00000001100eb9ee >>>>>>>>> PetscAbortErrorHandler + 506 (errstop.c:40) >>>>>>>>> 4 libpetsc.3.7.dylib 0x00000001100e631d PetscError >>>>>>>>> + 916 (err.c:379) >>>>>>>>> 5 libpetsc.3.7.dylib 0x00000001100ed830 >>>>>>>>> PetscSignalHandlerDefault + 1927 (signal.c:160) >>>>>>>>> 6 libpetsc.3.7.dylib 0x00000001100ed088 >>>>>>>>> PetscSignalHandler_Private(int) + 630 (signal.c:49) >>>>>>>>> 7 libsystem_platform.dylib 0x00007fffad997bba _sigtramp + >>>>>>>>> 26 >>>>>>>>> 8 ??? 0x000000011ea09370 >>>>>>>>> initialPoolContent + 19008 >>>>>>>>> 9 libnetcdf.7.dylib 0x000000011228fc62 utf8proc_map >>>>>>>>> + 210 (dutf8proc.c:543) >>>>>>>>> 10 libnetcdf.7.dylib 0x000000011228fd0f utf8proc_NFC >>>>>>>>> + 38 (dutf8proc.c:568) >>>>>>>>> 11 libnetcdf.7.dylib 0x00000001122a7928 NC_findattr >>>>>>>>> + 110 (attr.c:341) >>>>>>>>> 12 libnetcdf.7.dylib 0x00000001122a7a4e >>>>>>>>> NC_lookupattr + 119 (attr.c:384) >>>>>>>>> 13 libnetcdf.7.dylib 0x00000001122a93ef NC3_get_att >>>>>>>>> + 47 (attr.c:1138) >>>>>>>>> 14 libnetcdf.7.dylib 0x0000000112286126 >>>>>>>>> nc_get_att_float + 90 (dattget.c:192) >>>>>>>>> 15 libpetsc.3.7.dylib 0x00000001117f3a5b ex_open_int >>>>>>>>> + 171 (ex_open.c:259) >>>>>>>>> 16 libpetsc.3.7.dylib 0x0000000110c36609 >>>>>>>>> DMPlexCreateExodusFromFile + 781 (plexexodusii.c:43) >>>>>>>>> 17 DMPlexCreateExodusFromFile 0x000000010fed4cfc main + 397 >>>>>>>>> (DMPlexCreateExodusFromFile.cpp:24) >>>>>>>>> 18 libdyld.dylib 0x00007fffad78a255 start + 1 >>>>>>>>> >>>>>>>> >>>>>>>> This is a NetCDF error on ex_open_int(). My guess is that your >>>>>>>> NetCDF build is old and when it calls the system DLL >>>>>>>> you bomb. Can you do a completely new build, meaning either reclone >>>>>>>> PETSc somewhere else, or delete the whole >>>>>>>> $PETSC_DIR/$PETSC_ARCH/externalpackage directory and >>>>>>>> reconfigure/build? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Matt >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> Hi Matt, >>>>>>> >>>>>>> Thanks for reply. I recloned PETSc (the old petsc folder is >>>>>>> deleted completely) and reconfigure. And still has the same issue. I >>>>>>> also >>>>>>> checked if the binary is complied against any other netcdf. The binary >>>>>>> is >>>>>>> actually complied against the right netcdf installed through PETSc. >>>>>>> >>>>>> >>>>>> You can see that this crash happens on the call to >>>>>> >>>>>> int CPU_word_size = 0, IO_word_size = 0, exoid = -1; >>>>>> float version; >>>>>> >>>>>> exoid = ex_open(filename, EX_READ, &CPU_word_size, &IO_word_size, >>>>>> &version); >>>>>> >>>>>> which means the fault is not in PETSc, but rather in ExodusII for >>>>>> your machine. We could definitely >>>>>> confirm this if you made a 5 line program that only called this, but >>>>>> I don't see why it should be different. >>>>>> I am not sure what to do, since I am not in control of anything about >>>>>> ExodusII. Can you report this to >>>>>> their dev team? It is strange since Blaise has not reported this, and >>>>>> I know he uses it all the time. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Matt >>>>>> >>>>>> >>>>>>> *LiviadeMacBook-Pro:partition livia$ otool -L >>>>>>> DMPlexCreateExodusFromFile* >>>>>>> *DMPlexCreateExodusFromFile:* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libpetsc.3.7.dylib >>>>>>> (compatibility version 3.7.0, current version 3.7.5)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libsuperlu_dist.5.dylib >>>>>>> (compatibility version 5.0.0, current version 5.1.3)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libparmetis.dylib >>>>>>> (compatibility version 0.0.0, current version 0.0.0)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libmetis.dylib >>>>>>> (compatibility version 0.0.0, current version 0.0.0)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libnetcdf.7.dylib >>>>>>> (compatibility version 10.0.0, current version 10.0.0)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libhdf5_hl.8.dylib >>>>>>> (compatibility version 9.0.0, current version 9.1.0)* >>>>>>> */Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libhdf5.8.dylib >>>>>>> (compatibility version 9.0.0, current version 9.1.0)* >>>>>>> */opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current >>>>>>> version 10.0.0)* >>>>>>> */Users/livia/math/mpich-3.2_install/lib/libmpifort.12.dylib >>>>>>> (compatibility version 14.0.0, current version 14.0.0)* >>>>>>> */usr/local/opt/gcc@5/lib/gcc/5/libgfortran.3.dylib (compatibility >>>>>>> version 4.0.0, current version 4.0.0)* >>>>>>> */usr/local/opt/gcc@5/lib/gcc/5/libquadmath.0.dylib (compatibility >>>>>>> version 1.0.0, current version 1.0.0)* >>>>>>> */Users/livia/math/mpich-3.2_install/lib/libmpicxx.12.dylib >>>>>>> (compatibility version 14.0.0, current version 14.0.0)* >>>>>>> */usr/local/opt/gcc@5/lib/gcc/5/libstdc++.6.dylib (compatibility >>>>>>> version 7.0.0, current version 7.21.0)* >>>>>>> */usr/local/opt/gcc@5/lib/gcc/5/libgcc_s.1.dylib (compatibility >>>>>>> version 1.0.0, current version 1.0.0)* >>>>>>> */Users/livia/math/mpich-3.2_install/lib/libmpi.12.dylib >>>>>>> (compatibility version 14.0.0, current version 14.0.0)* >>>>>>> */Users/livia/math/mpich-3.2_install/lib/libpmpi.12.dylib >>>>>>> (compatibility version 14.0.0, current version 14.0.0)* >>>>>>> */usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >>>>>>> version 1238.0.0)* >>>>>>> */usr/local/lib/gcc/5/libgcc_s.1.dylib (compatibility version 1.0.0, >>>>>>> current version 1.0.0)* >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>>>> Matt >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> *static char help[] = " create mesh from exodus.\n\n";* >>>>>>>>>>> >>>>>>>>>>> *#include <petscdm.h>* >>>>>>>>>>> *#include <petsc/private/dmpleximpl.h>* >>>>>>>>>>> >>>>>>>>>>> *#undef __FUNCT__* >>>>>>>>>>> *#define __FUNCT__ "main"* >>>>>>>>>>> *int main(int argc,char **argv)* >>>>>>>>>>> *{* >>>>>>>>>>> * char fineMeshFileName[2048];* >>>>>>>>>>> * DM dm;* >>>>>>>>>>> * MPI_Comm comm;* >>>>>>>>>>> * PetscBool flg;* >>>>>>>>>>> >>>>>>>>>>> * PetscErrorCode ierr;* >>>>>>>>>>> >>>>>>>>>>> * ierr = PetscInitialize(&argc,&argv,(char >>>>>>>>>>> *)0,help);CHKERRQ(ierr);* >>>>>>>>>>> * comm = PETSC_COMM_WORLD;* >>>>>>>>>>> * ierr = >>>>>>>>>>> PetscOptionsGetString(NULL,NULL,"-file",fineMeshFileName,sizeof(fineMeshFileName),&flg);CHKERRQ(ierr);* >>>>>>>>>>> * if(!flg){* >>>>>>>>>>> *SETERRQ(comm,PETSC_ERR_ARG_NULL,"please specify a fine mesh >>>>>>>>>>> file \n");* >>>>>>>>>>> * }* >>>>>>>>>>> * ierr = DMPlexCreateExodusFromFile( comm,fineMeshFileName, >>>>>>>>>>> PETSC_FALSE, &dm);CHKERRQ(ierr);* >>>>>>>>>>> * ierr = DMDestroy(&dm);CHKERRQ(ierr);* >>>>>>>>>>> * ierr = PetscFinalize();CHKERRQ(ierr);* >>>>>>>>>>> *}* >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *LiviadeMacBook-Pro:partition livia$ >>>>>>>>>>> ./DMPlexCreateExodusFromFile -file Tri3.exo * >>>>>>>>>>> *[0]PETSC ERROR: >>>>>>>>>>> ------------------------------------------------------------------------* >>>>>>>>>>> *[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation >>>>>>>>>>> Violation, probably memory access out of range* >>>>>>>>>>> *[0]PETSC ERROR: Try option -start_in_debugger or >>>>>>>>>>> -on_error_attach_debugger* >>>>>>>>>>> *[0]PETSC ERROR: or see >>>>>>>>>>> http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind >>>>>>>>>>> <http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind>* >>>>>>>>>>> *[0]PETSC ERROR: or try http://valgrind.org >>>>>>>>>>> <http://valgrind.org/> on GNU/linux and Apple Mac OS X to find >>>>>>>>>>> memory >>>>>>>>>>> corruption errors* >>>>>>>>>>> *[0]PETSC ERROR: likely location of problem given in stack below* >>>>>>>>>>> *[0]PETSC ERROR: --------------------- Stack Frames >>>>>>>>>>> ------------------------------------* >>>>>>>>>>> *[0]PETSC ERROR: Note: The EXACT line numbers in the stack are >>>>>>>>>>> not available,* >>>>>>>>>>> *[0]PETSC ERROR: INSTEAD the line number of the start of >>>>>>>>>>> the function* >>>>>>>>>>> *[0]PETSC ERROR: is given.* >>>>>>>>>>> *[0]PETSC ERROR: [0] DMPlexCreateExodusFromFile line 38 >>>>>>>>>>> /Users/livia/math/petsc/src/dm/impls/plex/plexexodusii.c* >>>>>>>>>>> *[0]PETSC ERROR: --------------------- Error Message >>>>>>>>>>> --------------------------------------------------------------* >>>>>>>>>>> *[0]PETSC ERROR: Signal received* >>>>>>>>>>> *[0]PETSC ERROR: See >>>>>>>>>>> http://www.mcs.anl.gov/petsc/documentation/faq.html >>>>>>>>>>> <http://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble >>>>>>>>>>> shooting.* >>>>>>>>>>> *[0]PETSC ERROR: Petsc Release Version 3.7.5, unknown * >>>>>>>>>>> *[0]PETSC ERROR: ./DMPlexCreateExodusFromFile on a >>>>>>>>>>> arch-darwin-cxx-debug named LiviadeMacBook-Pro.local by livia Sat >>>>>>>>>>> Jan 21 >>>>>>>>>>> 21:04:22 2017* >>>>>>>>>>> *[0]PETSC ERROR: Configure options --with-clanguage=cxx >>>>>>>>>>> --with-shared-libraries=1 --download-fblaslapack=1 --with-mpi=1 >>>>>>>>>>> --download-parmetis=1 --download-metis=1 --download-netcdf=1 >>>>>>>>>>> --download-exodusii=1 --download-hdf5=1 --with-debugging=yes >>>>>>>>>>> --with-c2html=0 --download-hypre=1 --with-64-bit-indices=1 >>>>>>>>>>> --download-superlu_dist=1 PETSC_ARCH=arch-darwin-cxx-debug* >>>>>>>>>>> *[0]PETSC ERROR: #1 User provided function() line 0 in unknown >>>>>>>>>>> file* >>>>>>>>>>> *application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0* >>>>>>>>>>> *[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=59* >>>>>>>>>>> *:* >>>>>>>>>>> *system msg for write_line failure : Bad file descriptor* >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> The log files of make and configuration are also attached. If >>>>>>>>>>> you have any idea on this issue, please let me know! >>>>>>>>>>> >>>>>>>>>>> Fande Kong, >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> What most experimenters take for granted before they begin their >>>>>>>>>> experiments is infinitely more interesting than any results to which >>>>>>>>>> their >>>>>>>>>> experiments lead. >>>>>>>>>> -- Norbert Wiener >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> What most experimenters take for granted before they begin their >>>>>>>> experiments is infinitely more interesting than any results to which >>>>>>>> their >>>>>>>> experiments lead. >>>>>>>> -- Norbert Wiener >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> What most experimenters take for granted before they begin their >>>>>> experiments is infinitely more interesting than any results to which >>>>>> their >>>>>> experiments lead. >>>>>> -- Norbert Wiener >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> What most experimenters take for granted before they begin their >>>> experiments is infinitely more interesting than any results to which their >>>> experiments lead. >>>> -- Norbert Wiener >>>> >>> >>> >> >> >> -- >> What most experimenters take for granted before they begin their >> experiments is infinitely more interesting than any results to which their >> experiments lead. >> -- Norbert Wiener >> > > > -- > Department of Mathematics and Center for Computation & Technology > Louisiana State University, Baton Rouge, LA 70803, USA > Tel. +1 (225) 578 1612 <(225)%20578-1612>, Fax +1 (225) 578 4276 > <(225)%20578-4276> http://www.math.lsu.edu/~bourdin > > > > > > > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
