32440433
The FORTRAN Parallel Transformer and its Programming
The Fortran Parallel Transformer (FPT) is a parallelization tool for Fortran-77 programs. It is used for the automatic parallelization of loops, program transformations, dependence analysis, performance tuning and code generation for various platforms. FPT is able to deal with GOTO's by restructuring ill-structured code using hammock graph transformations. In this way more parallelism becomes detectable. The X-window based Programming Environment, PEFPT, extends FPT with interactive dependence analysis, the iteration space graph, ISG, and guided loop optimization. FPT contains a PVM (Parallel Virtual Machine) code generator which converts the parallel loops into PVM master- and slave-code for a network of workstations. This includes job scheduling, synchronization and optimized data communication. The productivity gained is about a factor of 10 in programming time and a significant speedup of the execution.
45226722
Enhancing Parallelism by Removing Cyclic Data Dependencies
The parallel execution of loop iterations often is inhibited by recurrence relations on scalar variables. Examples are the use of induction variables and recursive functions. Due to the cyclic dependence between the iterations, these loops have to be executed sequentially. A method is presented to convert a family of coupled linear recurrence relations into explicit functions of a loop index. When the cyclic dependency is the only factor preventing a parallel execution, the conversion effectively removes the dependency and allows the loop to be executed in parallel. The technique is based on constructing and solving a set of coupled linear difference equations at compile-time. The method is general for an arbitrary number of coupled scalar variables and can be implemented by a straight-forward algorithm. Results show that the parallelism of several sequential EISPACK do-loops is significantly enhanced by the converting them into do-all loops.
44967148
PVM Code Generator for the Fortran Parallel Transformer
6844898
Using hammock graphs to structure programs
Advanced computer architectures rely mainly on compiler optimizations for parallelization, vectorization, and pipelining. Efficient-code generation is based on a control dependence analysis to find the basic blocks and to determine the regions of control. However, unstructured branch statements, such as jumps and goto's, render the control flow analysis difficult, time-consuming, and result in poor code generation. Branches are part of many programming languages and occur in legacy and maintenance code as well as in assembler, intermediate languages, and byte code. A simple and effective technique is presented to convert unstructured branches into hammock graph control structures. Using three basic transformations, an equivalent program is obtained in which all control statements have a well-defined scope. In the interest of predication and branch prediction, the number of control variables has been minimized, thereby allowing a limited code replication. The correctness of the transformations has been proven using an axiomatic proof rule system. With respect to previous work, the algorithm is simpler and the branch conditions are less complex, making the program more readable and the code generation more efficient. Additionally, hammock graphs define single entry single exit regions and therefore allow localized optimizations. The restructuring method has been implemented into the parallelizing compiler FPT and allows to extract parallelism in unstructured programs. The use of hammock graph transformations in other application areas such as vectorization, decompilation, and assembly program restructuring is also demonstrated.
5788058
Heredity of the index of convergence of the line digraph
Let D be a digraph, and let Ln(D) and k(D) denote the nth iterated line digraph of D and the index of convergence of D, respectively. We prove that if D contains neither sources nor sinks, then: (1) k(Ln(D))=k(D)=0 if every connected component of D is a directed cycle. (2) k(Ln(D))=k(D)+n if there exists at least one connected component of D that is not a directed cycle. Finally, we prove that if D has no sources or no sinks then k(D) ≤ k(L(D)) ≤ k(D)+1.
15564869
Heat Kernel Smoothing of Scalar and Vector Image Data
This paper shows how the graph-spectral heat kernel can be used to smooth both gray-scale and color images. We represent images using weighted attributed graphs, and compute the associated Laplacian matrix. Diffusion across this weighted graph-structure with time is captured by the heat-equation, and the solution, i.e. the heat kernel, is found by exponentiating the Laplacian eigen-system with time. Image smoothing is effected by convolving the heat kernel with the image. The method has the effect of smoothing within regions, but does not blur region boundaries. Experiments and comparisons on standard images illustrate the effectiveness of the method.
15237049
Riemannian Graph Diffusion for DT-MRI Regularization
A new method for diffusion tensor MRI (DT-MRI) regularization is presented that relies on graph diffusion. We represent a DT image using a weighted graph, where the weights of edges are functions of the geodesic distances between tensors. Diffusion across this graph with time is captured by the heat-equation, and the solution, i.e. the heat kernel, is found by exponentiating the Laplacian eigen-system with time. Tensor regularization is accomplished by computing the Riemannian weighted mean using the heat kernel as its weights. The method can efficiently remove noise, while preserving the fine details of images. Experiments on synthetic and real-world datasets illustrate the effectiveness of the method.
13865930
Proxy-Assisted Scheduling for Energy-Efficient Multimedia Streaming over Wireless LAN
Energy is a critical resource for battery-driven mobile and wireless devices. The power-saving mode (PSM) provided by the 802.11 standard is not adequate for mobile clients running streaming media applications. We propose new power-aware scheduling strategies that enhance existing traffic shaping schemes for the purpose of minimizing the communication energy consumption of mobile clients. Scheduling decisions are made by the local proxy and executed at the access point. We consider two cases. In the first case, the proxy is unaware of the power characteristics of the clients. We present an optimal scheduling scheme that minimizes the time that mobile clients stay in high-power modes. This scheme achieves significant energy savings compared to using traffic shaping alone. In the second case, the power profiles and the residual battery capacities of the clients are taken into account in generating the schedule. Unlike most existing work, we believe these factors should be considered in the performance metric. We propose a dynamic programming approach that computes the optimal transmission schedule based on the new metric. We also present an efficient heuristic which exhibits near-optimal performance in the simulation experiments.
46427487
The Clar Covering Polynomial of Hexagonal Systems I
Abstract In this paper the Clar covering polynomial of a hexagonal system is introduced. In fact it is a kind of F polynomial [4] of a graph, and can be calculated by recurrence relations. We show that the number of aromatic sextets (in a Clar formula), the number of Clar formulas, the number of Kekule structures and the first Herndon number for any Kekulean hexagonal system can be easily obtained by its Clar covering polynomial. In addition, we give some theorems to calculate the Clar covering polynomial of a hexagonal system. As examples we finally derive the explicit expressions of the Clar covering polynomials for some small hexagonal systems and several types of catacondensed hexagonal systems. A relation between the resonance energy and the Clar covering polynomial of a hexagonal system is considered in the next paper.