verne.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
explorer_ has joined #mlpack
explorer_ has quit [Ping timeout: 260 seconds]
mentekid has quit [Ping timeout: 258 seconds]
mentekid has joined #mlpack
raphael29_ has joined #mlpack
mikeling has joined #mlpack
meta_rick has joined #mlpack
meta_rick has quit [Client Quit]
meta_rick has joined #mlpack
meta_rick has quit [Client Quit]
s1998 has joined #mlpack
mikeling has quit [Quit: Connection closed for inactivity]
s1998 has quit [Ping timeout: 260 seconds]
raphael29_ has quit [Quit: Konversation terminated!]
cult- has joined #mlpack
< cult-> hi. i don't get it. i can't run multiple classes together. i can only run one class that's using mlpack, otherwise its segfault or
< cult-> error: Mat::init(): requested size is too large
< cult-> terminate called after throwing an instance of 'std::logic_error'
< rcurtin> it sounds like you probably have some uninitialized variable that is causing Armadillo to try to allocate a matrix that's too large
< rcurtin> you might consider using valgrind to try and find invalid accesses or anything like this
< cult-> thanks, i will look for uninitialized variable. anyway what i am doing is running two mlpack algorithms in different threads and in different classes. if i run only one of them, everything is fine! is your suggestion still stands in that case?
< rcurtin> now my guess is that there is a race condition :)
< rcurtin> I don't know if valgrind will show that to you
< rcurtin> I hate debugging parallel programs :(
< rcurtin> I believe that mlpack should be threadsafe, unless you are using the CLI object
< rcurtin> but if you're writing C++ then it seems unlikely that you would be using the CLI object
< cult-> i did put mutexes in the constructors
< cult-> didnt help
< rcurtin> can you show me what you are doing?
< rcurtin> I can take a quick glance and see if I can see what the error is
< rcurtin> (no guarantees that I will be helpful...)
< cult-> if you will be around a little bit later i will try to make a reproducable example
< cult-> but my main problem is, the two classes are not sharing any variables
< cult-> so the race condition would be in armadillo internals
< rcurtin> yes, maybe there is some underlying armadillo bug, but that seems strange
< rcurtin> a reproducible example would definitely be helpful in figuring out what is going on
< cult-> i am however using armadillo matrixes as memory pointers
< cult-> but they are unique in each class, so not shared.
< rcurtin> yes, the situation certainly seems strange
< rcurtin> I'm leaning towards invalid memory access or race condition or both, but based on what you described it sounds like it might be hard to find!
< cult-> :(
< cult-> if thats the case, assume armadillo internal race condition, what would be an ideal work-around?
< rcurtin> I have no idea, I'd need to see what the actual issue is first
< rcurtin> I think Armadillo is thread-safe, so I am doubtful that the issue lies within Armadillo, but it's definitely a possibility to be investigated
< cult-> in addition to the former error message i also can produce: "error: arma::memory::acquire(): out of memory"
< cult-> (dataset isn't large)
< cult-> i was also able to schedule the two threads so they do their job at different times, didn't help
< cult-> i know i should provide an example but it will be rather sophisticated to get there, so i try everything beforehand.
< cult-> debugging the code it is absolutely some kind of weird behaviour of armadillo
< zoq> Difficult for us to help you without any code to reproduce the error, maybe/hopefully you can find a solution