Explicitly parallel functional languages typically use metalinguistic annotations to provide control over parallel evaluation. In this paper we explore more flexible mechanisms to control when and where an expression ...
详细信息
ISBN:
(纸本)9780897917193
Explicitly parallel functional languages typically use metalinguistic annotations to provide control over parallel evaluation. In this paper we explore more flexible mechanisms to control when and where an expression is evaluated: first-class schedules and processors. We discuss the advantages of using first-class objects over traditional annotation-based systems. In particular, we show how monads can be used to access dynamic system parameters like system load in a referentially transparent manner (up to termination). Finally, we describe an implementation of first-class schedules and virtual processors on a 16-processor Silicon Graphics Challenge multiprocessor.
Optimism is a powerful technique for increasing concurrency. A program can increase concurrency by making an optimistic assumption about its future state, and verifying the assumption in parallel with computations bas...
详细信息
Optimism is a powerful technique for increasing concurrency. A program can increase concurrency by making an optimistic assumption about its future state, and verifying the assumption in parallel with computations based on the optimistic assumption. The use of optimism has been restricted to specialized systems due to the difficulty of writing and understanding optimistic programs. In this paper, we define optimism as any computation that uses rollback. We present a formal semantics for expressing optimism by defining operations for concurrent programs to specify which optimistic computations to roll back, while automating the dependency tracking. We prove that these semantics guarantee some intuitively desirable behaviors. Finally, we describe our programming language implementation based on the semantics.
Stormwatch is a new visualization tool that aids a programmer through four mechanisms including tightly-coupled bidirectionally linked views, interactive filters, animation, and performance slicing. Multiple views pre...
详细信息
Stormwatch is a new visualization tool that aids a programmer through four mechanisms including tightly-coupled bidirectionally linked views, interactive filters, animation, and performance slicing. Multiple views present several aspects of program behavior simultaneously and show the same phenomenon from different perspectives. Real-time linking between views enables a programmer to explore levels of abstraction by changing a view and observing the effect on other views. Interactive filters along with bidirectional linking, can isolate the effects of statements, loops, procedures, or files. Finally, performance slicing captures causality among events.
A system that automated visual representation for a structured program construction is presented, with the C language as model. The system, called VITPE (visual tool for the program edition), uses as prime elements gr...
详细信息
A system that automated visual representation for a structured program construction is presented, with the C language as model. The system, called VITPE (visual tool for the program edition), uses as prime elements graphical representations for the control of prime structures, from which it is possible to represent the structure of any program. VITPE is based on a methodology for the program representation proposed by Glinert (1986, 1987) called BLOX (black boxes). The BLOX features ensure to create free errors programs in control structures level. The parsing for the remainder elements in a diagram is made under an environment oriented in this task.
Supporting source-level performance analysis of programs written in data-parallel languages requires a unique degree of integration between compilers and performance analysis tools. Compilers for languages such as Hig...
详细信息
Supporting source-level performance analysis of programs written in data-parallel languages requires a unique degree of integration between compilers and performance analysis tools. Compilers for languages such as High Performance Fortran infer parallelism and communication from data distribution directives, thus, performance tools cannot meaningfully relate measurements about these key aspects of execution performance to source-level constructs without substantial compiler support. This paper describes an integrated system for performance analysis of data-parallel programs based on the Rice Fortran 77D compiler and the Illinois Pablo performance analysis toolkit. During code generation, the Fortran D compiler records mapping information and semantic analysis results describing the relationship between performance instrumentation and the original source program. An integrated performance analysis system based on the Pablo toolkit uses this information to correlate the program's dynamic behavior with the data parallel source code. The integrated system provides detailed source-level performance feedback to programmers via a pair of graphical interfaces. Our strategy serves as a model for integration of data parallel compilers and performance tools.
When Miller introduced Forum he called it a specification logic, rather than a logic programming language. In this paper we outline those features that create problems in attempting to implement an interpreter for the...
详细信息
The main features of a programming environment, Concurrent Clean, and its semantics based on Term Graph Rewriting were presented. It was found that a lot of new features were added on the experiences with writing comp...
详细信息
The main features of a programming environment, Concurrent Clean, and its semantics based on Term Graph Rewriting were presented. It was found that a lot of new features were added on the experiences with writing complex applications. Many of the added language constructs were similar to those commonly found in other modern lazy functional languages. Clean's unique features made it possible to predefine a sophisticated and efficient I/O library. The results show that the Clean compiler combined fast compilation with the generation of efficient code and is available on an increasing number of platforms such as Mac, PC and Sun.
In this tutorial, some basic ideas will be outlined and exemplified how graph transformation can be employed in specification and programming. In particular, some of the respective achievements of the COMPUGRAPH proje...
详细信息
We show how the Hindley/Milner polymorphic type system can be extended to incorporate overloading and subtyping. Our approach is to attach constraints to quantified types in order to restrict the allowed instantiation...
详细信息
We show how the Hindley/Milner polymorphic type system can be extended to incorporate overloading and subtyping. Our approach is to attach constraints to quantified types in order to restrict the allowed instantiations of type variables. We present an algorithm for inferring principal types and prove its soundness and completeness. We find that it is necessary in practice to simplify the inferred types, and we describe techniques for type simplification that involve shape unification, strongly connected components, transitive reduction, and the monotonicities of type formulas.
Program unification is a technique for source-to-source transformation of code for enhanced execution performance on vector and SIMD architectures. This work focuses on simple examples of program unification to explai...
详细信息
Program unification is a technique for source-to-source transformation of code for enhanced execution performance on vector and SIMD architectures. This work focuses on simple examples of program unification to explain the methodology and demonstrate its promise as a practical technique for improved performance. Using simple examples to explain how unification is done, we outline two experiments in the simulation domain that benefit from unification, namely Monte Carlo and discrete-event simulation. Empirical tests of unified code on a Cray Y-MP multiprocessor show that unification improves execution performance by a factor of roughly 8 for given application. The technique is general in that it can be applied to computation-intensive programs in various data-parallel application domains.
暂无评论