1. A method for high speed wear leveling programming in a Flash memory system having a plurality Flash memory devices, comprising: i) receiving a data file having k pages, k being an integer greater than 0; ii) selecting a programming profile corresponding to the size of k and configuration parameters of the Flash memory system by calculating a ceiling function of z=k/i, the configuration parameters including j Flash memory devices where each of the j Flash memory devices have i pages per block, where j and i are integer values greater than 0; iii) programming at least one of the k pages of the data file in each of at least two of the plurality of Flash memory devices in accordance with the programming profile including a multiple file structure when z is greater than j, the multiple file structure including storing m units of j*i pages of the data file in j Flash memory devices, and storing k−(m*(j*i)) pages of the data file in z of j Flash memory devices when z is less than or equal to j, where m is an integer value greater than 0.