- Department Head's Office
Primary Research Area
- Software systems - Parallel processing
For more information
- Ph.D., Computer Science, University of California, Berkeley, 1987
- Acting Department Head, Electrical & Computer Engineering - August 2018 to Present
- Chief Scientist, Parallel Computing Institute, University of Illinois at Urbana-Champaign - May 2009 to present
- Sanders III Advanced Micro Devices, Inc., Endowed Chair in Electrical and Computer Engineering - March 2003 to present
- Franklin W. Woeltge Professor of Electrical and Computer Engineering - August 2000 to 2003
- Research Professor of Coordinated Science Laboratory - August 1996 to Present
- Professor, Electrical & Computer Engineering - August 1996 to Present
Major Consulting Activities
- Director, WaterBit, Santa Clara, California, January 2015 to January 2018
- ECE 508, "Parallel Algorithm Techniques." Algorithm techniques for enhancing the scalability of parallel software: scatter vs. gather, problem decomposition, spatial sorting and binning, privatization for reduced conflicts, tiling for data locality, regularization for improved load balance, compaction to conserve memory bandwidth, double-buffering to overlap latencies, and data layout for improved efficiency of DRAM accesses. These techniques address the most challenging problems in building scalable parallel software. (For Fall 2014).
- Coursera Online course, "Heterogeneous Parallel Programming." Developed and created for Spring 2013. This course teaches the use of CUDA/OpenCL, OpenACC, and MPI for programming heterogeneous parallel computing systems. It is application oriented and only introduces necessary technological knowledge to solidify understanding. This course has "drawn about 27,954 users, of those, 13,333 are actively watching videos, while 6,508 are taking quizzes (CSL 2012 Annual Report, p. 7)." More than 2,700 participants received a certificate of achievement. https://www.coursera.org/#course/hetero. (For Spring 2013).
- ECE 598HK, "Parallel Algorithm Techniques." Algorithm techniques for enhancing the scalability of parallel software: scatter-to-gather, problem decomposition, binning, privatization, tiling, regularization, compaction, double-buffering, and data layout. These techniques address the most challenging problems in building scalable parallel software: limited parallelism, data contention, insufficient memory bandwidth, load balance, and communication latency. (For Spring 2013).
- ECE 408, "Applied Parallel Programming." Co-created the course with David Kirk, Chief Scientist and Fellow of NVIDIA. Developed lectures, lab material, final project workshops. The lecture recordings have been downloaded by thousands of students worldwide. A new book has been published: "Programming Massively Parallel Processors, A Hands-on Approach" Morgan Kaufman Publisher, (ISBN 978-0-12-381472-2) - 2010.
- Architecture, microarchitecture, libraries, and programming tools for parallel cognitive computing systems.
- Algorithms and computational complexity
- Biomedical imaging
- Cloud computing
- Computed imaging systems
- Computer architecture
- Logic design and VLSI
- Machine learning
- Machine learning and pattern recognition
- Natural language processing
- Operating systems
- Parallel processing
- Programming languages
- Autonomous Systems and Artificial Intelligence
- Bioelectronics and Bioinformatics
- Cognitive computing
- Computational science and engineering
- Data science and analytics
- Data/Information Science and Systems
- Distributed computing and storage systems
- Imaging science and systems
- Machine learning
- Machine vision
- Medical imaging
- Smart infrastructures
- Speech, language, and audio processing
Books Authored or Co-Authored (Original Editions)
- "Programming Massively Parallel Processors - A Hands-on Approach," David B. Kirk, Wen-mei W. Hwu, First Edition, Morgan Kaufmann, Elsevier, 2010
Books Authored or Co-Authored (Revisions)
- "Programming Massively Parallel Processors - A Hands-on Approach," David B. Kirk, Wen-mei W. Hwu, Third Edition, Elsevier, 2017. (3000+ citations, Google Scholar)
- "Programming Massively Parallel Processors - A Hands-on Approach," David B. Kirk, Wen-mei W. Hwu, Second Edition, Morgan Kaufmann, Elsevier, 2012.
Selected Articles in Journals
- J. M.Cecilia, A. Llanesa, J. L. Abellán, J. Gómez-Luna, L-W. Chang, W. W. Hwu, “High-throughput Ant Colony Optimization on graphics processing units,” Journal of Parallel and Distributed Computing, Vol. 113, March 2018, Pages 261-274.
- N. S. Kim, D. Chen, J. Xiong, W. W. Hwu, “Heterogeneous Computing Meets Near-Memory Acceleration and High-Level Synthesis in the Post-Moore Era,” IEEE MICRO, July/August 2017, pp. 10-18.
- Javier Cabezas, Isaac Gelado, John E. Stone, Nacho Navarro, David Kirk, Wen-mei Hwu. "Runtime and Architecture Support for Efficient Data Exchange in Multi-Accelerator Applications," IEEE Transactions on Parallel and Distributed Systems, 2015.
- Y. Heo, X-L. Wu, D. Chen, J. Ma, and W.W. Hwu, “BLESS: Bloom-filter-based error correction solution for high-throughput sequencing reads,” Bioinformatics, Jan 21, 2014.
- Stratton, John A.; Rodrigues, Christopher I.; Sung, Ray; Chang, Li-Wen; Anssari, Nasser; Liu, Daniel; Hwu, Wen-mei; Obeid, Nady, "Algorithm and Data Optimization Techniques for Scaling to Massively Threaded Systems", IEEE Computer, vol. 45, no. 8, pp. 26-32, Aug. 2012 .
- S. Ryoo, C.I. Rodrigues, S.S. Stone, J.A. Stratton, Z. Ueng, S.S. Barghsorkhi, W.W. Hwu, "Program Optimization Carving for GPU Computing," Journal of Parallel and Distributed Computing (2008), doi:10.1016/j.jpdc.2008.05.011.
- S.S. Stone, J.P. Haldar, S. C. Tsao, W.W. Hwu, B.P. Sutton, Z.P. Liang, “Accelerating Advanced MRI Reconstruction on GPUs,” Journal of Parallel and Distributed Computing, (2008), doi:10.1016/j.jpdc.2008.05.013.
- Hillery C. Hunter, Erik M. Nystrom, Daniel A. Connors, Wen-mei W. Hwu, Hardware-Compiler Co-Design for Adjustable Data Power Savings, International Journal of Embedded Systems. February 2007.
- R.D. Barnes, S. Ryoo, and W. W. Hwu, "Tolerant Cache-Miss Latency with Multipass Pipelines," Special Issue on Top Picks from Microarchitecture Conferences, IEEE Micro, Volume 26, No. 1, January/February 2006
Articles in Conference Proceedings
- M. Hidayetoglu, C. Pearson, I. El Hajj, L. Gurel, W. C. Chew, W. W. Hwu, "A Fast and Massively-Parallel Solver for Nonlinear Tomographic Image Reconstruction", In Proceedings of the 32nd IEEE International Parallel and Distributed Processing Symposium (IPDPS), May, 2018.
- W. W. Hwu, I. El Hajj, S. Garcia de Gonzalo, C. Pearson, N. S. Kim, D. Chen, J. Xiong, Z. Sura, "Rebooting the Data Access Hierarchy of Computing Systems", In IEEE International Conference on Rebooting Computing (ICRC), November, 2017.
- P. Bruel, S. Rahul Chalamalasetti, C. Dalton, I. El Hajj, A. Goldman, C. Graves, W. W. Hwu, P. Laplante, D. Milojicic, G. Ndu, J. P. Strachan, "Generalize or Die: Operating Systems Support for Memristor-based Accelerators,â€ In IEEE International Conference on Rebooting Computing (ICRC), 2017.
- Juan Gómez-Luna, Izzat El Hajj, Li-Wen Chang, Victor Garcia-Flores, Simon Garcia de Gonzalo, Tom Jablin, Antonio J. Peña, Wen-mei Hwu, "Chai: Collaborative Heterogeneous Applications for Integrated-architectures," JEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2017.
- Li-Wen Chang, Juan Gómez-Luna, Izzat El Hajj, Sitao Huang, Deming Chen, Wen-mei Hwu, "Collaborative Computing for Heterogeneous Integrated Systems," ACM/SPEC International Conference on Performance Engineering (ICPE), 2017.
- Sitao Huang, Gowthami Jayashri Manikandan, Anand Ramachandran, Kyle Rupnow, Wen-mei Hwu, Deming Chen, "Hardware Acceleration of the Pair-HMM Algorithm for DNA Variant Calling," International Symposium on Field-Programmable Gate Arrays (ISFPGA), 2017.
- Mert Hidayetoglu, Carl Pearson, Weng Cho Chew, Levent Gurel, Wen-mei Hwu, "Large Inverse-Scattering Solutions with DBIM on GPU-Enabled Supercomputers," Applied and Computational Electromagnetics Symposium (ACES 2017), Florence, Italy.
- Izzat El Hajj, Alexander Merritt, Gerd Zellweger, Dejan Milojicic, Reto Achermann, Paolo Faraboschi, Wen-mei Hwu, Timothy Roscoe, Karsten Schwan, "SpaceJMP: Programming with Multiple Virtual Address Spaces," Proceedings of the 21th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16), April 2-6, 2016.
- Li-Wen Chang, Hee-Seok Kim, Wen-mei Hwu, "DySel: Lightweight Dynamic Selection for Kernel-based Data-parallel Programming Model," Proceedings of the 21th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16), April 2-6, 2016
- Li-Wen Chang, Izzat El Hajj, Hee-Seok Kim, Juan Gómez-Luna, Abdul Dakkak, Wen-mei Hwu, "A Programming System for Future Proofing Performance Critical Libraries," Proceedings of the 21th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2016), March 12-16, 2016.
- Li-Wen Chang, Izzat El Hajj, Christopher I. Rodrigues, Juan Gómez-Luna, Wen-mei Hwu, "Efficient Kernel Synthesis for Performance Portable Programming," Proceedings of the 49th Annual IEEE/ACM International Symposium on Microarchitecture, 2016.
- Izzat El Hajj, Juan Gómez-Luna, Cheng Li, Li-Wen Chang, Dejan Milojicic, Wen-mei Hwu, "KLAP: Kernel Launch Aggregation and Promotion for Optimizing Dynamic Parallelism," Proceedings of the 49th Annual IEEE/ACM International Symposium on Microarchitecture, 2016.
- Juan Gómez-Luna, Li-Wen Chang, Wen-mei Hwu, I-Jui Sung, Nicolás Guil, "In-Place Data Sliding Algorithms for Many-Core Architectures," Parallel Processing, 2015 44th International Conference on (ICPP 2015).
- Hee-Seok Kim, Izzat El Hajj, John A. Stratton, Steve S Lumetta, Wen-mei Hwu. "Locality-Centric Thread Scheduling for Bulk-synchronous Programming Models on CPU Architectures," International Symposium on Code Generation and Optimization (CGO), 2015. Best Paper Award Nominee.
- X. Chen, L.-W. Chang, C.I. Rodrigues, J. Lv, Z. Wang, W.W. Hwu, "Adaptive Cache Management for Energy-efficient GPU Computing," Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture, December 2014
- J. Cabezas, L. Vilanova, I. Gelado, T. Jablin, N. Navarro, W. W. Hwu, "Automatic Execution of single-GPU Computations Across Multiple GPUs," Proceedings of the 23rd International Conference on Parallel Architecture and Compilation (PACT), 2014
- C. Rodrigues, A. Dakkak, T. Jablin and W.W. Hwu, "Triolet: A Programming System that Unifies Algorithmic Skeleton Interfaces for High-Performance Cluster Computing," Proceedings of the 19th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, February, 2014.
- I.-J. Sung, J. Gomez-Luna, J. M. Gonzalez-Linares, N. Guil and W.W. Hwu, "In-Place Transposition of Rectangular Matrices on Accelerators," Proceedings of the 19th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, February, 2014.
- A. Papakonstantinou, D. Chen, W.W. Hwu, Wen-mei; Cong, Jason; Liang, Yun, "Throughput-Oriented Kernel Porting onto FPGAs," Proceedings of the 50th Annual Design Automation Conference, May 2013.
- L. Chang, J.A. Stratton, H. Kim, and W.W. Hwu, “A Scalable, Numerically Stable Tridiagonal Solver Using GPUs,” The International Conference for High-Performance Computing Networking, Storage, and Analysis (SC’12), Salt Lake City, 2012.
- Invited Lecture, "Rebooting the Data Access Hierarchy in Computing Systems." IEEE ICRC 2017, McLean, Virginia
- Invited Lecture, "Codesigning Cognitive Computing Systems and Applications." Nvidia GPU Technology 2017 Conference, Washington, D.C.
- Keynote, "Architecture and Software for Emerging Low-Power Systems." IEEE SLPED 2017, Taipei, Taiwan
- Severo Ochoa Seminar Series, “Game-Changing Applications and Technology Pivots – A Perfect Storm in Computing.” UPC Barcelona, 2017
- Distinguished Lecture, "Innovative Applications and Technology Pivots - A Perfect Storm in Computing." University of California, Irvine, 2017
- Education/Career Keynote, "What a great time to be a student in computing!" ACM/IEEE SC 2016, Salt Lake City, Utah
- Apple Lecture, "Innovative Applications and Technology Pivots - A Perfect Storm in Computing, " 2017, University of Texas, Austin.
- Keynote, "Innovative Applications and Technology Pivots - A Perfect Storm in Computing," ACM/IEEE ICS 2016, Istanbul, Turkey.
- Keynote, "Addressing the Accelerator Programming Challenges in Exascale Systems." IEEE AsHES 2016, Chicago, Illinois
- Distinguished Lecture, "What have we learned about programming heterogeneous computing systems?" UCSB, Santa Barbara, California, 2017
- Distinguished Lecture, "What have we learned about programming heterogeneous computing systems?" Wayne State University, 2015
- Keynote, "Transitioning HPC Software to Exascale Heterogeneous Computing," CEM 2015
- Distinguished Lecture, “Rethinking Computer Architecture for Energy Limited Computing,” University of Chicago, 2015
- Keynote, “Rethinking Computer Architecture for Throughput Computing.” SAMOS'13, Samos, Greece
- Keynote, "Scalability, Portability, and Numerical Stability in Many-core Parallel Libraries." HiPEAC'13, Berlin, Germany
- Keynote, "Application Scalability – Key to Low Power, Performance Growth, and Exascale." COOL Chips XV, Yokohama, Japan, 2012
- Distinguished Lecture, "The Parallel Revolution in Computational Science and Engineering." Academia Sinica, Taipei, Taiwan, 2011
- MasterWorks Lecture, "High-Level Programming Models for Heterogeneous Parallel Computing." SC 2010, New Orleans, Louisiana
- Keynote, "Raising the Level of Many-Core Programming with Compiler Technology – Meeting a Grand Challenge." ACM/IEEE PACT 2010, Vienna, Austria.
- Keynote, "Parallel Computing Revolution in Video Processing." ICME 2009, New York City, New York
- Keynote, "Many-core Parallel Computing - Can compilers and tools do the heavy lifting?" IEEE IPDPS 2009, Rome, Italy
- Keynote, "Many-core computing "Current Victories and Coming Battles in Application Development." 37th Speedup Workshop on High-Performance Computing, 2008, Zurich, Switzerland
- Distinguished Lecture, "Many-core GPU - Current Victories and Coming Battles." Samsung Research, 2008, Seoul, South Korea
- Distinguished Lecture, "Programming Massively Parallel Processors." Chinese Academy of Sciences, 2008, Beijing, China
- Keynote, "The Universal Parallelism Vision from Illinois." Intel Programming Systems Conference, 2008, Santa Clara, California
- Keynote, "Many-core GPU Computing - Current Victories and Coming Battles in Application Development." Multicore Expo, 2008, Santa Clara, California
- Keynote, "GPU Computing Research at UIUC." ManyCore Workshop, 2008, Shanghai, China
- Distinguished Lecture, "The Future of Scalable Computing Environments." Ohio Supercomputer Center, 2008, Columbus, Ohio
- Distinguished Lecture, “Accelerating Science and Engineering Applications with GPU Computing.” Ohio State University, Columbus, 2008, Ohio
- Distinguished Lecture, "GPU Computing - why is it exciting so many application developers." University of Toronto, Toronto, 2007, Ontario, Canada
- Keynote, "GP Computing: Hardware, Architecture Tools and Education." GPGPU-1, 2007, Boston, Massachusetts
- Invited Lecture, "Top Five Reasons Why Sequential Programming Models Could be the Best Way to Program Many-core Systems." P=ac2, IBM, 2006, Yorktown Heights, New York
- Distinguished Lecture "Towards Ultra-efficient Computing Platforms." University of Texas Austin, 2005, Austin, Texas
- Keynote "Workload Characterization and Run-time Code Adaptation." IEEE IISWC, 2001, Austin, Texas
- Keynote, "EPIC Architecture." All-Spain Parallelism Conference, 1999.
- Keynote, "VLIW: Is it for Real This Time?" ACM/IEEE MICRO-27, 1994.
- College of Engineering Rose Award for Teaching Excellence, University of Illinois at Urbana-Champaign. (2018)
- College of Engineering Collins Award for Innovative Teaching, University of Illinois at Urbana-Champaign. (2014)
- Engineering Council Award for Excellence in Advising, University of Illinois at Urbana-Champaign. (2013)
- ECE Outstanding Teacher Award. (2002)
- Inclusion in the 1992, 1993, 1994, 1997, and 2001 Advisor's List, College of Engineering, University of Illinois.
- Inclusion in the Incomplete List of Teachers Ranked as Excellent, University of Illinois, Spring 2018, Spring 2017, Fall 2016, Fall 2015, Spring 2013, Fall 2102, Fall 2012, Fall 2009, Spring 2009, Fall 2007, Spring 2006, Spring 2003, Fall 2003, Spring 2003, Fall 1998, Spring 1998, Fall 1997, Fall 1996, Spring 1996, Fall 1995, Fall 1994, Spring 1994, Fall 1993, Spring 1993, Fall 1992, Spring 1992, Fall 1991, Spring 1991, Fall 1990, Spring 1990, Spring 1989, Spring 1988.
- Tau Beta Pi Daniel C. Drucker Eminent Faculty Award, College of Engineering, University of Illinois, Urbana-Champaign. (2001)
- Pierce Award, College of Engineering, University of Illinois. (1997)
- Eta Kappa Nu Holmes MacDonald Outstanding Teaching Award. (1997)
- Presidential letter from Bill Clinton. (1993)
- Eta Kappa Nu Outstanding Young Electrical Engineer Award for 1993 by the National Jury of Award. (1993)
- MICRO Test-of-Time Award, International Symposium on Microarchitecture (2014)
- IEEE Computer Society B. R. Rau Award. (2014)
- NVIDIA CUDA Center of Excellence (CCoE) Achievement Award - Annual Competition among 22 CCoEs worldwide. (2014)
- IBM Faculty Award. (2013)
- NVIDIA CUDA Center of Excellence (CCoE) Achievement Award - Annual Competition among 22 CCoEs worldwide. (2013)
- Best Paper Award from FCCM 2011. "Multilevel Granularity Parallelism Synthesis on FPGAs", Papakonstantinou, Alexandros; Liang, Yun; Stratton, John A.; Gururaj, Karthik; Chen, Deming; Hwu, Wen-mei; Cong, Jason. Proceedings of the 2011 International Symposium on Field-Programmable Custom Computing Machines (FCCM). (2011)
- Distinguished Alumni Award, Electrical and Computer Science Department, University of California, Berkeley. (2010)
- Best Paper Award, “XMalloc: A Scalable Lock-free Dynamic Memory Allocator for Many-core Machines,” Proceedings of the 10th IEEE 1st Workshop on Frontier of GPU Computing, International Conference on Computer and Information Technology (CIT 2010). (2010)
- Best Self-Built Cluster Award, SC 2010. (2010)
- UC Berkeley Distinguished Alumni Award in Computer Sciences. (2010)
- IEEE Computer Society Charles Babbage Award. (2009)
- ISCA Influential Paper Award. (2006)
- IEEE Micro's Top Picks from the Microarchitecture Conferences. (2005)
- ACM Fellow. (2002)
- ComputerWorld Honors Archive Medal, Nominated by Hewlett-Packard. (2002)
- Tau Beta Pi 2001 Daniel Drucker Eminent Faculty Award. College of Engineering, University of Illinois, Urbana-Champaign. (2001)
- ACM Grace M. Hopper Award. (1999)
- IEEE Fellow. (1998)
- ACM SigArch Maurice Wilkes Award. (1998)
- University Scholars Award, University of Illinois. (1994)
- Senior Xerox Award for Faculty Research, College of Engineering, University of Illinois. (1994)
- Best paper award for, "Comparing Static and Dynamic Code Scheduling for Multiple-Instruction-Issue Processors," in the Proceedings of the 24th Annual ACM/IEEE International Symposium on Microarchitecture, Albuquerque, New Mexico. (1991)
- NSF Research Initiation Award. (1988)
- Best paper award for "HPSm2: a Refined Single-chip Microengine," presented at the 21st Annual Hawaii International Conference on System Sciences. (1988)
- Best paper award for "An HPS Implementation of VAX; Initial Design and Analysis," presented at the 19th Annual Hawaii International Conference on System Sciences. (1986)
Public Service Honors
- IEEE IPDPS Recognition of Service Award. (2009)
- ACM Recognition of Service Award. (2008)
- ACM Recognition of Service Award. (2003)
- IEEE Computer Society Certification of Appreciation. (2001)
- ACM Recognition of Service Award. (1994)
- IEEE Computer Magazine 1993 list of distinguished reviewers. (1993)
- IEEE Computer Society Certificate of Appreciation. (1993)
- CS 483 - Applied Parallel Programming
- CS 508 - Manycore Parallel Algorithms
- CS 597 - Individual Study
- CSE 408 - Applied Parallel Programming
- ECE 199 - Undergraduate Open Seminar
- ECE 408 - Applied Parallel Programming
- ECE 411 - Computer Organization & Design
- ECE 498 - IoT and Cognitive Computing
- ECE 508 - Manycore Parallel Algorithms