Methods for optimizing multcore processing in ArcGIS
Here is an example of a multicore arcpy script. The process is very CPU-intensive so it scales very well: Porting Avenue code for Producing Building Shadows to ArcPy/Python for ArcGIS Desktop?
Some more general info in this answer: Can concurrent processes be run in a single model?
In my experience the biggest problem is managing stability. If you do six weeks of processing in a single night you will also have six weeks of inexplicable errors and bugs.
An alternative approach is to develop standalone scripts that can run independently and fail without causing problems:
- Split the data into chunks that a single core can process in <20 minutes (tasks).
- Build a standalone Arcpy script that can process a single task and is as simple as possible (worker).
- Develop a mechanism to run tasks. Lots of pre-existing python solutions exist. Alternatively you can make your own with a simple queue.
- Write some code to verify that tasks have been completed. This could be as simple as checking that an output file has been written.
- Merge data back together.