bad alloc
I'm using breve 2.7.2 and when running simulations for a long time in Linux without any graphical display, I tend to get this error:
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc
/u/schrum2/breve_2.7.2/bin/breve: line 15: 19691 Aborted
(core dumped) $DIRECTORY/breve_ex $*
This error occurred while running breve through Condor. Is this a problem with breve, my code, or maybe with running breve using Condor?
-Jacob

out of memory a possibility?
The only time I've come across bad-alloc problems with breve is in an out-of-memory kind of situation. Even if you have plenty of memory and swap-space available, breve is a 32-bit app, so it's possible that you're hitting the 4-GB limit. Are you using heavy-duty physical simulation (hundreds of objects interacting with each other) or any other feature that might be associated with huge memory use?
- jon
I'm not doing heavy duty
I'm not doing heavy duty physical simulation, but I am doing evolutionary computation with a fairly large population. Each individual uses a neural network for control, and these networks have a representation that can grow arbitrarily large. Still, there are some ways that I might be able to make my memory use more efficient. I'll take a closer look and see if it makes a difference. Thanks for the quick response.
-Jacob
Hi schrum2, can you post
Hi schrum2, can you post some details of the experiment you have made? I'm very interested to see any uses of neural nets as physical controllers in breve.
The neuroevolution algorithm
The neuroevolution algorithm I'm using steals a lot of ideas from NEAT, Neuro-Evolution of Augmenting Topologies. You can find more info http://nn.cs.utexas.edu and http://www.cs.ucf.edu/~kstanley/neat.html. My control scheme is similar to the control scheme used in the NERO video game, which is also mentioned on the first of the two links above. Feel free to ask more questions if the above links aren't enough to inspire.
-Jacob
Implementation
Hi Jacob,
Which NEAT implementation are you using? Or did you code your own?
[]'s
Cesar
It's my own implementation
It's my own implementation written in steve, though it's sort of intermixed with NSGA2, a multi-objective optimization algorithm developed by Kalyanmoy Deb.
The C++ implementation of NEAT is the original version. Real time NEAT could also be useful to people using breve.
-Jacob
This happens in windows as well.
Command line breve 2.7.2 always tends to throw bad_alloc after about 2 hours in. This happens in Windows Xp, and Ubuntu 7.04 and 8.04 Beta.
Additionally, the memory usage while breve is running linearly increases with time until reaching the limit (at least with the brevecreatures experiment running); it looks at some point in the program some call to dellocate memory is failing for some reason.
interesting...
Thanks for the note -- this will give me a place to start looking. I'm a little surprised though because I specifically addressed some memory leak issues in breveCreatures for the 2.7 release, so to my knowledge, it should be working well now.
I'll definitely take a look at it nonetheless. You may also be interested in observing your own runs with debugging tools such as valgrind to see if you can track down a memory leak.
- jon