Thanks, Blaise and Matt, I possibly mess up the brew installation somehow. I will clean up everything and start over, and report back.
Fande, On Tue, Jan 24, 2017 at 9:26 AM, Matthew Knepley <knep...@gmail.com> wrote: > Thanks! > > Matt > > On Tue, Jan 24, 2017 at 8:57 AM, Blaise A Bourdin <bour...@lsu.edu> 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 <mfad...@lbl.gov> 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 <knep...@gmail.com> >> wrote: >> >>> On Sun, Jan 22, 2017 at 11:18 PM, Fande Kong <fdkong...@gmail.com> >>> 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 <knep...@gmail.com> >>>> wrote: >>>> >>>>> On Sun, Jan 22, 2017 at 8:40 PM, Fande Kong <fdkong...@gmail.com> >>>>> 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 <knep...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> On Sun, Jan 22, 2017 at 5:28 PM, Fande Kong <fdkong...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> On Sun, Jan 22, 2017 at 12:35 PM, Matthew Knepley < >>>>>>>> knep...@gmail.com> wrote: >>>>>>>> >>>>>>>>> On Sun, Jan 22, 2017 at 12:41 PM, Fande Kong <fdkong...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> On Sat, Jan 21, 2017 at 10:47 PM, Matthew Knepley < >>>>>>>>>> knep...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> On Sat, Jan 21, 2017 at 10:38 PM, Fande Kong < >>>>>>>>>>> fdkong...@gmail.com> 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 >>>>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mcs.anl.gov_petsc_documentation_faq.html-23valgrind&d=DQMFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=nkRPgIUrB5lOg1etuJMY1nEqzxd7KeOXIvjnjV7-FqA&s=XmOq0yF0m99l0UmsNv88t0hiFq9Fkb3pO3cOOd0lwNs&e=>* >>>>>>>>>>>> *[0]PETSC ERROR: or try http://valgrind.org >>>>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__valgrind.org_&d=DQMFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=nkRPgIUrB5lOg1etuJMY1nEqzxd7KeOXIvjnjV7-FqA&s=AV7Rf6LhmCS9mEf9kD8G2oX27ZLeXpFZ-j59UbuWffU&e=> >>>>>>>>>>>> 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 >>>>>>>>>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mcs.anl.gov_petsc_documentation_faq.html&d=DQMFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=nkRPgIUrB5lOg1etuJMY1nEqzxd7KeOXIvjnjV7-FqA&s=XjLUqdMLvzNjWQGVVaiJek1trAYMSDHAWY-ojgI9Tdo&e=> >>>>>>>>>>>> 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 >> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.math.lsu.edu_-7Ebourdin&d=DQMFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=nkRPgIUrB5lOg1etuJMY1nEqzxd7KeOXIvjnjV7-FqA&s=39UrCY8TvVOvCDQnDT5DlOiClLfYKr-s73fY0TzCcSM&e=> >> >> >> >> >> >> >> >> > > > -- > 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 >