Abstract. IceCube's simulation production relies largely on dynamic, heterogeneous resources spread around the world. Datasets consist of many thousands of job workflow subsets running in parallel as directed acyclic graphs (DAGs) and using varying resources. IceProd is a set of Python daemons which process job workflow and maintain configuration and status information on jobs before, during, and after processing. IceProd manages a complex workflow of DAGs to distribute jobs across all computing grids and optimize resource usage. IceProd2 is a new version of IceProd with substantial increases in security, reliability, scalability, and ease of use. It is undergoing testing and will be deployed this fall.