For adaptive distributed applications, the computational complexity associated with each computational region varies continuously and dramatically both in space and time throughout the life cycle of the application execution. Consequently, static scheduling techniques are inefficient for such applications. In this paper, we present an autonomic runtime manager (ARM) that uses the application spatial and temporal characteristics as well as resource status as the main criteria to self optimize the execution of distributed applications at runtime. We applied the ARM system to a wildfire simulation and our experimental results show that the performance of the wildfire simulation has been improved by 45% when compared with a static partitioning algorithm. We also evaluate the performance of ARM using two partitioning strategies: natural regions (NR) approach and a graph partitioning approach.