Thanks, np.lib.format.open_memmap() works great! With prediction procs
using minimal sys memory, I can get twice as many on GPU, with fewer
optimization warnings. 

Why even have the number of records in the header? Shouldn't record size
plus system-reported/growable file size be enough?  

I'd love to have a shared-mem analog for smaller-scale data; now I load
data and fork to emulate that effect.  

My file sizes will exceed memory, so I'm hoping to get the most out of
memmap. Will this in-loop assignment to predsum work to avoid loading
all to memory? 

    predsum = np.lib.format.open_memmap(outfile, mode='w+',
shape=(ids_sq,), dtype=np.float32) 

    for i in range(len(IN_FILES)): 

        pred = numpy.lib.format.open_memmap(IN_FILES[i]) 

        predsum = np.add(predsum, pred) ################# <- 

        del pred

    del predsum 

--

Phobrain.com 

On 2022-08-23 18:02, Robert Kern wrote:

> On Tue, Aug 23, 2022 at 8:47 PM <bross_phobr...@sonic.net> wrote: 
> 
>> I want to calc multiple ndarrays at once and lack memory, so want to write 
>> in chunks (here sized to GPU batch capacity). It seems there should be an 
>> interface to write the header, then write a number of elements cyclically, 
>> then add any closing rubric and close the file. 
>> 
>> Is it as simple as lib.format.write_array_header_2_0(fp, d) 
>> then writing multiple shape(N,) arrays of float by fp.write(item.tobytes())?
> 
> `item.tofile(fp)` is more efficient, but yes, that's the basic scheme. There 
> is no footer after the data. 
> 
> The alternative is to use `np.lib.format.open_memmap(filename, mode='w+', 
> dtype=dtype, shape=shape)`, then assign slices sequentially to the returned 
> memory-mapped array. A memory-mapped array is usually going to be friendlier 
> to whatever memory limits you are running into than a nominally "in-memory" 
> array.
> -- 
> Robert Kern 
> _______________________________________________
> NumPy-Discussion mailing list -- numpy-discussion@python.org
> To unsubscribe send an email to numpy-discussion-le...@python.org
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: bross_phobr...@sonic.net
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to