Vicki H. Allan
Utah State University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Vicki H. Allan.
ACM Computing Surveys | 1995
Vicki H. Allan; Reese B. Jones; Randall M. Lee; Stephen J. Allan
Utilizing parallelism at the instruction level is an important way to improve performance. Because the time spent in loop execution dominates total execution time, a large body of optimizations focuses on decreasing the time to execute each iteration. Software pipelining is a technique that reforms the loop so that a faster execution rate is realized. Iterations are executed in overlapped fashion to increase parallelism. Let {<italic>ABC</italic>}<supscrpt><italic>n</italic></supscrpt> represent a loop containing operations <italic>A, B, C</italic> that is executed <italic>n</italic> times. Although the operations of a single iteration can be parallelized, more parallelism may be achieved if the entire loop is considered rather than a single iteration. The software pipelining transformation utilizes the fact that a loop {<italic>ABC</italic>}<supscrpt><italic>n</italic></supscrpt> is equivalent to <italic>A</italic>{<italic>BCA</italic>}<supscrpt><italic>n</italic>−1</supscrpt><italic>BC</italic>. Although the operations contained in the loop do not change, the operations are from different iterations of the original loop. Various algorithms for software pipelining exist. A comparison of the alternative methods for software pipelining is presented. The relationships between the methods are explored and possibilities for improvement highlighted.
international symposium on microarchitecture | 1995
Vicki H. Allan; U. R. Shah; K. M. Reddy
Software pipelining is a technique that reforms the loop to improve execution time. Iterations are executed in overlapped fashion to increase parallelism. Modulo scheduling places each operation so that the schedule is legal when replicated and offset by a target initiation interval. This process is repeated with larger initiation intervals until success is achieved. Kernel recognition methods schedule operations as rapidly as possible until a pattern is recognized. These two distinctly different methods have various strengths and weaknesses. This paper explores the benefits and draw-backs of each.
international symposium on microarchitecture | 1990
Reese B. Jones; Vicki H. Allan
Software pipelining can significantly increase the execution rate of loops. Each of the four major software pipelining algorithms takes a different approach to software pipelining. This paper discusses each method and explores some of the similarities and differences among the methods. On loops consisting of a single basic block, the perfect pipelining algorithm is the only software pipelining algorithm that currently achieves time optimality, in the absence of resource constraints. A technique for unrolling the loop before pipelining is presented as an improvement to software pipelining, as it can allow Lams algorithm to achieve time optimality for these restricted loops. Unrolling has an advantage over perfect pipelining because it can reduce the code space required for the software pipeline.<<ETX>>
international symposium on microarchitecture | 1992
Vicki H. Allan; J. Janardhan; Randall M. Lee; M. Srinivas
We propose a series of transformations which improve the capturable parallelism of a program. The Enhanced Region Scheduling algorithm provides more powerful paralleliration capabilities than previous methods by adding the transformations software pipelining and break. Though the move transformation alone does not adequately redistribute parallelism, the addition of break redistributes parallelism as well as actual schedules though the work involved is considerably less. The overall benefit of enhanced region scheduling varies in improvement in ezecution time from 5% to 41%. Software pipelining alone contributes 0% to 35% of the gain. However, because of the overhead of speculative instruction and copy statements, low levels of available parallelism inhibit success. For the programs tested, simulations on architectures with seven concurrent operations yielded good results.
international symposium on microarchitecture | 1991
Reese B. Jones; Vicki H. Allan
Software Pipelining is a fine-grain loop optimization technique for architectures that support synchronous parallel execution. We compare Lam’s software pipelining algorithm with Ebcio~lu and Nakatani’s technique. This research seems to indicate the Enhanced Pipeline Scheduling algorithm is a good general purpose software pipelining algorithm, due to the fact that it performs only slightly worse than Lam’s algorithm on single basic block loops and should perform better than Lam’s algorithm on multiple basic block loops. However, if pipelining single basic block loops is the goal, it appears that it would be better to use Lam’s algorithm. We s3so propose a technique for changing the resource constrained scheduling priority of operations to prevent operations from future iterations from being significantly delayed due to resource confllcts.
ACM Sigcue Outlook | 1997
Vicki H. Allan; M. V. Kolesar
The typical programming course is not an appropriate first course for many students. Results indicate that our skill-based approach to computer science is a better preparation for the traditional first programming experience than even prior programming. (This work was partially supported by the National Science Foundation under grant DUE-9254186.
technical symposium on computer science education | 2010
Vicki H. Allan; Valerie Barr; Dennis Brylow; Susanne E. Hambrusch
The number of undergraduates entering computer science has declined in recent years. This is paralleled by a drop in the number of high school students taking the CS AP exam and the number of high schools offering computer science courses. The declines come at a time when career opportunities in CS continue to grow and computer science graduates are seen as crucial in building a globally competitive workforce for the 21st century. Efforts aimed at reversing the declining interest in computer science include curriculum revisions at the undergraduate level at many institutions, a re-design of computer science AP courses [1], and the inclusion of computational thinking into disciplines outside computer science [3]. This panel discusses four projects of computer science researchers collaborating with high school teachers on integrating computing and computational thinking into their courses. The majority of the high school teachers involved is teaching science and math courses. They are teaching a diverse group of talented and college-bound students. The goal of all projects is to integrate computing into disciplines represented in the high school curriculum and to raise the awareness of computer science as an exciting and intellectually rewarding field. This panel will outline recent and on-going activities and interaction with high school teachers. Each panelist will describe how he/she got involved and the nature of the interaction. The panelists will talk about their individual projects, outline their visions for future interactions, and how their effort can be replicated by others. The session will briefly describe NSFs RET program which provided teacher support for three of the four projects. The session will then be opened for discussion; the audience will be encouraged to ask questions and contribute additional ideas for the inclusion of computational thinking in high school courses.
international symposium on microarchitecture | 1993
M. Rajagopalan; Vicki H. Allan
This paper presents a new technique for software pipelining using the Petri nets. Our technique called the Petri Net Pacemaker (PNP) can create near optimal pipelines with less algorithmic effort than other techniques. The pacemaker is a novel idea which exploits the behavior of Petri nets to model the problem of scheduling operations of a loop body for software pipelining. >
cooperative information agents | 2007
Levi Barton; Vicki H. Allan
Coalition formation in social networks consisting of a graph of interdependent agents allows many choices of which task to select and with whom to partner in the social network. Nodes represent agents and arcs represent communication paths for requesting team formation. Teams are formed in which each agent must be connected to another agent in the team by an arc. Agents discover effective network structures by adaptation. Agents also use several strategies for selecting the task and determining when to abandon an incomplete coalition. Coalitions are finalized in one-on-one negotiation, building a working coalition incrementally.
International Journal of Parallel Programming | 1994
M. Rajagopalan; Vicki H. Allan
This paper presents a flexible model for software pipelining using the petri nets. Our technique, called the Petri Net Pacemaker (PNP), can create near optimal pipelines with less algorithmic effort than other techniques. The pacemaker is a novel idea which exploits the cyclic behavior of petri nets to model the problem of scheduling operations of a loop body for software pipelining. A way of improving the performance of loops containing predicates is given. The PNP technique also shows how nested loops can be pipelined. A comparison with some of the other techniques is presented.