The focus of this research project is to develop an integrated compiler and run-time system for global data distribution. The goal is for the integrated system to execute large-scale, multi-phase parallel scientific applications more efficiently than can be done with static analysis alone. First, compiler analysis will be developed to divide a program into its component phases as well as pass useful hints to the run-time system about intra-phase behavior, such as the communication pattern. Second, the necessary run-time analysis will be developed to support multi-phase applications and to make use of the compiler information. A framework will be investigated to determine at run time an efficient global data distribution over a reasonable set of possible distributions. This means that a distribution will be determined for each array in each program phase, with possible redistribution between phases, that results in good application performance. Furthermore, if application characteristics change during execution, the distribution will be changed accordingly. The integrated system will be measured on a variety of large-scale, adaptive parallel scientific programs.