< Back to IRCAM Forum

OMCS 1.3 - Stack Overflow

Hi there,

Coming to grips with the OMCS Library. I know that it will be an invaluable tool for the way I want to use OM in my pre-compositional phase. However, a slight issue. I seem to frequently and very easily be running into a stack overflow error.

I’ve done some searching and came across this thread which suggested removing some files in the >sources folder for OMCS, but the library has been updated since then and the fix did not work even after trying it. Potential Fix Here

I’ve constructed a fairly simple patch that works up until a certain value is specified. This is all with the :once tag for the but the issue persists (obviously) when requesting 2 or 3 - the idea of :all is completely out of the question!

Additionally, some of the tutorials (n-queens tutorial, pascal triangle) throw a stack overflow error when trying to evaluate the engine using the default patch settings.

Could those of you on mac or linux give this a go and see if the issue persists? If I’m being a complete dingus and this is exactly how the engine works - please set me straight! Any recommended fixes so I can venture forth and make use of the OMCS library?

GEN Summing Sequence.omp (14.2 KB)

immer dankbar,

Austin

Dear Austin,

Yes you are right here. The problem comes from the compiled sources. Using om7 which is compiled with LW8 we need to recompile the sources (that’s what i did).
Here is the latest version (git) with compiled sources for Linux and Windows:
OMCS.zip (587.5 KB)

This will work.
(mac version coming soon)

Best
K

Dear Austin

A new version (1.4) has been released compiled for all platforms here:

Best
K

2 Likes

What a quick turnaround, thank you Karim!

Upon testing the new 1.4 release on the example patches they work as one would expect. On my provided patch with the above parameters I am able to check for :all solutions which will have the engine run with no stack overflow errors.

Is there an upper limit to the search capacity of the engine? For instance, does it have a set period where it will time-out due to memory usage or size?

I gave it quite a large problem to solve and was given this as the result in the listener window;

User time    =  0:02:47.171
System time  =        4.468
Elapsed time =  0:02:49.020
Allocation   = 14131266664 bytes
0 Page faults
GC time      =       21.640

Can you help me to understand how the “Allocation” works? Is this the total memory used to compute the search?

I appreciate your time and your work! :relieved:

Dear Austin,

Sorry cannot really help you out with this one, since this is the internal memory allocation for the engine’s computing. GC refers to the garbage collecting i believe, so this is some memory allocation exchange for the solver.

However to have an idea how this works, you can take a look at the author’s documentation (p. 43):

It is old but still valid.

Best
K