Paul Lu, PhD

Professor, Faculty of Science - Computing Science


Professor, Faculty of Science - Computing Science




  • B.Sc., Computing Science, University of Alberta, 1991
  • M.Sc., Computing Science, University of Alberta, 1993
  • Ph.D., Computer Science, University of Toronto, 2000


  • Department Associate Chair (Undergraduate)



Software Systems


Parallel and distributed systems, operating systems, cloud computing, high-performance wide-area networks, bioinformatics.


I am interested in all aspects of high-performance computing, but especially parallel and distributed systems, and cloud computing. My research program centers on systems software (OS, VMs, parallel programming) and, most recently, high-performance data transfers and IaaS cloud computing.


CMPUT 274 - Introduction to Tangible Computing I

This is part 1 of a 2 sequence intensive problem-based introduction to Computing Science. In part 1, the key concepts of procedural programming, basic algorithm design and analysis (lists, queues, trees, sorting, searching) are learned by solving a series of problems using Python. Development is done using the Linux operating system. Prerequisites: Math 30 or 31. Note: this course is taught in studio-style, where lectures and labs are blended into 3 hour sessions, twice a week. Enrollment is limited by the capacity of the combined lecture/lab facilities. Credit cannot be obtained for CMPUT 274 if one already has credit for any of CMPUT 174, 175, or 201, except with permission of the Department.

CMPUT 481 - Parallel and Distributed Systems

This course provides an undergraduate-level introduction to parallel programming, parallel and distributed systems, and high-performance computing in science and engineering. Both shared-memory parallel computers and distributed-memory multi computers (e.g., clusters) will be studied. Aspects of the practice of, and (some) research issues in, parallelism will be covered. There will be an emphasis on thread programming, data-parallel programming, and performance evaluation. Prerequisite: CMPUT 379, or consent of the instructor.

CMPUT 499 - Topics in Computing Science

This topics course is designed for a one on one individual study course between a student and an instructor. Prerequisites are determined by the instructor in the course outline. See Note (3) above.

CMPUT 681 - Topics in Parallel and Distributed Systems

MINT 706 - Internet Application and Programming

Concepts of Internet Applications. Sockets, client-server programming, proxies and gateways, performance, application programming, basic security, example application protocols: SMTP, HTTP, and how to implement them. Possible source code inspection exercises covering wget/HTTP. Offered jointly by the Department of Electrical and Computer Engineering and the Department of Computing Science.

Browse more courses taught by Paul Lu