Heterogeneity in computing systems has been driven by, among others, one or more of the following factors: need for better performance (e.g. in multi-core chips), applications' requirements (e.g. in digital proces...
详细信息
Despite its simplicity, the size-change termination principle, presented by Lee, Jones and Ben-Amram in [LJB01], is surprisingly strong and is able to show termination for a large class of programs. A significant limi...
详细信息
Aspect-Oriented programming (AOP) is a methodology that provides new modularization of software systems by dealing explicitly with separation of concerns in software development. AspectJ, a language designed to suppor...
详细信息
ISBN:
(纸本)159593491X
Aspect-Oriented programming (AOP) is a methodology that provides new modularization of software systems by dealing explicitly with separation of concerns in software development. AspectJ, a language designed to support AOP uses abstractions like pointcuts, advice, and aspects to achieve AOP's primary functionality. Pointcuts are constructs modeled using expressions that identify events during the execution of a program called join points. It is likely that developers tend to write expressions with incorrect strength thereby selecting additional events than intended to or leaving out necessary events. This causes aspects, the set cross-cutting concerns, to fail. Our framework automatically tests pointcuts to identify their strength and determines variants of the expression with different strengths which the developer can inspect to choose an expression with the correct strength. The framework selects and ranks the list of variants based on a similarity measure. The framework eases the task for developers to inspect variants that resemble closely to the original expression.
Correct handling of concurrently accessed external resources is a demanding problem in programming. The standard approaches rely on database transactions or concurrency mechanisms like locks. The paper considers two s...
详细信息
For the past four years, IBM has participated in DARPA's High Productivity Computing systems (HPCS) program, competing with other contestants in ground-breaking research for peta-scale systems aimed at changing th...
详细信息
ISBN:
(纸本)0769526365
For the past four years, IBM has participated in DARPA's High Productivity Computing systems (HPCS) program, competing with other contestants in ground-breaking research for peta-scale systems aimed at changing the status quo in high end computing. The HPCS program is unique in that it states productivity as a broader definition of the system value than just performance. Commercial viability is another goal, meant to add realism and produce usable systems at the end of the program with productivity and performance goals that well exceed the projected improvements using today's technology. This unprecedented mix adds interesting and challenging constraints on the research program, and the traditional ways of approaching the problem do not apply. This talk will give an overview of the program as conducted in IBM, including a description of many technologies that were investigated and considered. The talk addresses also the challenges of running projects of this kind, and gives a forward looking statement about the future of the program and its projected impact on the industry and the academic communities.
Communication and transportation network topologies routinely change due to link failures and link recovery or due to road construction and blockage. Therefore, the graphs representing these networks are dynamic in na...
详细信息
ISBN:
(纸本)1595933158
Communication and transportation network topologies routinely change due to link failures and link recovery or due to road construction and blockage. Therefore, the graphs representing these networks are dynamic in nature, i.e., they evolve over time due to edge insertion or deletion. To facilitate computation of shortest paths in dynamic graphs, this paper proposes an object-based software concept with a flexible, incremental interface and outlines its formal specification of behavior. Using this interface, a caller can switch back and forth between the edge insertion and shortest paths computation phases, adding edges, one at a time. Alternative components that implement the interface might amortize and optimize computation of shortest paths in changing graphs and provide interesting performance trade-offs.
Recently, the high-performance computing community has realized that power is a performance-limiting factor. One reason for this is that supercomputing centers have limited power capacity and machines are starting to ...
详细信息
MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a Map function that processes a key/value pair to generate a set of intermediate key/value...
详细信息
ISBN:
(纸本)159593264X
MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a Map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a Reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model. Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines. The MapReduce run-time system takes care of the details of partitioning the input data, scheduling the program's execution across a set of machines, handling machine failures, and managing the required intermachine communication. This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system. Our implementation of MapReduce runs on a large cluster of commodity machines and is highly scalable: a typical MapReduce computation processes many terabytes of data on thousands of machines. Programmers find the system easy to use: thousands of MapReduce programs have been implemented and several thousand thousand MapReduce jobs are executed on Google's clusters every day. In this talk I'll describe the basic programming model, discuss our experience using it in a variety of domains, and talk about the implications of programming models like MapReduce as one paradigm to simplify development of parallel software for multi-core microprocessors.
The significance of programmable technologies to meet the needs of digital home entertainment platform, is discussed. The use of programmable technologies has helped to develop devices having capability to provide dyn...
详细信息
The significance of programmable technologies to meet the needs of digital home entertainment platform, is discussed. The use of programmable technologies has helped to develop devices having capability to provide dynamic video, audio and data from a single device. Hitachi has developed digital video recorder using Blackfin processor to increase the viewing experience of TV watchers. The programmable technology also enabled Hitachi to develop Wooo D series of DVRs that recognize, extract and play highlights from recorded video automatically to eliminate the need for fast forwarding. Toshiba has developed mutichannel audio signal chain powered by the SHARC's processors in HD DVDs which provide high definition audio and video. These DVDs decode multi channel streams in wide array of audio streams to simultaneously decode Dolby Digital Plus streams and convert to backward compatible Dolby Digital streams.
The networking and the polling routines of Apache Portable Runtime (APR) in native-code portability for C/C++ programmers are discussed. Source code is said to be portable if it compiles and runs in several environmen...
详细信息
The networking and the polling routines of Apache Portable Runtime (APR) in native-code portability for C/C++ programmers are discussed. Source code is said to be portable if it compiles and runs in several environments without modification, and applications built on portable code have a potentially wide user base. Native-code portability involves messy preprocessor macros to detect and compensate for OS-specific oddities. TCP socket communication involve steady connections between the two socket endpoints. Datagram-oriented and UDP connections pass data in minute packets, the order and delivery of which may be unreliable. APR's networking routines are more convenient to use than the UNIX-style builtins, where both use data structures to represent connections and address information. The APR's OS neutral networking and polling APIs includes OS neutral abstractions for threading files and even processing handling.
暂无评论