Find recursively where is libeng.dylib under /Applications/MATLAB_R2019b.app/extern/engines/
--Junchao Zhang On Tue, Jun 9, 2020 at 4:27 PM Amneet Bhalla <[email protected]> wrote: > Forgot to mention that configure found the following about MATLAB > > Matlab: > > Includes: -I/Applications/MATLAB_R2019b.app/extern/include > > /Applications/MATLAB_R2019b.app > > MatlabEngine: > > Library: -L/Applications/MATLAB_R2019b.app/bin/maci64 > -L/Applications/MATLAB_R2019b.app/extern/lib/maci64 -leng -lmex -lmx -lmat > -lut -licudata -licui18n -licuuc > > On Tue, Jun 9, 2020 at 2:20 PM Amneet Bhalla <[email protected]> > wrote: > >> Do these additional configure flags for MATLAB look OK? >> >> --with-matlab=1 --with-matlab-dir=/Applications/MATLAB_R2019b.app >> --with-matlab-engine=1 >> --with-matlab-engine-dir=/Applications/MATLAB_R2019b.app/extern/engines/ >> >> >> >> >> With this configuration make compiled files like: >> >> >> CC darwin-dbg/obj/sys/classes/viewer/impls/matlab/vmatlab.o >> >> CC >> darwin-dbg/obj/sys/classes/viewer/impls/matlab/ftn-custom/zvmatlabf.o >> >> CC darwin-dbg/obj/sys/classes/matlabengine/matlab.o >> >> CC darwin-dbg/obj/sys/classes/matlabengine/ftn-auto/matlabf.o >> >> CC darwin-dbg/obj/sys/classes/matlabengine/ftn-custom/zmatlabf.o >> >> CC darwin-dbg/obj/vec/pf/impls/matlab/cmatlab.o >> >> CC darwin-dbg/obj/vec/vec/utils/matlab/gcreatev.o >> >> >> make[2]: Leaving directory `/Users/amneetb/Softwares/PETSc-Gitlab/PETSc' >> >> BEGINNING TO COMPILE MATLAB INTERFACE >> >> Building with 'Xcode with Clang'. >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> MEX completed successfully. >> >> Building with 'Xcode with Clang'. >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> MEX completed successfully. >> >> Building with 'Xcode with Clang'. >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> MEX completed successfully. >> >> Building with 'Xcode with Clang'. >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> ld: warning: cannot export hidden symbol _mexfilerequiredapiversion from >> c_mexapi_version.o >> >> >> MEX completed successfully. >> >> >> However, make check gives error >> >> >> amneetb@Amneets-MBP:~/Softwares/PETSc-Gitlab/PETSc$ make >> PETSC_DIR=/Users/amneetb/Softwares/PETSc-Gitlab/PETSc PETSC_ARCH=darwin-dbg >> check >> >> Running test examples to verify correct installation >> >> Using PETSC_DIR=/Users/amneetb/Softwares/PETSc-Gitlab/PETSc and >> PETSC_ARCH=darwin-dbg >> >> Possible error running C/C++ src/snes/examples/tutorials/ex19 with 1 MPI >> process >> >> See http://www.mcs.anl.gov/petsc/documentation/faq.html >> >> dyld: Library not loaded: @rpath/libeng.dylib >> >> Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex19 >> >> Reason: image not found >> >> >> >> =================================================================================== >> >> = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES >> >> = PID 14057 RUNNING AT Amneets-MBP >> >> = EXIT CODE: 6 >> >> = CLEANING UP REMAINING PROCESSES >> >> = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES >> >> >> =================================================================================== >> >> YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6) >> >> This typically refers to a problem with your application. >> >> Please see the FAQ page for debugging suggestions >> >> Possible error running C/C++ src/snes/examples/tutorials/ex19 with 2 MPI >> processes >> >> See http://www.mcs.anl.gov/petsc/documentation/faq.html >> >> dyld: Library not loaded: @rpath/libeng.dylib >> >> Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex19 >> >> Reason: image not found >> >> dyld: Library not loaded: @rpath/libeng.dylib >> >> Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex19 >> >> Reason: image not found >> >> >> >> =================================================================================== >> >> = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES >> >> = PID 14062 RUNNING AT Amneets-MBP >> >> = EXIT CODE: 6 >> >> = CLEANING UP REMAINING PROCESSES >> >> = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES >> >> >> =================================================================================== >> >> YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6) >> >> This typically refers to a problem with your application. >> >> Please see the FAQ page for debugging suggestions >> >> 1,5c1,17 >> >> < lid velocity = 0.0016, prandtl # = 1., grashof # = 1. >> >> < 0 SNES Function norm 0.0406612 >> >> < 1 SNES Function norm 4.12227e-06 >> >> < 2 SNES Function norm 6.098e-11 >> >> < Number of SNES iterations = 2 >> >> --- >> >> > dyld: Library not loaded: @rpath/libeng.dylib >> >> > Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex19 >> >> > Reason: image not found >> >> > dyld: Library not loaded: @rpath/libeng.dylib >> >> > Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex19 >> >> > Reason: image not found >> >> > >> >> > >> =================================================================================== >> >> > = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES >> >> > = PID 14072 RUNNING AT Amneets-MBP >> >> > = EXIT CODE: 6 >> >> > = CLEANING UP REMAINING PROCESSES >> >> > = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES >> >> > >> =================================================================================== >> >> > YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal >> 6) >> >> > This typically refers to a problem with your application. >> >> > Please see the FAQ page for debugging suggestions >> >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials >> >> Possible problem with ex19 running with hypre, diffs above >> >> ========================================= >> >> Possible error running Fortran example src/snes/examples/tutorials/ex5f >> with 1 MPI process >> >> See http://www.mcs.anl.gov/petsc/documentation/faq.html >> >> dyld: Library not loaded: @rpath/libeng.dylib >> >> Referenced from: >> /Users/amneetb/Softwares/PETSc-Gitlab/PETSc/src/snes/examples/tutorials/./ex5f >> >> Reason: image not found >> >> >> >> =================================================================================== >> >> = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES >> >> = PID 14211 RUNNING AT Amneets-MBP >> >> = EXIT CODE: 6 >> >> = CLEANING UP REMAINING PROCESSES >> >> = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES >> >> >> =================================================================================== >> >> YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6) >> >> This typically refers to a problem with your application. >> >> Please see the FAQ page for debugging suggestions >> >> Completed test examples >> >> >> I have added the following paths in my .profile and sourced it before >> make all and make check >> >> export DYLD_FALLBACK_LIBRARY_PATH= >> /Applications/MATLAB_R2019b.app/bin/maci64:/Applications/MATLAB_R2019b.app/sys/os/maci64: >> $DYLD_FALLBACK_LIBRARY_PATH >> >> >> export DYLD_LIBRARY_PATH= >> /Applications/MATLAB_R2019b.app/bin/maci64:/Applications/MATLAB_R2019b.app/sys/os/maci64: >> $DYLD_LIBRARY_PATH >> >> >> >> >> On Mon, Jun 8, 2020 at 6:39 PM Barry Smith <[email protected]> wrote: >> >>> >>> Looks like the tool to list the examples in the manual pages is broken >>> since it didn't find these other examples, I'll take a look at it. >>> >>> There is also a discussion in the users manual >>> >>> $ git grep MatlabEngine | grep ex >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineCreate(MPI_Comm comm,char >>> *machine,PetscMatlabEngine *e); >>> src/docs/tex/manual/part2.tex:PetscMatlabEnginePut(PetscMatlabEngine >>> e,PetscObject obj); >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineGet(PetscMatlabEngine >>> e,PetscObject obj); >>> src/docs/tex/manual/part2.tex:PetscMatlabEnginePutArray(PetscMatlabEngine >>> e,int m,int n,PetscScalar *array,char *name); >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineGetArray(PetscMatlabEngine >>> e,int m,int n,PetscScalar *array,char *name); >>> >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineEvaluate(PetscMatlabEngine,"format",...); >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineEvaluate(PetscMatlabEngine,"x >>> = \%g *y + z;",avalue); >>> src/docs/tex/manual/part2.tex:PetscMatlabEngineGetOutput(PetscMatlabEngine,char >>> **); >>> >>> src/docs/tex/manual/part2.tex:PetscMatlabEnginedPrintOutput(PetscMatlabEngine,FILE*). >>> src/snes/tutorials/ex5.c: ierr = >>> PetscMatlabEnginePut(PETSC_MATLAB_ENGINE_(comm),(PetscObject)localX);CHKERRQ(ierr); >>> src/snes/tutorials/ex5.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(comm),"localF=ex5m(localX,%18.16e,%18.16e,%18.16e)",hx,hy,lambda);CHKERRQ(ierr); >>> src/snes/tutorials/ex5.c: ierr = >>> PetscMatlabEngineGet(PETSC_MATLAB_ENGINE_(comm),(PetscObject)localF);CHKERRQ(ierr); >>> src/sys/tests/ex16.c:static char help[] = "Demonstrates >>> PetscMatlabEngineXXX()\n"; >>> src/sys/tests/ex16.c: ierr = >>> PetscMatlabEngineGetOutput(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),&output);CHKERRQ(ierr); >>> src/sys/tests/ex16.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),"MPI_Comm_rank");CHKERRQ(ierr); >>> src/sys/tests/ex16.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),user);CHKERRQ(ierr); >>> src/vec/vec/tests/ex31.c:static const char help[] = "Demonstrates >>> PetscMatlabEngineXXX()\n"; >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEngineGetOutput(PETSC_MATLAB_ENGINE_WORLD,&output); >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_WORLD,"MPI_Comm_rank"); >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEnginePut(PETSC_MATLAB_ENGINE_WORLD,(PetscObject)x);CHKERRQ(ierr); >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_WORLD,"x = x + >>> MPI_Comm_rank;\n"); >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEngineGet(PETSC_MATLAB_ENGINE_WORLD,(PetscObject)x);CHKERRQ(ierr); >>> src/vec/vec/tests/ex31.c: ierr = >>> PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_WORLD,"whos\n");CHKERRQ(ierr); >>> >>> On Jun 8, 2020, at 8:26 PM, Amneet Bhalla <[email protected]> wrote: >>> >>> Great! >>> >>> Clicking on some of the functions pointed me to this example >>> https://www.mcs.anl.gov/petsc/petsc-3.13/src/snes/tutorials/ex5.c.html >>> >>> Are there more examples, which are perhaps simpler than the above, which >>> I can refer to? >>> >>> On Mon, Jun 8, 2020 at 5:51 PM Barry Smith <[email protected]> wrote: >>> >>>> >>>> You should use the PetscMatlabEngine >>>> https://www.mcs.anl.gov/petsc/petsc-3.13/docs/manualpages/Sys/PetscMatlabEngine.html >>>> >>>> Barry >>>> >>>> >>>> On Jun 8, 2020, at 7:09 PM, Amneet Bhalla <[email protected]> >>>> wrote: >>>> >>>> Hi Folks, >>>> >>>> My parallel application written in C++ (which also uses PETSc library >>>> for linear solvers) requires calling control and optimization toolbox of >>>> MATLAB at every time step to get a small number of double values. Likewise >>>> the MATLAB function will need to know some values from the parallel C++ >>>> application to return those doubles. I'm wondering if there is a >>>> recommended way of calling MATLAB from parallel C/C++/Fortran codes, and if >>>> PETSc has some interface that could be leveraged for this exchange. >>>> >>>> Thanks, >>>> -- >>>> --Amneet >>>> >>>> >>>> >>>> >>>> >>> >>> -- >>> --Amneet >>> >>> >>> >>> >>> >> >> -- >> --Amneet >> >> >> >> > > -- > --Amneet > > > >
