I haven’t posted anything in a while…. I guess I’m just keeping myself busy. One of the things I’ve been working on is learning to use LabVIEW.
Genetic Algorithms caught my eye when I was younger and I decided that I would see what it would take to implement a simple genetic algorithm in LabVIEW. What I learned is that for simple things, LabVIEW is fast and easy. For bigger things, you have to understand the same issues as you do in C. The difference is that all these issues are side effects.
Memory was the biggest problem I had in this project. Once I got over the concept of data flow programming things went together really fast. Then I tried to run it with a large dataset of 2000 genes. After a few hours and a few hundred generations, LabVIEW blew up with a single error box telling me I was out of memory. Great. Where did it happen? But, like the wonderful Mac that LabVIEW grew up on, it wasn’t going to tell me where, it just apologized and died a quick death.
After a little searching, I learned that Build Array created copies and instead I should use Insert Into Array because it didn’t. This helped, but it still ran out of memory. Next I found that moving sections of my diagram to sub-VIs helped. Memory was only freed when a LabVIEW exits a VI. Nice to know.
I enjoy using LabVIEW. It is fast, it is easy. But like all programming languages, it’s only as good as the programmer.
labview programming