Skip to content

Calls to Boost interprocess / big.matrix

3 messages · Jay Emerson, Scott Ritchie

#
You beat me to the draw.  I would have guessed this might have been the
case (but here it would have been more of a guess).  Some things are best
tested experimentally.

We were not able to get around this.  To test further that this is a
filesystem problem I do recommend that -- if possible -- you test on a
standard ext3 or NFS partition.

Jay
On Fri, May 20, 2016 at 7:52 AM, Scott Ritchie <sritchie73 at gmail.com> wrote:

            

  
    
#
Thanks Jay,

I'll coordinate with the cluster admin to try to test this and see if we
can solve the issue.
On 20 May 2016 at 23:22, Jay Emerson <jayemerson at gmail.com> wrote:

            

  
  
1 day later
#
Hi Jay,

The cluster administrator has also suggested the problem is due to mmap()
on
that particular filesystem:

We'll need to do a lot more digging, but I believe GPFS has to do a lot
So I'd strongly suggest avoiding mmap() for file I/O anyway, but I will

keep digging in case that's not under your control.


It looks like the Boost interprocess library is using mmap() for file I/O,
I don't believe
this is something under your control in the bigmemory package?

I have contacted the Boost mailing list to let them know this is an issue
on parallel
file systems, and to ask if their is a simple fix, i.e. a compilation flag
that changes
how Boost interprocess performs file I/O.

If not I will need to rewrite my parallel loop in C++ so that the function
is
multi-threaded rather than multi-process, to avoid use of bigmemory and
Boost
interprocess. Preliminary testing shows this solves my issue, but I'd
obviously
like to avoid rewriting huge sections of my package.

Kind regards,
On 21 May 2016 at 15:48, Scott Ritchie <sritchie73 at gmail.com> wrote: