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.
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.
44967148
PVM Code Generator for the Fortran Parallel Transformer
23589102
Bounds of the longest directed cycle length for minimal strong digraphs
Abstract In this paper we present the upper and lower bounds of the longest directed cycle length for minimal strong digraphs in terms of the numbers of vertices and arcs. These bounds are both sharp. In addition, we give analogous results for minimal 2-edge connected graphs.
45771940
Smoothing Tensor-Valued Images Using Anisotropic Geodesic Diffusion
This paper considers the feature space of DT-MRI as a differential manifold with an affine-invariant metric. We generalise Di Zenzo’s structure tensor to tensor-valued images for edge detection. To improve the quality of the edges, we develop a generalised Perona-Malik method for smoothing tensor images. We demonstrate our algorithm on both synthetic and real DT-MRI data.
9404547
Blocking-aware processor voltage scheduling for real-time tasks
As mobile computing is getting popular, there is a growing need for techniques that minimize energy consumption on battery-powered mobile devices. Processor voltage scheduling can effectively reduce processor energy consumption by lowering the processor speed. In this paper, we study voltage scheduling for real-time periodic tasks with non-preemptible sections. Three schemes are proposed: The static speed algorithm derives the minimum static feasible speed based on the stack resource policy. Due to blocking, this static speed is usually higher than the speed required for scheduling fully preemptible tasks (called the utilization speed). Two dynamic speed algorithms are then introduced to further reduce energy consumption. The novel dual speed algorithm operates the processor at the utilization speed whenever possible and switches to the higher static speed only when blocking occurs. The dual speed dynamic reclaiming algorithm reserves time budget for each job, reclaims the unused time budget from completed jobs and redistributes it to subsequent jobs so they can run at a lower speed whenever possible. Feasibility conditions for real-time task sets have been derived and proved mathematically. Simulation results show that the proposed voltage scheduling algorithms dramatically reduce processor energy consumption over non-power-aware scheduling algorithms. Furthermore, the two dynamic speed algorithms consistently outperform the static speed scheme in a wide range of system and workload conditions.
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.
45999842
The number of spanning trees in odd valent circulant graphs
In this paper, we consider the number of spanning trees in circulant graphs. For any class of odd valent circulant graphs C"2"n(a"1,a"2,...,a"k"-"1,n), where a"1,a"2,...,a"k"-"1 are fixed jumps and n varies, some formulas, asymptotic behaviors and linear recurrence relations for the number of its spanning trees are obtained, and some known results on the ones in even valent circulant graphs C"n(a"1,a"2,...,a"k) are improved.