mmclab and octave (nightly build throws error)

105 views
Skip to first unread message

Karl-Heinz

unread,
Aug 15, 2021, 10:35:45 AM8/15/21
to mcx-users
Hello to everybody,

I lost some time today experimenting with mmclab. 

I was working with this nightly build:

    MCXStudio-linux64-nightlybuild.zip (2021-08-15 06:30)

I'm using Debian Bullseye with GNU Octave, version 6.2.0. The GPU is a dedicated RTX 5000. 

I created the path to mmclab with addpath to this directory 

    <myhomedir>/MCXStudio/MATLAB/mmclab

When running the sample files I got this error message:

error: <myhomedir>/MCXStudio/MATLAB/mmclab/mmc.mex: failed to load: liboctinterp.so.4: Cannot open the shared object file: File or directory not found

I could not find any hint in the internet in which Debian package liboctinterp.so.4 could be included. 

For this reason I downloaded the source code of mmclab and compiled it after installing the following additional packages:

    sudo apt install opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev

Both the compile process and the execution of the examples are now done without errors. 

Perhaps this post will help if anyone encounters the same error message. 

Could it be that the pre-compiled mmc.mex file does not work with Octave? If so, then a note in the readme would be helpful.

Many greetings

Karl-Heinz 

Qianqian Fang

unread,
Aug 15, 2021, 10:52:43 AM8/15/21
to mcx-...@googlegroups.com, Karl-Heinz
On 8/15/21 10:35 AM, Karl-Heinz wrote:
Hello to everybody,

I lost some time today experimenting with mmclab. 

I was working with this nightly build:

    MCXStudio-linux64-nightlybuild.zip (2021-08-15 06:30)

I'm using Debian Bullseye with GNU Octave, version 6.2.0. The GPU is a dedicated RTX 5000.


hi Karl-Heinz


the mex file we provided in the nightly-build was built for octave 4.x. if you have a newer octave, the required shared library file may not exist.

the best solution is to rebuild mmc.mex file on your system, as you did. I assume you installed mkoctfile command via apt-get install liboctave-dev, and then go to mmc/src, typed

make oct


if you don't want to recompile, a workaround is to create a symbolic link

for example, this is on Ubuntu 20.04 with Octave 5.2, to run the nightly-built mex file, you can create a symbolic link using the below command

sudo ln -s /usr/lib/x86_64-linux-gnu/liboctinterp.so.7 /usr/lib/x86_64-linux-gnu/liboctinterp.so.4


please run

ls /usr/lib/x86_64-linux-gnu/liboctinterp.so*

or

locate liboctinterp.so


and see what library version you have for octave 6.2, and use the actual version number instead of "*.7".


Qianqian


I created the path to mmclab with addpath to this directory 

    <myhomedir>/MCXStudio/MATLAB/mmclab

When running the sample files I got this error message:

error: <myhomedir>/MCXStudio/MATLAB/mmclab/mmc.mex: failed to load: liboctinterp.so.4: Cannot open the shared object file: File or directory not found

I could not find any hint in the internet in which Debian package liboctinterp.so.4 could be included. 

For this reason I downloaded the source code of mmclab and compiled it after installing the following additional packages:

    sudo apt install opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev

Both the compile process and the execution of the examples are now done without errors. 

Perhaps this post will help if anyone encounters the same error message. 

Could it be that the pre-compiled mmc.mex file does not work with Octave? If so, then a note in the readme would be helpful.

Many greetings

Karl-Heinz 
--
You received this message because you are subscribed to the Google Groups "mcx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mcx-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mcx-users/705fa97d-cd6b-47e7-9566-a743f990782dn%40googlegroups.com.

Karl-Heinz

unread,
Aug 15, 2021, 12:01:19 PM8/15/21
to mcx-users
Dear Prof. Fang,

it is always impressive with what speed and precision you answer our questions. Thank you very much for this exceptional service. Thank you also for the impressive software you develop.

It is exactly as you have analyzed it. 

Currently on the new Debian distribution Bullseye the library is available in version 8. (At least it is visible as version 8, the Debian package website https://packages.debian.org/bullseye/ still lists version 6 as part of the bullseye distribution). 

/usr/lib/x86_64-linux-gnu/liboctinterp.so
/usr/lib/x86_64-linux-gnu/liboctinterp.so.8.0.1
/usr/lib/x86_64-linux-gnu/liboctinterp.so.8 

Interestingly, "locate liboctinterp.so" points to version 6.

/usr/lib/x86_64-linux-gnu/liboctinterp.so.6

Sincerely

Karl-Heinz

Qianqian Fang

unread,
Aug 15, 2021, 12:26:23 PM8/15/21
to mcx-...@googlegroups.com, Karl-Heinz
On 8/15/21 12:01 PM, Karl-Heinz wrote:
Dear Prof. Fang,

it is always impressive with what speed and precision you answer our questions. Thank you very much for this exceptional service. Thank you also for the impressive software you develop.

It is exactly as you have analyzed it. 

Currently on the new Debian distribution Bullseye the library is available in version 8. (At least it is visible as version 8, the Debian package website https://packages.debian.org/bullseye/ still lists version 6 as part of the bullseye distribution).


you are welcome. glad to hear your experience of mmc on debian bullseye (released yesterday), you are fast!


ultimately I would like to push these packages into debian. I spent part of my Summer 2020 for packaging a number of my toolboxes for Debian, see

https://qa.debian.org/developer.php?login=fan...@gmail.com


some of them made to Bullseye, such as jsonlab/zmat/jnifti, and two python readers/writers for JSON/JData (.jdat file output by MCX) files, so if you want to install those, you can simply apt-get (also available on Ubuntu 21.04).

however, iso2mesh did not make it because of a bug before freezing

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985524


I also started mcx debian package, but did not finish

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=970652
https://salsa.debian.org/fangq/mcx


hopefully will find some time and get both mcx/mmc into Debian's next release.


Qianqian


Reply all
Reply to author
Forward
0 new messages