To deliver the high performance required for large scale applications, the next generation of supercomputers will be organized as massively large networks of processors. Before such large networks can be effectively used, a number of questions must be addressed. How will parallel programs be written, and how will high-level languages be efficiently supported on network architectures? What is the most efficient way to perform fast local, and global, communication? The goals of this project include the development of algorithmic techniques to efficiently support high-level languages on large network architectures. Algorithms to reduce communication costs are critical to efficient compilation, and also influence the way large networks are designed and programmed. Based on these algorithms, the research is aimed at the design of massively parallel networks and languages geared for large scale applications.