Paul, 15.10.2010 23:29:
I have a software written in C/C++ but considering porting most of it to python, as it seems like it's a better choice for decision making portion of the code.
Write a wrapper first.
I'm also thinking about having a 'matlab' like interface for reading, processing, and writing.
Sure, why not. For example, the Sage math system has an interactive console and a web app (the Sage notebook) for that purpose.
In my current C++ code, I would read data into a vector of structs (which contains other simple vectors, strings, and structs) and it can be as large as 500MB to 2GB. The data gets processed (requires random access). The result is then written out. I would like to make modules for python. The problem is that the vector of structs that is very large. First, is it possible to pass such structures around to and from python and C/C++?
Easily. Your best bet is to keep the working code in C++ and write a wrapper in Cython. That will make it easy to write the plain wrapper code, and to give it a pythonic look-and-feel where you want it. It's certainly a lot more fun than digging your way through SWIG and also a lot more powerful.
http://cython.org/
What would be the overhead cost of having a large structure that needs to be passed to and from the C/C++ modules?
Pretty low, but depends on the level of granularity. Calling from Python to C++ for each element may kill you, but a higher level interface will usually work very well and is easy to write in Cython.
Stefan _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor