We currently run on 32bit windows and 32/64but solaris with near future
plans to run on 64bit windows. The product is for a specific client so
we can assume 4gb or more of physical ram.
As for Matlab, the problem is that the library routines for embedding
matlab spawn a separate process and use IPC to talk to it (COM under
windows I believe) so data sent is copied to another address space.
Again, we can assume sufficient RAM for a data set and even if a page is
swapped out to disk, it should be data that's not actively processing so
the impact on performance should be less than processing directly on
disk.
------------------------------
Trevor R.H. Clarke
tclarke@ball.com
Ball Aerospace & Technologies Corp
-----Original Message-----
From: Dave Korn [mailto:dk@artimi.com]
Sent: Wednesday, August 04, 2004 1:37 PM
To: cygwin@cygwin.com
Subject: RE: question about shared memory in the cygwin daemon
-----Original Message-----
From: cygwin-owner On Behalf Of Clarke, Trevor
Sent: 04 August 2004 17:54
I'm currently developing image processing software which will
use matlab
as a "plugin" for interactive processing. The problem is, matlab, when
called from another program, spawns a separate matlab engine process.
The data we are working with can get very large (4gb+) so we
can't pass
copies of it around. We are looking at using cygwin's shared memory
functionality to get around this on windows (NT derivatives only).
Your data won't even fit into a 32-bit address space, so I don't think
shared memory is going to help you.
Even if you're using an x86-64 platform, you have to bear in mind that
you've got a virtual memory system there. If your data set is 4Gb, and
your
system RAM is < 4Gb, then even mapping it into shared memory between
processes will involve it going out to disk and back when the pagefile
starts swapping.
Is there not a library version of matlab you can link to your
application
and call into from the same process space?
cheers,
DaveK