question about shared memory in the cygwin daemon

Reini Urban rurban@x-ray.at
Thu Aug 5 11:23:00 GMT 2004


Clarke, Trevor schrieb:
> 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.

COM!
Then the matlab COM server must be run inproc to be able share memory 
from the same address space. COM marshalling detects that and does 
nothing. Otherwise you'll loose. Looks at the various COM books which 
exist online.
   "Inside OLE 2" by Craig Brockschmidt is a good tip:
   http://msdn.microsoft.com/library/books/inole/S10AA.HTM

This has nothing to do with cygwin, normal microsoft windows API calls 
will succeed.

> 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
-- 
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list