Stream programming is currently being pushed as a way to expose concurrency and separate communication from computation. Since there are many stream languages and potential stream execution engines, this paper propose...
详细信息
ISBN:
(纸本)0769522297
Stream programming is currently being pushed as a way to expose concurrency and separate communication from computation. Since there are many stream languages and potential stream execution engines, this paper proposes an abstract machine model that captures the essential characteristics of stream architectures, the Stream Virtual Machine (SVM). the goal of the SVM is to improve interoperability;allow developpment of common compilation tools and reason about stream program performance. the SVM contains control processors, slave kernel processors, and slave DMA units. Is is presented along withthe compilation process that takes a stream program down to the SVM and finally down to machine binary. To extract the parameters for our SVM model, we use micro-kernels to characterize two graphics processors and a stream engine, Imagine. the results are encouraging;the model estimates the performance of the target machines with high accuracy.
the semantics of Java rnultithreading dictates all possible behaviors that a multithreaded Java program can exhibit on any platform. this is called the Java Memory Model (JMM) and describes the allowed reorderings amo...
详细信息
ISBN:
(纸本)0769522297
the semantics of Java rnultithreading dictates all possible behaviors that a multithreaded Java program can exhibit on any platform. this is called the Java Memory Model (JMM) and describes the allowed reorderings among the memory operations in a thread. However, multiprocessor platforms traditionally have memory consistency models of their own. In this paper;we study the interaction between the JMM and the multiprocessor memory consistency models. In particular;memory barriers may have to be inserted to ensure that the multiprocessor execution of a multithreaded Java program respects the JMM. We study the impact of these additional memory barriers on program performance. Our experimental results indicate that the performance gain achieved by relaxed hardware memory consistency models far exceeds the performance degradation due to the introduction of JMM.
the performance of locking is critical, as programming languages with built-in thread support are coming into wide use. Many techniques for optimizing Java monitors have been proposed, based on the observation that th...
详细信息
ISBN:
(纸本)0769522297
the performance of locking is critical, as programming languages with built-in thread support are coming into wide use. Many techniques for optimizing Java monitors have been proposed, based on the observation that the locks are rarely contended for in many applications. However, the problem of the performance degradation in SMP environments caused by necessary serializations of the processors' execution has not been addressed for shared objects. We propose a new algorithm for this problem. It uses simple instructions to acquire the lock by exploiting the owner locality, for objects even if the ownership has migrated among the threads. Our algorithm is particularly effective for SMP environments because we can remove the overhead of the serialization caused by complex atomic operations for uncontended locks by allowing the lock operation and the code protected by the lock to be executed in parallel. We verified the safety of the algorithm by using a software tool, Spit. the experimental results of our bench-marking on an SMP machine using Intel Xeon processors showed that our algorithm can significantly improve the performance by 83% on average compared to the case using a complex atomic instruction.
Summary form only given. Willingness to customize microprocessors for specific applications has uniquely positioned IBM as the microprocessor supplier of choice to the games market. An identical approach of customizin...
详细信息
Summary form only given. Willingness to customize microprocessors for specific applications has uniquely positioned IBM as the microprocessor supplier of choice to the games market. An identical approach of customizing microprocessors for network processing provides tremendous processing power and gives much more flexible networking functions support compared to what is offered by classical network processors with hardware co-processors. Evolution of the gaming industry is driving a need for microprocessors whose structure supports both gaming and networking functions with a very high level of programming flexibility with a consistent programming model, as well as the tremendous performance required by on-line gaming on networking
By allowing the programmer to write code that can generate code at run-time, meta-programming offers a powerful approach to program construction. For instance, meta-programming can often be employed to enhance program...
详细信息
ISBN:
(纸本)9781581137569
By allowing the programmer to write code that can generate code at run-time, meta-programming offers a powerful approach to program construction. For instance, meta-programming can often be employed to enhance program efficiency and facilitate the construction of generic programs. However, meta-programming, especially in an untyped setting, is notoriously error-prone. In this paper, we aim at making meta-programming less error-prone by providing a type system to facilitate the construction of correct meta-programs. We first introduce some code constructors for constructing typeful code representation in which program variables are replaced with deBruijn indices, and then formally demonstrate how such typeful code representation can be used to support meta-programming. the main contribution of the paper lies in recognition and then formalization of a novel approach to typed meta-programmingthat is practical, general and flexible.
A three-year study collected information bearing on the question of whether studying mathematics improves programming skills. An analysis of the data revealed significant differences in the programming effectiveness o...
详细信息
ISBN:
(纸本)9781581137569
A three-year study collected information bearing on the question of whether studying mathematics improves programming skills. An analysis of the data revealed significant differences in the programming effectiveness of two populations of students: (1) those who studied discrete mathematics through examples focused on reasoning about software and (2) those who studied the same mathematical topics illustrated with more traditional examples. functionalprogramming played a central role in the study because it provides a straightforward framework for the presentation of concepts such as predicate logic and proof by induction. Such topics can be covered in depth, staying almost entirely within the context of reasoning about software. the intricate complexities in logic that mutable variables carry withthem need not arise, early on, to confuse novices struggling to understand new ideas. In addition, because functional languages provide useful and compact ways to express mathematical concepts, and because the choice of notation in mathematics courses is often at the discretion of the instructor (in contrast to the notational restrictions often fiercely guarded by the faculty in programming courses), discrete mathematics courses, as they are found in most computer science programs, provide an easy opportunity to enhance the education of students by exposing them to functionalprogramming concepts.
To improve the quality of type error messages in functionalprogramming languages, we propose four techniques which influence the behaviour of constraint-based type inference processes. these techniques take the form ...
详细信息
ISBN:
(纸本)9781581137569
To improve the quality of type error messages in functionalprogramming languages, we propose four techniques which influence the behaviour of constraint-based type inference processes. these techniques take the form of externally supplied type inference directives, precluding the need to make any changes to the compiler. A second advantage is that the directives are automatically checked for soundness with respect to the underlying type system. We show how the techniques can be used to improve the type error messages reported for a combinator library. More specifically, how they can help to generate error messages which are conceptually closer to the domain for which the library was developed. the techniques have all been incorporated in the Helium compiler, which implements a large subset of Haskell.
To the extent that modular reasoning forms the conceptual foundation for good software engineering principles, the failure of modular reasoning in current aspect-oriented programming (AOP) systems is cause for concern...
详细信息
To the extent that modular reasoning forms the conceptual foundation for good software engineering principles, the failure of modular reasoning in current aspect-oriented programming (AOP) systems is cause for concern. this paper discusses a reconceptualization of AOP that will allow an eventual reconciliation between AOP and modular reasoning.
functional Reactive programming (FRP) is a framework for reactive programming in a functional setting. FRP has been applied to a number of domains, such as graphical animation, graphical user interfaces, robotics, and...
详细信息
ISBN:
(纸本)9781581137569
functional Reactive programming (FRP) is a framework for reactive programming in a functional setting. FRP has been applied to a number of domains, such as graphical animation, graphical user interfaces, robotics, and computer vision. Recently, we have been interested in applying FRP-like principles to hybrid modeling and simulation of physical systems. As a step in that direction, we have extended an existing FRP implementation, Yampa, in two new ways that make it possible to express certain models in a very natural way, and reduces the amount of work needed to put modeling equations into a suitable form for simulation. First, we have added Dirac impulses that allow certain types of discontinuities to be handled in an easy yet rigorous manner. Second, we have adapted automatic differentiation to the setting of Yampa, and generalized it to work correctly with Dirac impulses. this allows derivatives of piecewise continuous signals to be well-defined at all points. this paper reviews the basic ideas behind automatic differentiation, in particular Jerzy Karczmarczuk's elegant version for a lazy functional language with overloading, and then considers the integration with Yampa and the addition of Dirac impulses.
this paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from its user-friendly external language to its compact, well-defined core language. ...
详细信息
ISBN:
(纸本)9781581137569
this paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from its user-friendly external language to its compact, well-defined core language. We argue that our framework is an effective way to give semantics to aspect-oriented programming languages in general because the translation eliminates shallow syntactic differences between related constructs and permits definition of a clean, easy-to-understand, and easy-to-reason- about core language. the core language extends the simply-typed lambda calculus with two central new abstractions: explicitly labeled program points and first-class advice. the labels serve both to trigger advice and to mark continuations that the advice may return to. these constructs are defined orthogonally to the other features of the language and we show that our abstractions can be used in bothfunctional and object-oriented contexts. the labels are well-scoped and the language as a whole is well-typed. Consequently, programmers can use lexical scoping in the standard way to prevent aspects from interfering with local program invariants.
暂无评论