The main goal of this project is to investigate multiprogramming based task scheduling in multiprocessor environments. This is based on the belief that, like uniprocessors, multicomputers have to be multiprogrammed in order to achieve a performance to cost ratio. Existing policies for resource sharing in a multicomputer among multiple applications are static. This project will examine issues that arise in the design and implementation of alternate job scheduling policies that have a better performance than static policies. As a first step, the workload on multicomputers will be characterized through experimental measurement and analysis. The insights gained from this study will be used in the design and implementation of adaptive and dynamic partitioning policies. In particular, implementation issues involved in making adaptive and dynamic partitioning transparent to the applications programmer will be examined. As a part of the research, a run time system that provides support for application-directed dynamic reconfiguration will be implemented. Another goal of the research is to examine the impact of the introduction of virtual memory in newer multicomputer systems on the performance trade-offs between various scheduling policies. The working set sizes and memory reference patterns of several scientific applications will be determined through simulation and analysis. This information will be used in a simulation based study that examines the interactions between processor allocation, node scheduling and memory management in multicomputers that support virtual memory on each node of the system. ***