Most projections for high-performance, massively parallel processors (MPPs) include deep and complex memory hierarchies. Making efficient use of these systems will require making efficient use of these memory hierarchies, without sacrificing the advancements that have been made in algorithms. Efficient programming models were developed for vector computers, particularly the memory system structure, providing high performance. Where are the programming models for MPPs? Much effort has gone into automatic programming systems, such as parallelizing compilers for existing languages and new languages expressing concurrency. Unfortunately, these have rarely led to programs that can achieve near-peak performance. In this paper, we review the issues and some current approaches and suggest some new memory-oriented programming models. The development of these models is essential, because, just as with vector computing, the programming model can strongly influence the new algorithms that are needed for high-performance applications on massively parallel processors.