@mastersthesis{brown:2012,
   author = {Cody R. Brown},
   title = {Supporting a process-oriented model in {MPI} through fine-grain mapping},
   school = {The University of British Columbia},
   year = 2012,
   month = apr,
   address = {Vancouver},
   url = {http://hdl.handle.net/2429/42152},
   keywords = {communicating sequential processes;component models;distributed computing;exposing parallelism;FG-MPI;fine-grain;fine-grain programming models;function-level programming;high performance computing;Kahn process network;message passing interface;MPI;parallel computation;parallel programming;parallel programming models;Pilot library;process-oriented;process-oriented models;programming languages;programming methodology;programming models;unit of parallelism;},
   abstract = {The need for intuitive parallel programming designs has grown with the rise of modern many-core processors. Process-oriented models promote high scalability by using small isolated components that interact to produce complex applications. Such models are intuitive by forcing scalability to be a design requirement. The popular MPI messaging library has not exploited fine-grain models due to its coarse-grain implementations. The binding of processes often uses a coarse-grain management system, which is done by sequentially assigning ranks to a list of machines. This may be suitable for coarse-grain applications, but inadequate for fine-grain applications with large process grouping demands; a more flexible, manageable and scalability specification is necessary to support a process-oriented model. The use of FG-MPI exposes additional concurrency through a new layer of mapping by providing smaller units of parallelism: a desirable feature in function-level programming. This collocation layer requires a fine-grain mapping mechanism to optimize communication. A graph specification is proposed that allows communication patterns, collocation of MPI processes, and binding optimizations to be extracted from such a structure. The work presented extends and evaluates MPI to a fine-grain process-oriented model and provides a graphical mapping and binding specification. Evaluation of function-level applications is done through Pilot, a CSP-like library for MPI. The smallest unit of parallelism in this architecture is evaluated and shows that small communication overheads occur when comparing hundreds of large tasks to hundreds of thousands of fine-grain tasks. The graph representation is based on Kahn Process Networks. This provides a simplistic and intuitive model to represent and organize large function-level applications. A tool is developed that reads in a graph structure and performs operations such as auto-constructing wiring diagram code, determining optimal collocated maps based on communication, and producing a binding specification. This tool is modular and extensible to other graph related operations.},
}
