Mike MacGregor, PhD, PEng
Pronouns: he, him, his
Contact
Professor, Faculty of Science - Computing Science
- mike.macgregor@ualberta.ca
- Address
-
3-19 Athabasca Hall
9119 116 St NWEdmonton ABT6G 2E8
Overview
About
Education
- B.Sc., Chemical Engineering, University of Alberta, 1978
- M.Sc., Process Control, University of Alberta, 1984
- Ph.D., Computing Science, University of Alberta, 1991
Positions
- 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)
Research
Area
Communication Networks
Interests
Algorithms and Architectures for Routing and Switching.
Summary
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.
Courses
CMPUT 229 - Computer Organization and Architecture I
Number representation, computer architecture and organization, instruction-set architecture, assembly-level programming, procedures, stack frames, memory access through pointers, exception handling, computer arithmetic, floating-point representation, datapath, control logic, pipelining, memory hierarchy, virtual memory. Prerequisite: CMPUT 201 or 275. Credit may be obtained in only one of CMPUT 229, E E 380 or ECE 212.
MINT 709 - Internet Project
Capstone project involving the design or analysis of a significant internetwork or internetworking component. Offered jointly by the Department of Electrical and Computer Engineering and the Department of Computing Science.