Curriculum Vitæ


Adobe PDF Version

Education

Doctor of Philosophy in Computer Science Colorado State University. December, 1992. Dissertation: "Inter-Block Code Motion Without Copies".

Master of Science in Computer Science. Colorado State University, May, 1986.

Bachelor of Science in Computer Science Washington State University, May, 1983.

Bachelor of Science in Zoology Washington State University, May, 1972.

Research Interests

  • Efficient memory system design,
  • Compiler optimization in support of efficient memory system design,
  • Code generation for multi-core architectures,
  • Experimental evaluation of the level of thread parallelism that can be exploited in imperative programs,
  • Investigation of tools to design, compile, and execute programs on hybrid multi-core architectures, i.e., those containing FPGAs, and/or ASICs, as well as general purpose CPUs,
  • Code generation for multithreaded architectures,
  • Code generation for instruction-level parallel architectures,
  • Efficient use of scratch-pad memory

Current Software Projects

  • Rocket Compiler
  • Hy-C Compiler

Refereed Publications

Journal Papers

  • Huang, J., Li, H., and Sweany, P., FPGA Implementations of Elliptic Curve Cryptography and Tate Pairing over a Binary Field, Journal of Systems Architecture, V. 54, No.12, December 2008, pp. 1077-1088.
  • Li W., Rezaei M., Kavi K., Naz A., and Sweany P., Feasibility of Decoupling Memory Management From the Execution Pipeline, Journal of Systems Architecture: the EUROMICRO Journal, V. 53, No. 12, 2007, pp. 927-936.
  • Naz A., Kavi, K., Sweany, P., and Li W., Tiny Split Data Caches Make Big Performance Impact for Embedded Applications, (Special Issue: Embedded Single-Chip Multicore Architectures and Related Research - from System Design to Application Support), Journal of Embedded Computing, Vol. 2, No. 2, 2006, 207-219.
  • Naz A., Rezaei, M., Kavi, K., and Sweany, P., Improving Data Cache Performance With Integrated Use Of Split Caches, Victim Cache And Stream Buffers, March 2005 special issue of ACM SigArch Computer Architecture NEWS - Best Papers of MEDEA-2004, pp 41-48.
  • Carr, S., and Sweany, P., An Experimental Evaluation of Scalar Replacement on Scientific Benchmarks, Software Practice and Experience, Vol. 33, No.15, December 2003, pp 1419-1445.
  • Bedy, M.J., Carr, S., Onder, S. and Sweany, P., Improving Software Pipelining by Hiding Memory Latency with Combined Loads and Prefetches, in Interaction between Compilers and Computer Architectures, G. Lee and P.-C. Yew ed., Kluwer Academic Publishers, 2001 pp. 69-88.
  • Allan V., Beaty S., Su B., and Sweany P., Building a Retargetable Local Instruction Scheduler, Software Practice and Experience, volume 28:3, pages 249-84, March 1998, pp. 249-283.
  • Sweany P., Huber, B.L., and Carr S., Global Instruction Scheduling Without Copies, Digital Technical Journal, 10(1), December 1998, pp. 58-70.
  • Mueller, R.A., Duda, M.R., Sweany, P.H. and Walicki, J.S., Horizon: A Retargetable Compiler for Horizontal Microarchitectures, IEEE Transactions on Software Engineering, volume 14, number 5, May 1988, pp. 575-583.

Book Chapters

  • Williamson, W. J., and Sweany, P. Revitalizing Discipline-Specific Instruction in Technical Communication, in Innovative Approaches to Technical Communication, Tracy Bridgeford Karla Kitalong, and Dickie Selfe, (Ed.), Utah State Press, 2004. pages 60-80.

Conference Papers

  • Burke, P., and Sweany P., Automatic Code Generation Through Model-Driven Design, 20th Systems and Software Technology Conference (SSTC 2008), Las Vegas NV, April 2008.
  • Huang, J., Li, H., and Sweany, P., An FPGA Implementation of Elliptic Curve Cryptography for Future Secure Web Transactions, Proceedings of the 20th International Conference on Parallel and Distributed Computing Systems (PDCS-2007), Las Vegas NV, September 24-26, 2007, pp 296-301.
  • Li, W., Kavi, K., Naz, A., and Sweany, P., Speculative Thread Execution in a Multithreaded Dataflow Architecture, Proceedings of the ISCA 19th International Conference on Parallel and Distributed Computing (PDCS-2006), San Francisco, California, September 20-22, 2006.
  • Naz, A., Kavi, K., Sweany P., and Li, W., A Study of Reconfigurable Split Data Caches and Instruction Caches, Proceedings of the ISCA 19th International Conference on Parallel and Distributed Computing (PDCS-2006), San Francisco, California, September 20-22, 2006.
  • Naz, A., Kavi, K., Sweany, P., and Li, W., Improving Data Cache Performance with Integrated Use of Split Caches, Victim Cache And Stream Buffers, Proceedings of the Workshop on Memory performance Dealing with Applications, Systems and Architecture (MEDEA-2004), held in conjunction with Parallel Architectures and Compiler Technology Conference (PACT-2004), Sept. 29-Oct. 3, 2004, Antibes Juan-Les-Pins, France.
  • Carr, S., and Sweany, P., Automatic Data Partitioning for the Agere Payload Plus Network Processor, Proceedings of the 8th International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES 2004), September 22-25, 2004 pps. 238-247.
  • Naz, A., Kavi, K., Sweany, P. and Rezaei, M., A Study of Separate Array and Scalar Caches Proceedings of the 18th International Symposium on High Performance Computing Systems and Applications (HPCS 2004), Winnipeg, Manitoba, Canada, May 16-19, 2004, pp 157-164.
  • Sweany P., and Carr, S., Building a C Compiler Retargetable for DSP Processors, Proceedings of the ODES Workshop, San Francisco CA, March 2003.
  • Qian, Y., Carr, S., and Sweany, P., Optimizing Loop Performance for Clustered VLIW Architectures, Proceedings of the Eleventh IEEE International Conference on Parallel Architectures and Compiler Techniques (PACT 2002) 271-280.
  • Qian, Y., Carr, S., and Sweany, P., Loop Fusion for Clustered VLIW Architectures, SIGPLAN 2002 Workshop on Languages, Compiler, and Tools for Embedded Systems (LCTES 2002), pp. 112-119.
  • Sule, D., Carr, S., and Sweany, P., Evaluating Register Bank Partitioning with Genetic Algorithms, Conference on Massively Parallel Computing Systems, 2002 (MPCS 2002).
  • Huang, X., Carr, S., and Sweany, P., Loop Transformations for Architectures with Partitioned Register Banks, SIGPLAN 2001 Workshop on Languages, Compiler, and Tools for Embedded Systems (LCTES 2001), pp. 48-55.
  • Hiser, J., Carr, S., Sweany, P., Global Register Partitioning, {\it International Conference on Parallel Architectures and Compilation Techniques (PACT 2000)} pp 13-23.
  • Hiser, J., Carr, S., Sweany, P., and Beaty S.J., Register Assignment for Software Pipelining with Partitioned Register Banks International Parallel and Distributed Processing Symposium (IPDPS 2000), 211-217.
  • Williamson, W.J., and Sweany P., Linking Communication and Software Design Courses for Professional Development in Computer Science, In Language and Learning Across the Disciplines, 1999.
  • Sweany P., and Beaty S., Instruction Scheduling Using Simulated Annealing, Conference on Massively Parallel Computing Systems (MPCS '98).
  • Kuras, D., Carr S., and Sweany P., Value Cloning for Architectures with Partitioned Register Banks, In The 1998 Workshop on Compiler Support for Embedded Systems (CASES98).
  • Jang S., Carr S., Sweany P., and Kuras D., A Code Generation Framework for VLIW Architectures with Partitioned Register Files, Conference on Massively Parallel Computing Systems (MPCS '98),
  • Ding C.H., Carr S., and Sweany P.H., Modulo Scheduling with Cache Reuse Information, Euro-Par'97 Workshop on Instruction-Level Parallelism. In Euro-Par'97 Parallel Processing, Proceedings of the Third International Euro-Par Conference, August 1997, pp 1079-1083.
  • Cho P., George D., Ott L., Predebon W., and Sweany P. New Faculty Orientation and Seminar Series: Emphasis on Teaching and Learning, {\it Proceedings of 1996 ASEE Annual Conference}, June 1996.
  • Beaty S.J., Colcord S., and Sweany P.H., Using Genetic Algorithms to Fine-Tune Instruction Scheduling, Proceedings of the Second International Conference on Massively Parallel Computing Systems, Ischia, Italy, May 1996.
  • Carr S., Ding C.H., and Sweany P.H., Improving Software Pipelining with Unroll-and-Jam, Proceedings of the 29th Annual Hawaii International Conference on System Sciences, Maui, Hawaii, January, 1996, pp 183-192.
  • Bourke M., Sweany P.H., and Beaty S. Extending List Scheduling to Consider Execution Frequency, Proceedings of the 29th Annual Hawaii International Conference on System Sciences, Maui, Hawaii, January, 1996, 193-202.
  • Brasier T.S., Sweany P.H., Carr S., and Beaty S.J., CRAIG: A Practical Framework for Combining Instruction and Register Assignment, Parallel Architectures and Compilation Techniques Conference (PACT95), Limassol, Cyprus, June, 1995, pp. 11-18.
  • Sweany P.H., and Beaty S.J., Dominator-Path Scheduling: A Global Scheduling Method, Proceedings of the 25th Microprogramming Workshop (MICRO-25), Portland, OR, December, 1992, pp. 260-263.
  • Sweany P.H., and Beaty S.J., Post-Compaction Register Assignment in a Retargetable Compiler, Proceedings of the 23rd Microprogramming Workshop (MICRO-23), Orlando, FL, November, 1990, pp. 107-116.
  • Howland M.A., Mueller R.A., and Sweany, P.H., Trace Scheduling Optimization in a Retargetable Microcode Compiler, Proceedings of the 20rd Microprogramming Workshop (MICRO-20), Colorado Springs, CO, December, 1987, pp. 106-114.

Grants

Funded

  • Global Instruction Scheduling Without Copies, Principal Investigator, National Science Foundation, $97,649, 1993-96.
  • Research Experience for Undergraduates Supplement to Global Instruction Scheduling Without Copies, Principal Investigator, National Science Foundation, $5,000, 1994.
  • Research Experience for Undergraduates Supplement to Global Instruction Scheduling Without Copies, Principal Investigator, National Science Foundation, $5,000, 1995.
  • Research Experience for Undergraduates Supplement to Global Instruction Scheduling Without Copies, Principal Investigator, National Science Foundation, $5,000, 1996.
  • Hiding the Latency Between Level-1 and Level-2 Cache on the DEC Alpha 21164, Co-Principal Investigator with Steve Carr, Digital Equipment Corporation, $83,500, 1995-96.
  • Generating Efficient Code for Horizontal Micro- Architectures With Partitioned Register Files, Co-Principal Investigator with Steve Carr, Texas Instruments, $23,715, 1995-96.
  • Register-Bank Assignment for Distributed-Register, Instruction-Level Parallel Architectures, Co-Principal Investigator with Steve Carr, Texas Instruments, $42,830, 1997-98.
  • Building a Retargetable Java Bytecode Compiler, Michigan Research Excellence Fund Grant, $30,900, 1997-1998.
  • Code Generation Compiler ILP Architectures with Partitioned Register Banks, Principal Investigator, National Science Foundation, $325,534, 1998-2001.
  • Substituting CISC Instructions in Compiled DSP Code, PI, UNT 2004 Research Opportunity Program, $4,000.
  • Equipping a DSP Lab}, co-PI, TI DSP University Program, submitted December 12, 2003 Equipment worth $60,000 donated.
  • Recruiting and Retention Strategies for Computer Science at UNT}, co-PI, Texas Technology Workforce Development Grant Program, $125,322
  • Proposed Conference Support for SCOPES 05, PI, National Science Foundation, $12,500.
  • IUCRC-Planning Proposal: UNT Research Site Proposal to join Embedded Systems I/UCRC, co-PI, National Science Foundation, $10,000.
  • Teach North Texas (TNT), co-PI, The National Mathematics and Science Initiative and UTeach Institute, $2,400,000.
  • Collaborative Research: IUCRC Center Proposal: Net-Centric Software and Systems, $349,482, NSF (co-PI)
  • Retargetable Code Generation for Heterogeneous Multi-Processor Computers, $30,000, Texas Instruments, as part of NSF/IUCRC Center (PI)

Pending

  • Addressing Computational Needs of Multimedia and Medical Applications, USA Scientifc Coordinator (co-PI) , Executive Programme Italy-United States of America, 180,000 Euros over three years.

Teaching Experience

University of North Texas, Department of Computer Science and Engineering (Denton, TX) September 2003-Present: Associate Professor of Computer Science Courses: CSCE 1040: Computer Science II, CSCE 2050: Computer Science III, CSCE 3110: Data Structures, CSCE 3600: Systems Programming CSCE 3650: Introduction to Compilers, CSCE 4430: Programming Languages, CSCE 4600: Operating Systems, CSCE 5200: Automata Theory, CSCE 5450: Programming Languates, CSCE 5640: Operating Systems, CSCE 5650: Compiler Optimization, CSCE 5890: Special Topics in Compiler Optimizations, CSCE 6650: Advanced Compiler Topics

UNT, September 2002-May 2003 Adjunct Faculty Courses: CS 3100 Beginning Computer Architectures, CS 5550 Compilers

Michigan Technological University, Department of Computer Science (Houghton, MI) June 1998-August 2000: Associate Professor of Computer Science September 1992-May 1998 Assistant Professor of Computer Science September 1991-May 1992 Instructor Courses: Introductory Computer Programming, Data Structures, Discrete Mathematics, Software Development Methods, Computers and Society, Systems Software Project, Design and Analysis of Algorithms, Object-Oriented Programming, Compiler Construction, Advanced Compiler Optimization, Instruction Level Parallelism

Colorado State University, Department of Computer Science and Engineering (Fort Collins, CO) August 1990-May 1991: Lecturer Courses: Introductry FORTRAN, FORTRAN and C for Intermediate Programmers, Introductry Data Structures August 1984-December 1985 Courses: Introductry and Intermediate Personal Computing, Comparative Programming Languages

National Technological University (Fort Collins, CO) July 1990-August 1990: Lecturer Courses: Co-taught a 52-hour program "Comprehensive UNIX"

Industrial Computing Experience

Texas Instruments, DSP Solutions Research and Development Center (Dallas, TX) September 2000–August 2003: Technical Staff Member of group writing and supporting compiler tools for TI’s family of DSPs.

Quantitative Technology Corporation, (Fort Collins, CO and Portland, OR) September 1987–July1989: Technical Staff Member of group writing a production-quality, retargetable microcode C compiler which was multi-pass and included all modern code-improvement methods in addition to methods developed internally. Involved in detailed algorithm and implementation design, generation and documentation of C++ code, testing resultant product, and maintenance and improvement of the product.

Horizon Research Laboratories, (Fort Collins, CO) January 1987–September 1987: Technical Staff Member of three-member group developing C compilers for wide-word graphics processors. Created or assisted with creation of many of the analysis and code-improvement routines, including cover analysis, memory reference disambiguation, intermediate optimizations, graph-coloring register assignment, code selection, software pipelining and trace scheduling, and peephole optimizer.

Collaborative Efforts

Affiliations

  • Association for Computing Machinery
  • IEEE
  • Computer Science Teachers Association
  • Teach North Texas
  • North Texas Net-Centric Software and Systems Consortium

Research Collaborators

  • Steve Carr, Michigan Technological University
  • Krishna Kavi, University of North Texas
  • Hao Li, University of North Texas
  • Cameron Palmer, University of North Texas
  • Patrick Burke, University of North Texas
  • Steve Beaty, Metrostate—Denver
  • William J. Williamson, Saginaw State University
  • Vicki Allan, Utah State University
  • Bo Gong Su, Patterson College

Graduate Ph.D Students

Current

  • Cameron Palmer
  • Patrick Burke

Alumni

  • Michael J. Bourke, III. Frequency-Based Scheduling: An Extension of List Scheduling to Incorporate Frequency Information. (Masters)
  • Thomas Brasier, FRIGG: A New Approach to Combining Register Assignment and Instruction Scheduling. (Masters)
  • Chen Ding, Improving Software Pipelining with Unroll-and-Jam and Memory Reuse Analysis. (Masters)
  • Jason Hiser, Register Bank Assignment for Partitioned Register File Machines. (Masters)
  • Brett Huber, Path-Selection Heuristics for Dominator-Path Scheduling. (Masters)
  • Saurabh Jang, Generating Efficient Code for VLIW Architectures with Partitioned Register Files. (Masters)
  • Darla Kuras, Using Value Cloning to Improve Code Generation for Software Pipelined Loops on VLIW Architectures with Partitioned Register Files (Masters)
  • Yi Qian, Loop Transformation for Clustered VLIW Architecture.
  • M. Premanand Rao, Combining Register Assignment and Instruction Scheduling. (Masters)
  • Evan Schemm, Using FIFO Replacement to improve Icache Hit Rates. (Masters) Icache Hit Rates in ILP Architectures (Dissertation). Associate Professor, Computer Science, Lake Superior State University, Sault Ste. Marie, MI.
  • Tom Suchyta, Global Reduction of Spill Code by Live-Range Splitting. (Masters)
  • Dineel Sule, An Evaluation of Existing Heuristics for Register Bank Partitioning Using Genetic Algorithms. (Masters)
  • Craig Webb, CISC Instruction Indentification Using Data Dependence Graphs. (Masters)
  • Chris Wolf, I2R: Combining Source-Level Analysis with Code Generation for ILP Architectures. (Masters)
  • Qunyan WU, Register Allocation via Hierarchitecal Graph Coloring (Masters)

Undergraduate Research

  • Scott Colcord, Instruction Scheduling with Genetic Algorithms (MTU), Summer and Fall, 1995
  • Pete Curry, (UNT) Evaluation of Scale code generation, Summer 2006
  • Dan Daugherty, (MTU) Developing Compiler tools for use in an undergraduate course, Spring and Fall 2006
  • Jack Lindamood, (UNT) Porting an existing compiler a new Linux environment, Spring 2006
  • Cameron Palmer, (UNT) Compiler Optimizations for Texas Instruments DSP Chips, Fall 2007 and ongoing.
  • Jeremy Wilson, (UNT) Experimental Evaluation of Compiler Phase Order on Code Generation, Spring and Fall 2005

Professional Service

Program Co-Chair:

  • SCOPES 2005

Program Committee Member:

  • ESO 2008 ( 3rd International Workshop on Embedded Software Optimization), to be held in Shanghai, China in December 2008.
  • HASE 07 ( 10th IEEE International Symposium on High Assurance Systems Engineering), to be held in Dallas in November 2007.
  • SCOPES 07 (Software and Compilers for Embedded Systems), held in Nice, France in April 2007
  • Languages, Compilers and Tools for Embedded Systems (LCTES 02)
  • Massively Parallel Computing Systems (MPCS)
  • ACM International Conference on Computing Frontiers, held in Ischia, Italy in May 2005
  • International Symposium on Microarchitecture (MICRO 95) 1995

Reviewer:

  • IEEE Computer
  • Languages, Compilers and Tools for Embedded Systems (LCTES 02)
  • Massively Parallel Computing Systems (MPCS)
  • Micro
  • Software and Compilers for Embedded Systems (SCOPES)
  • CASES
  • Programming Language Design and Implementation (PLDI)
  • TACO
  • Computing Frontiers

University Service

University of North Texas, Department of Computer Science and Engineering (Denton, TX)

  • 2005–2008: Member, Graduate Studies Committee
  • 2005–2006: Member, Undergraduate Committee
  • 2008–2009: Member, Undergraduate Committee
  • 2004–2005: Member, Research Enhancement Committee
  • 2003–2005: Member, Executive Committee
  • 2007–2009: Member, Executive Committee
  • 2003–2004: Member, Ad Hoc Computer Engineering Committee
  • 2003–2004: Chair, Faculty Search Committee
  • 2003-2009: Supervisor, nine teaching assistants

Michigan Technological University, Department of Computer Science (Houghton, MI)

  • 1998–2000: Chair, College of Science and Arts Tenure and Promotion Committee
  • 1998-1999: Member, MTU Search Committee for Vice-Provost for Instruction
  • 1997–1998: Member, Senate Research Policy Committee
  • 1995–1998: Department Representative, University Senate
  • 1995–1996: Co-author and instructor in MTU’s Orientation for New Faculty which for the first time focused on teaching and included an intensive two-day workshop and weekly seminars through the academic year.
  • 1992–1994, 1999–2000: Director, Graduate Studies,
  • 1991–2000: Member, department committees: Undergraduate Curriculum, Equipment, Graduate Committee, Space, Faculty Search(s)