[Numpy-discussion] insanely slow writing to memory mapped array

Mathew Yeates myeates at jpl.nasa.gov
Wed Nov 29 20:52:40 EST 2006


whoa. I just found out that A=A.transpose() does nothing but change A's 
flags from C_CONTIGUOUS to F_CONTIGUOUS!!

Okay, so heres the question ...... I am reading data into the columns of 
a matrix. In order to speed this up, I want to read values into the rows 
of a matrix and when I am all done, do a transpose. Whats the best way?

Mathew



Mathew Yeates wrote:
> Hmm
> I'm trying to duplicate the behavior with a simple program
> ---------
> import numpy
> datasize=5529000
> numrows=121
>
> fd=open("biggie","w")
> fd.close()
> big=numpy.memmap("biggie",mode="readwrite", 
> shape=(numrows,datasize),dtype=numpy.float32)
>
> c=numpy.ones(shape=(datasize,),dtype=numpy.float32)
> for r in range(0,numrows):
>         print r
>         big[r,:] = c
>         c[r] = 2.0
> ---------------------
> but it is fast. Hmmm. Any ideas about where to go from here?
> Mathew
>
>
>
> Robert Kern wrote:
>   
>> Mathew Yeates wrote:
>>   
>>     
>>> Hi
>>>
>>> I have a line in my program that looks like
>>> outarr[1,:] = computed_array
>>> where outarr is a memory mapped file. This takes forever.
>>>
>>> I checked and copying  the data using "cp"  at the command line takes 1 
>>> or 2 seconds. So the problem can't be attributed simply to disk i/o. Is 
>>> it because the elements are being written one at a time? Any ideas on 
>>> how to speed this up?
>>>     
>>>       
>> Memory-mapping is highly platform dependent. What platform are you on? What are
>> the sizes of the arrays? Can you write up a small, self-contained script that
>> demonstrates the issue so we can experiment and try things out on different
>> machines?
>>
>>   
>>     
>
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>   





More information about the NumPy-Discussion mailing list