Results 1 -
5 of
5
Ropes: Support for collective operations among distributed threads
- Institute for Computer
, 1995
"... Lightweight threads are becoming increasingly useful in supporting parallelism and asynchronous control structures in applications and language implementations. Recently, systems have been designed and implemented to support interprocessor communication between lightweight threads so that threads ca ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
Lightweight threads are becoming increasingly useful in supporting parallelism and asynchronous control structures in applications and language implementations. Recently, systems have been designed and implemented to support interprocessor communication between lightweight threads so that threads can be exploited in a distributed memory system. Their use, in this setting, has been largely restricted to supporting latency hiding techniques and functional parallelism within a single application. However, to execute data parallel codes independent of other threads in the system, collective operations and relative indexing among threads are required. This paper describes the design of ropes: a scoping mechanism for collective operations and relative indexing among threads. We present the design of ropes in the context of the Chant system, and provide performance results evaluating our initial design decisions. Research supported by the National Aeronautics and Space Administration under NASA Contract No. NASA-
On the Utility of Threads for Data Parallel Programming
"... Threads provide a useful programming model for asynchronous behavior because of their ability to encapsulate units of work that can then be scheduled for execution at runtime, based on the dynamic state of a system. Recently, the threaded model has been applied to the domain of data parallel scienti ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
Threads provide a useful programming model for asynchronous behavior because of their ability to encapsulate units of work that can then be scheduled for execution at runtime, based on the dynamic state of a system. Recently, the threaded model has been applied to the domain of data parallel scientific codes, and initial reports indicate that the threaded model can produce performance gains over non-threaded approaches, primarily through the use of overlapping useful computation with communication latency. However, overlapping computation with communication is possible without the benefit of threads if the communication system supports asynchronous primitives, and this comparison has not been made in previous papers. This paper provides a critical look at the utility of lightweight threads as applied to data parallel scientific programming.
A compiler directed framework for parallel compositional systems
- Department of Computer Science, Virginia Polytechnic Institute and State University
, 2002
"... This research proposes a language independent intra-process framework for object based composition of unmodified code modules. Intuitively, the two major programming models- threads and processes- can be considered as extremes along a sharing axis. Multiple threads through a process share all global ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This research proposes a language independent intra-process framework for object based composition of unmodified code modules. Intuitively, the two major programming models- threads and processes- can be considered as extremes along a sharing axis. Multiple threads through a process share all global state, whereas instances of a process (or independent processes) share no global state. Weaves provide the generalized framework that allows arbitrary (selective) sharing of state between multiple control flows through a process. In the Weaves framework a single process has the same level of complexity as a workstation, with independent “sub-processes”, state sharing and scheduling, all of which is achieved without requiring any modification to existing code bases. Furthermore, the framework allows dynamic instantiation of code modules and control flows through them. In effect, weaves create intra-process modules (similar to objects in OOP) from code written in any language. Applications can be built by instantiating Weaves to form Tapestries of dynamically interacting code. The Weaves paradigm allows objects to be arbitrarily shared – it is a true superset of both processes as well as threads, with code
Weaves: A novel direct code execution interface for parallel high performance scientific codes
, 2002
"... Scientific codes are increasingly being used in compositional settings, especially problem solving environments (PSEs). Typical compositional modeling frameworks require significant buy-in, in the form of commitment to a particular style of programming (e.g., distributed object components). While th ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Scientific codes are increasingly being used in compositional settings, especially problem solving environments (PSEs). Typical compositional modeling frameworks require significant buy-in, in the form of commitment to a particular style of programming (e.g., distributed object components). While this solution is feasible for newer generations of component-based scientific codes, large legacy code bases present a veritable software engineering nightmare. We introduce Weaves – a novel framework that enables modeling, composition, direct code execution, performance characterization, adaptation, and control of unmodified high performance scientific codes. Weaves is an efficient generalized framework for parallel compositional modeling that is a proper superset of the threads and processes models of programming. In this paper, our focus is on the transparent code execution interface enabled by Weaves. We identify design constraints, their impact on implementation alternatives, configuration scenarios, and present results from a prototype implementation on Intel x86 architectures. 1
A Fast PDE Solver Environment for Large-Scale Applications
"... Industrial design, manufacturing, modeling, and simulation typically involve two basic numerical aspects: careful geometrical descriptions and solutions of Partial Differential Equations (PDEs). Often these two are closely intertwined when, for example, the computational formulation leads to a PDE o ..."
Abstract
- Add to MetaCart
Industrial design, manufacturing, modeling, and simulation typically involve two basic numerical aspects: careful geometrical descriptions and solutions of Partial Differential Equations (PDEs). Often these two are closely intertwined when, for example, the computational formulation leads to a PDE on a certain underlying domain or surface. In most cases, it is then required to translate the geometrical description needed for the design or manufacturing into that used in the PDE solver. This is further complicated by the fact that the geometrical descriptions often need be of very high quality to serve as a foundation for manufacturing or computation. As a consequence, a significant part, and in fact often the major one, of solving a numerical PDE is spent on acquiring and setting up the geometry for the underlying problem. The goal of this effort is to develop an integrated environment including fast solvers and interactive visual design components where changes can be made in real tim...

