Font Size: a A A

A parallel programming approach for scientific applications

Posted on:1997-05-19Degree:Ph.DType:Thesis
University:University of HoustonCandidate:Clark, Terry WilliamFull Text:PDF
GTID:2468390014482762Subject:Computer Science
Abstract/Summary:
In the 1980s the development of distributed memory parallel computers using replicated "off-the-shelf" components connected by a network gave computational scientists cost-effective alternatives to vector processing architectures. Scientific applications for the distributed memory computer are suited to the replicated architecture with processors operating on separate portions of the data set. Yet to harness these architectures has proven to be far more challenging than their vector processing predecessors. In an attempt to address the difficulty in engineering scientific applications for massively parallel computers, a variety of paradigms have been developed including parallel programming languages such as High Performance Fortran, standard interfaces such as MPI, and runtime systems such as PARTI. Parallel languages attempt to automate to the extent possible low-level details in decomposing a calculation, mapping it to the hardware, and satisfying the interprocess data dependencies. To automate these operations for many complex scientific applications is not within the grasp of existing compilers. Serial programs, also known as dusty decks, further test a compiler's capabilities.; To address the software engineering problem for parallel scientific programs, we developed the {dollar}IP{dollar}fortran language and compiler. This thesis discusses the design, development and testing of the {dollar}IP{dollar}fortran compiler. {dollar}IP{dollar}fortran grew out of an effort to ease the task of parallelizing complex scientific codes, especially pre-existing ones which are often poorly structured. {dollar}IP{dollar}fortran has been found to be very successful in parallelizing molecular dynamics, quantum dynamics and Brownian dynamics applications, providing a low-level, but machine independent paradigm for performing operations that routinely arise in parallel scientific programming. We discuss the molecular dynamics algorithms in general and in the specific context of {dollar}IP{dollar}fortran and Fortran D, a prototype for the HPF languages. We demonstrate that the complex interplay from high-level details of problem decomposition down to the low-level details in machine mapping are addressable with {dollar}IP{dollar}fortran. Through our experiences in parallelizing some of the molecular dynamics algorithms with Fortran D, we provide guidelines for structuring Fortran programs to facilitate parallelizing them with HPF-like languages.
Keywords/Search Tags:Parallel, Scientific applications, Molecular dynamics, Programming, Fortran, Languages
Related items