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