Hi again,
I'd love to delve into static_cast<DSL_ciDefinition *>(nodeDef)->CiToCpt() because this method throws an interop expection/freezes when I use SMILE in my .NET project. This happens only when a Noisy-MAX node has a big number of parents (say >= 25). I know that SMILE is not open source but is it possible to investigate this problem? At first I thought it can be a problem with my own code but everything works perfectly until I reach a certain parents limit. it would be great if I could see the source code of this method. Maybe I could provide some help.
Thanks in advance!
CiToCPT()
-
- Site Admin
- Posts: 1417
- Joined: Mon Nov 26, 2007 5:51 pm
Re: CiToCPT()
CPT for 25 parents will need at least (2^25)*2*8 = 2^29 contiguous bytes (assuming binary nodes). It's quite likely that your application doesn't have 512 megabytes address space available in one chunk, even if physical memory is there.This happens only when a Noisy-MAX node has a big number of parents (say >= 25).
Re: CiToCPT()
That sounds like a serious problem. :/ I don't fell like complaining but it would be great if SMILE optimized internal CPT storage of Noisy-ORs. I guess that the problem isn't related to .NET wrapper since the wrapper itself uses unmanaged code anyway.shooltz wrote:It's quite likely that your application doesn't have 512 megabytes address space available in one chunk, even if physical memory is there.
Is there anything I can to about it? If that's the cause it's simply impossible to deal with such memory-absorbing nodes using SMILE/GeNIe. The only solution is on-fly parent divorcing but what I want to get is just an 'untrackable network' for further optimizations.
Thanks
Re: CiToCPT()
Ok, fortunately the problem IS related to the wrapper itself (actually both .NET and Java). I can fix this if you like but for more details please consult Adam.