64014
Broadway: A Software Architecture for Scientific Computing
Scientific programs rely heavily on software libraries. This paper describes the limitations of this reliance and shows how it degrades software quality. We offer a solution that uses a compiler to automatically optimize library implementations and the application programs that use them. Using examples from the PLAPACK parallel linear algebra library, we present our solution, which includes a simple declarative annotation language that describes certain aspects of a library’s implementation. We also show how our approach can yield simpler scientific programs that are easier to understand, modify and maintain.
15307682
Accommodating polymorphic data decompositions in explicitly parallel programs
Explicitly parallel programs have the potential for greater performance than their implicitly parallel counterparts. However, this benefit can be accompanied by additional programming difficulties. We address one particular problem that has implications for both scalability and portability: the need for programs do accommodate diverse data decompositions. We explain why programs with explicit communication have difficulties in handling changes in data decomposition, and we present a solution to this problem which involves the notions of derivative functions and configuration parameters. We illustrate the technique by using three different data decompositions to solve the Modified Gram-Schmidt method on four parallel machines.<<ETX>>
5795237
The portable parallel implementation of two novel mathematical biology algorithms in ZPL
This paper shows that mathematical models of biological pattern formation are ideally suited to data parallelism. We present two new algorithms, one for simulating the dynamic structure of fibroblasts, and the other for studying the self-organization of motile bacteria. We describe implementations of these algorithms using a high level data parallel language called ZPL, and we give performance results for the Kendall Square Research KSR-2 and the Intel Paragon that include comparisons against sequential Fortran.
7870525
Adaptive History-Based Memory Schedulers
As memory performance becomes increasingly important to overall system performance, the need to carefully schedule memory operations also increases. This paper presents a new approach to memory scheduling that considers the history of recently scheduled operations. This history-based approach provides two conceptual advantages: (1) it allows the scheduler to better reason about the delays associated with its scheduling decisions, and (2) it allows the scheduler to select operations so that they match the program's mixture of Reads and Writes, thereby avoiding certain bottlenecks within the memory controller. We evaluate our solution using a cycle-accurate simulator for the recently announced IBM Power5. When compared with an in-order scheduler, our solution achieves IPC improvements of 10.9% on the NAS benchmarks and 63% on the data-intensive Stream benchmarks. Using microbenchmarks, we illustrate the growing importance of memory scheduling in the context of CMP's, hardware controlled prefetching, and faster CPU speeds.
9009444
A Portable Parallel N-Body Solver
We present parallel solutions for direct and fast n-body solvers written in the ZPL language. We describe the direct solver, compare its performance against a sequential C program, and show performance results for two very different parallel machines; the KSR-2 and the Paragon. We also discuss the implementation of the fast solver in ZPL, including factors pertinent to data movement.
27000155
Towards a Machine-Independent Solution of Sparse Cholesky Factorization
3010311
On the spanning w-wide diameter of the star graph
Let u and v be any two distinct nodes of an undirected graph G, which is k -connected. A container C(u, v ) between u and v is a set of internally disjoint paths {P1, P2, . . . , Pw } between u and v where 1 ≤ w ≤ k . The width of C(u, v ) is w and the length of C(u, v ) {written as l [C(u, v )]} is max{l (Pi ) | 1 ≤ i ≤ w }. A w -container C(u, v ) is a container with width w . The w -wide distance between u and v , dw (u, v ), is min{l (C(u, v )) | C(u, v ) is a w -container}. A w -container C(u, v ) of the graph G is a w ∗-container if every node of G is incident with a path in C(u, v ). That means that the w -container C(u, v ) spans the whole graph. Let Sn be the n-dimensional star graph with n ≥ 5. It is known that Sn is bipartite. In this article, we show that, for any pair of distinct nodes u and v in different partite sets of Sn , there exists an (n − 1)∗-container C(u, v ) and the (n − 1)-wide distance d(n−1)(u, v ) is less than or equal to n! n−2 + 1. In addition, we also show the existence of a 2∗-container C(u, v ) and the 2-wide distance d2(u, v ) is bounded above by n! 2 + 1. © 2006 Wiley Periodicals, Inc. NETWORKS, Vol. 48(4), 235–249 2006
37670445
Drawing Graphs with Nonuniform Nodes Using Potential Fields
A potential field approach, coupled with force-directed methods, is proposed in this paper for drawing graphs with nonuniform nodes in 2-D and 3-D. In our framework, nonuniform nodes are uniformly or nonuniformly charged, while edges are modelled by springs. Using certain techniques developed in the field of potential-based path planning, we are able to find analytically tractable procedures for computing the repulsive force and torque of a node in the potential field induced by the remaining nodes. Our experimental results suggest this new approach to be promising, as drawings of good quality for a variety of graphs in 2-D and 3-D can be produced efficiently.
7556493
Using mixins to build flexible widgets
When it comes to software that runs on devices as varied as cell phones, PDAs and desktops, one size does not fit all. This paper describes how mixin layers, a kind of nested generic type, can be used to implement a graphical user interface library that can be configured to run on platforms with widely dissimilar capabilities. We describe the language support needed to incrementally build software in layers, and we describe how crosscutting concerns can be encapsulated within a layer. We then show how layers can be reconfigured to meet changing requirements. We also show how a new design pattern, the Sibling pattern, can be used with mixin layers to coordinate changes to multiple classes in the same inheritance hierarchy. When used appropriately, the Sibling pattern increases our ability to separate design concerns and to reuse code.
15260570
Dynamic priority handoff scheme in differentiated QoS wireless multimedia networks
Handoff is one of the key elements in ensuring quality of service (QoS) in mobile wireless networks. Handoff connections generally have higher priority than new connections. Traditional reservation policies that reserve some channels for handoff connections are not adaptive to traffic load changes. This paper proposes a new dynamic guard channel scheme (DGCS), which 1) adapts to various traffic loads; 2) combines differentiated QoS service model and priority handoff mechanism; 3) provides fairness for differentiated QoS services; 4) does not need to exchange state information among different cells, so it is easy to be implemented and is simple enough to be used in real time environments; 5) and utilizes network resources efficiently and puts a bound on each service blocking probability. The simulation results show that the ratios among different QoS service probabilities are guaranteed to be predefined values and system utilization is improved greatly.
1971868
Diverse Soft Real-Time Processing in an Integrated System
The simple notion of soft real-time processing has fractured into a spectrum of diverse soft real-time types with a variety of different resource and time constraints. Schedulers have been developed for each of these types, but these are essentially point solutions in the space of soft real-time and no detailed unified definition of soft real-time has previously been provided that includes all types of soft realtime processing. We present a complete real-time taxonomy covering the spectrum of processes from best-effort to hard real-time. The taxonomy divides processes into nine classes based on their resource and timeliness requirements and includes four soft real-time classes, each of which captures a group of soft real-time applications with similar characteristics. We exploit the different features of each of the soft real-time classes to integrate all of them into a single scheduler together with hard real-time and best-effort processes and present results demonstrating their performance