Mike MacGregor, PhD, PEng

Professor, Faculty of Science - Computing Science

Pronouns: he, him, his


Professor, Faculty of Science - Computing Science
3-19 Athabasca Hall
9119 116 St NW
Edmonton AB
T6G 2E8




  • B.Sc., Chemical Engineering, University of Alberta, 1978
  • M.Sc., Process Control, University of Alberta, 1984
  • Ph.D., Computing Science, University of Alberta, 1991


  • University of Alberta Vice-Provost & AVP Information Technology (2013 - 2023)
  • Director of Master of Science in Internetworking Program (2003 - Present)
  • Professor, Dept. of Computing Science (1999 - Present)



Communication Networks


Algorithms and Architectures for Routing and Switching.


The performance and scalability of the devices which enable data communications are cornerstones of today's information economy. These devices - routers and switches - are really just specialized computing devices which run a restricted class of algorithms. My main research interest is in studying the architectural features and behavior of these devices and the algorithms they execute. Some of the current questions that need answering include:

  • How do we scale packet inspection and classification for devices that terminate hundreds of links running at terabits per second?
  • What algorithms are appropriate for network bandwidth management and control in an environment where we cannot assume well-behaved protocols?
  • How can we generalize caching to make it useful on interfaces terminating millions of active flows?

The graduate students that I am working with are grappling with such issues using a combination of optimization, discrete event simulation, behavioral simulation, experimental measurement and prototyping. As a group, we are exploring an area on the frontiers of data networking, computer architecture and embedded computing.

The current trend in the network core is to "run fast by running simple" - the core devices are becoming little more than forwarding engines. That is certainly a pragmatic approach, but it does not serve to push the envelope on device architectures as aggressively as the contrarian position: "Let's see how much functionality we can carry in core devices."

Secondarily, I am interested in looking at "architecture in the large" - multi-machine architectures for supporting internet services such as mail and streaming media. I am most interested in design algorithms for such networks. My experience as the architect for a large regional ISP taught me that the internet industry faces huge challenges in delivering exponential growth yearly: there is an insatiable demand for scalability, performance and adaptability.

In my previous life at TRLabs, I developed a variety of algorithms for transport network design and optimization, and applied these algorithms to studies of national transport networks. I also contributed to the review and revision of one specialized network protocol used by the medical imaging community.