This research project is aimed at developing and analyzing algorithms for supporting high-level parallel programming models. Graph embeddings have been successfully employed to compare different parallel architectures and to map parallel computations into parallel networks. One component of the project is directed towards developing new techniques for graph embeddings. A second component aims to develop and analyze efficient load-balancing algorithms for supporting control-level parallelism at run time. A third component is directed toward evaluating the expressive power of different programming models. The final component is the design of the Fluent machine, a massively parallel system which supports a very high-level instruction set efficiently. The research emphasizes algorithms and embedding techniques that can be rigorously proved efficient.