Use protocol 2. Also, since it looks like you will be dealing with homogeneous
arrays of numerical data, you should think about using numpy to store that data.
With protocol 2, cPickle only adds 129 bytes per array no matter the size.
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco