Crystal and the Crystal Run-time System will make the use of large-scale multiprocessors practical for real-world problems. Crystal is a very-high-level language in which a user program resembles a concise, formal mathematical description. Crystal is easy to use yet has the modularity and freedom from side effects that is critical for the automatic detection of parallelism. Messages need not be passed explicitly, and the Crystal compiler automatically does task decomposition. When the pattern of computations in a section of the program is known at compile time, a direct mapping of the algorithm in question may be performed. When the pattern of computations is fully determined only at runtime, the compiler constructs a symbolic representation of the data dependencies. The runtime system will use this symbolic representation to aggregate the required computations. When enough regularity is present it will create a parameterized mapping scheme. Using knowledge of target machine characteristics, the runtime system will choose the appropriate instance of the mapping scheme and dynamically map the computations onto the target architecture.