Andrew W. Moore - Student Project / Dissertation Proposals

There is some arbitrariness to which category projects are put-in, but Part II are intended for final year undergraduate, while the MPhil ACS/Part III have a notably raised expectations. Most of the Part II projects may be extended to create larger projects more appropriate to the higher degrees.

Part II (undergraduate)

Rapid Prototyping of Network Services in C#

Contact: Andrew W. Moore

Due to their performance and flexibility, FPGAs are an attractive platform for the execution of network functions. Making FPGA programming accessible to a large audience of developers, however, has been a challenge for a long time. The Emu framework describes a new standard library for an FPGA hardware compiler that enables developers to rapidly create and deploy network functionality. Emu allows for high-performance designs without being bound to particular packet processing paradigms. Furthermore, it supports running the same programs on CPUs, in Mininet, and on FPGAs. The goal of this project will be to construct a library of functions for Emu and to provide an easy to use software evaluation environment for users.

References:
1 Nik Sultana, Salvator Galea, David Greaves, Marcin Wojcik, Jonny Shipton, Richard Clegg, Luo Mai, Pietro Bressana, Robert Soule, Richard Mortier, Paolo Costa, Peter Pietzuch, Jon Crowcroft, Andrew W Moore, Noa Zilberman, Emu: Rapid Prototyping of Networking Services, Usenix Annual Technical Conference (ATC), July 2017.

Pre-requisites: This project requires basic knowledge of computer networks and C# (or at least C/C)

Visualising the Network Profiles of Datacentre Applications

Contact: Andrew W. Moore

Running an application in a datacentre, we have one important goal: performance. While improving the performance of datacentre applications is the focus of many works, understanding dynamic networking effects on application performance is still in its infancy. Network Profiles is a methodology for characterizing application's performance from a network perspective, using a network appliance developed by our team. The goal of this project is to explore designing an interface that permits visualization of network characteristics caused by particular applications and recorded by the network appliance; further extensions include a control and management user interface to allow the orchestration of the running system: applications and network appliance.

Pre-requisites: This project requires basic knowledge of computer networks, Unix skills, and experience creating online user-interfaces.

Understanding Infiniband

Contact Andrew W. Moore

Infiniband is a suite of networking technologies mainly used in high-performance computing: networked filesystems and shared-memory applications being the most popular. Because infiniband is not a widely used technology, experience with its use is equally limited. This project seeks to rectfy this by creating a number of infiniband tools that may then be used to decode network traces and characterize these systems. Tools will include appropriate infiniband systems dedicated to this work.

Pre-requisites: This project requires basic knowledge of computer networks, Unix skills, C/C programming

Modelling Interconnect Bottlenecks

Contact: Andrew Moore,Noa Zilberman (email)

New computer systems architectures seek to build hyper-converged, large systems, where a large number of compute nodes are connected through a dedicated fabric. Current computer architecture simulators provide a simplistic model of computing interconnect, failing to reflect interconnect bottlenecks. This project aims to extend the gem5 simulator, by providing accurate modelling of the PCIe interconnect. It will then be used to show how interconnect changes can impact and improve overall system performance.

References:
1 gem5

Pre-requisites: This project requires basic knowledge of computer networks and computer architecture.

Modelling Networking Bottlenecks

Contact: Andrew Moore,Noa Zilberman (email)

New computer systems architectures seek to build hyper-converged, large systems, where a large number of compute nodes are connected through a dedicated fabric. Current computer architecture simulators provide a simplistic model of networking devices, failing to reflect networking bottlenecks and properties. This project aims to extend the dist-gem5 simulator, by providing accurate modelling of networking devices. It will then be used to simulate multi-host system performance.

References:
1 Mohammad Alian , Daehoon Kim, Nam Sung Kim, Gabor Dozsa, and Stephan Diestelhorst. Dist-gem5 Architecture. Micro-48 Tutorial.

Pre-requisites: This project requires basic knowledge of computer networks and computer architecture.

NetFPGA PLUS for all

Contact: Andrew W. Moore

The NetFPGA is a line-rate, flexible, and open platform for research, and classroom experimentation. More than 2,500 NetFPGA systems have been deployed at over 150 institutions in over 40 countries around the world. The NetFPGA PLUS is the 4th generation NetFPGA platform based upon a bespoke AMDXilinx FPGA system and utilizing software developed in Cambridge, it has IO capabilities for multiple 100 Gbps operation. Basic NetFPGA functionality supports its operation as NIC, multiport switch, firewall, test/measurement environment, and more.

This project seeks to update a number of older NetFPGA systems for the latest NetFPGA hardware. To this end, this project will involve identifying the most suitable tools to bring the NetFPGA PLUS, basic reference designs up-to-date. Work will involve the full gamut of software and hardware development, from semi-automatic test infrastructure to the evaluation of network functions requiring a keen understanding of IP and Ethernet. Reference designs are the basic foundation for all NetFPGA work, so it is important for the project to ensure these designs are the most current, incorporating design for IPv6 is a logical need for this work.

This project proposal has a large number of paths and extensions including

  • IPv6 support

  • Creating a reference design for an enhanced NIC with transport offload

  • Exploring eBPF modules for the NetFPGA system

References:
1 NetFPGA
2Noa Zilberman, Yury Audzevich, Adam Covington, Andrew W. Moore. NetFPGA SUME: Toward Research Commodity 100Gb/s, IEEE Micro, vol.34, no.5, pp.32,41, Sept.-Oct. 2014

Pre-requisites: This project requires basic knowledge of computer networks, ECAD and (System) Verilog.

Network Profiling of (Big) Data Applications

Contact: Andrew Moore

Big data applications are taking an increasing part in our everday life, from shopping online to social networks. These applications usually run in the cloud rather than on user's devices, which means that knowledge of these application's behaviour is limited to data centre operators. As data centre operators keep their data confidential, very little information was published (e.g. 1,2). In the lack of such ground truth, academic research is limited in its ability to develop novel system and networking solutions for data centres. In this project you will profile the networking characteristics of different big data applications: from standard Memcached benchmarks to astronomy projects. You will run the applications within the local data centre and collect traces of all communication, later analysing them and creating a network profile for each application.

References:
1 Theophilus Benson, Aditya Akella and David Maltz. Network Traffic Characteristics of Data Centers in the Wild. Proceedings of the Internet Measurement Conference (IMC), 2010.
2 Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. Workload analysis of a large-scale key-value store. SIGMETRICS 2012.

Pre-requisites: This project requires basic knowledge of computer networks, and UNIX tools

QUICening NFS

Contact: Andrew W. Moore

The Network File System is one of the earliest yet most widely used applications to arise in the Internet; commonly used within organizations, it permits networked sharing of file-systems. While alternatives have arisen (eg AFS for Apple, and SMB for Windows), NFS has advantages of widely-used, mature implementations across many platforms. The latest QUIC (now, confusingly, called http/2) provides a reliable, user-space transport service operating over UDP. This transport system is robust to possible packet loss, duplication, and reordering as well as a number of improved performance features. File-systems are intrinsically RPC (remote procedure call) operations so may map elegantly to the QUIC model (originally designed to support http at higher performance: http itself also being an RPC model.)

This project would port a user-space NFS system to use the QUIC transport layer. A minimalist implementation would allow performance comparison with TCP/TLS based NFS. Extensions would permit extending the implementation and a more complete operational comparison.

Pre-requisites: This project requires basic knowledge of computer networks, UNIX tools, and will be assisted with knowledge of C/C

Tracing the Machine for fun and profit

Contact: Andrew W. Moore

While systems are continuously updated to provide improved performance, rarely do we ensure our current or updated systems are operating as we would expect. To this end, KUtrace, is (one of many) tracing tool that is intended to impose minimal overheads and a design that lends itself to use for the distributed tracing necessary in our increasingly common “serverless” architectures. KUtrace is a simplified tracing system based upon the authors experiences designing and operating such systems in employers most recently Google.

This project has a variety of pathways to pursue including but not limited to:

  • tracing the hardware's VM system, obviously of critical importance for performance of any VM, this tracing is also core to identifying mis-operation of a VM guest as well as indicating obvious avenues to improve such. This work would seek to implement and demonstrate extensions to the KUtrace system for tracing the host VM hypervisor.

  • a logical alternative to the previous is to study one or more guest VMs allowing better understanding of the use of resources provided by the underlying hypervisor

  • a significant project (practically out of scope for Part II) is to seek understanding of VM guest behaviour on particular hardware by combining the insights gained in kernel, hypervisor, and guest.

  • utilising the KUtrace system to study a current, widely used, application seeking to characterise the behaviour of this application.

Care will be taken to ensure any part II project is tractable and specific, open-ended projects are not recommended for Part 2.

References:
1 Ricahrd L. Sites, Understanding Software Dynamics, Addison-Wesley 2022.

MPhil ACS/Part III (graduate student, taught programmes)

The Networking of Data Science Contact: Andrew W. Moore

Data science has become part of our everyday life, even if we are not aware of it. Networked applications that process huge amounts of data run in the cloud and affect not only social networks and online shopping, but also finance, security and science. Due to the nature of data science applications, they usually run within data centres, and the knowledge of these application's behaviour is limited to data centre operators. As data centre operators keep their data confidential, very little information was published (e.g. 1,2). In the lack of such ground truth, academic research is limited in its ability to develop novel system and networking solutions that fit the age of data science. This project aims to create network profiles for different data science applications: from common key-value store to academic big-data projects (e.g. SKA - the square kilometre array), gathering ground truth data from application running in a local data centre. The outputs of this project will be used to model and assess new data centre architectures, directing future designs.

References:
1 Theophilus Benson, Aditya Akella and David Maltz. Network Traffic Characteristics of Data Centers in the Wild. Proceedings of the Internet Measurement Conference (IMC), 2010.
2 Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. Workload analysis of a large-scale key-value store. SIGMETRICS 2012.

Pre-requisites: This project requires basic knowledge of computer networking

In-Network Computing

Contact: Andrew W. Moore

In-network computing is an emerging research area in systems and networking, where applications traditionally running on the host are offloaded to the network hardware (e.g., switch, NIC). Examples of applications offloaded in the past include consensus protocols, caching and key-value store application. The goal of this project will be to offload a traditional application to run in the hardware (most likely on a NetFPGA platform). There are many applications that can be off-loaded, thus more than one project in available here.

References:
1 Sapio, Amedeo, Ibrahim Abdelaziz, Abdulla Aldilaijan, Marco Canini, and Panos Kalnis. “In-Network Computation is a Dumb Idea Whose Time Has Come.” In Proceedings of the 16th ACM Workshop on Hot Topics in Networks, pp. 150-156. ACM, 2017.
2 Huynh Tu Dang, Pietro Bressana, Han Wang, Ki Suh Lee, Hakim Weatherspoon, Marco Canini, Fernando Pedone, Noa Zilberman, Robert Soulé, “P4xos: Consensus as a Network Service”, Tech Report, University of Lugano 2018/01, May 2018 (link).
3 Nik Sultana, Salvator Galea, David Greaves, Marcin Wojcik, Jonny Shipton, Richard Clegg, Luo Mai, Pietro Bressana, Robert Soule, Richard Mortier, Paolo Costa, Peter Pietzuch, Jon Crowcroft, Andrew W Moore, Noa Zilberman, “Emu: Rapid Prototyping of Networking Services”, Usenix Annual Technical Conference (ATC), July 2017 (link).

Pre-requisites: This project requires basic knowledge of computer networks, ECAD and (System) Verilog..

P4 on NetFPGA PLUS

Contact: Andrew Moore

P4 is a programming language designed to allow programming of packet forwarding dataplanes. In contrast to a general purpose language such as C or python, P4 is a domain-specific language with a number of constructs optimized around network data forwarding. The NetFPGA is a line-rate, flexible, and open platform for research, and classroom experimentation. More than 2,500 NetFPGA systems have been deployed at over 150 institutions in over 40 countries around the world. The NetFPGA PLUS is the 4th generation NetFPGA platform based upon a bespoke AMDXilinx FPGA system and utilizing software developed in Cambridge, it has IO capabilities for multiple 100 Gbps operation. Basic NetFPGA functiona;ity supports its functionality as NIC, multiport switch, firewall, test/measurement environment, and more.

This project aims to enable P4 over the NetFPGA PLUS platform. It will use the current P4 toolchains to compile from P4 to Verilog, and will require creation and testing of appropriate NetFPGA templates for P4FPGA. These designs will map the design to the platform. The generated P4 module will fit into the NetFPGA datapath, and enable new NetFPGA designs using P4.

References:
1 NetFPGA
2Noa Zilberman, Yury Audzevich, Adam Covington, Andrew W. Moore. NetFPGA SUME: Toward Research Commodity 100Gb/s, IEEE Micro, vol.34, no.5, pp.32,41, Sept.-Oct. 2014
3 P4
4 P4FPGA

Pre-requisites: This project requires basic knowledge of computer networks, ECAD and (System) Verilog.