In this paper, we present an efficient and accurate performance model based program partitioning approach for parallel architectures. We introduce the concept of behavioral edges for capturing the interactions between computation and communication through parametric functions. We present an efficient algorithm to identify behavioral edges, modify costs using the behavioral edges and adapt the schedule to improve schedule length. The program partitioning phase uses the static estimates computed using the behavioral edges and partitioning is iteratively performed using the ordering on PDG based on computed intervals. A significant performance improvement (factor of 10 in many cases) is demonstrated by using our framework.