Skip to content

CS5229 AY24/25 sem1 P4 Programming Assignment Resources

License

Notifications You must be signed in to change notification settings

NUS-CIR/cs5229-2024-pa2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS5229 Advanced Computer Networks - Programming Assignment 2

This repository hosts the distribution package of Programming Assignment 2 for the NUS CS5229 Advanced Computer Networks course.

Please find the detailed description readme file of each task under the corresponding folder.

Assignment Package

Part A: Baby Steps in P4 (8%)

There are two exercises, namely "A-1: Multicast" and "A-2: Secret Message Exchange" which can be found from the respective subfolders.

Each exercise will constitute 4% each -- total of 8%.

Part B: Distributed Machine Learning Gradient Aggregation with Programmable Switch (SwitchML) (10%)

Part B consist of only one exercise, see the folder part_b/switchml.

This exercise constitutes to 10% of your final grades.

Submission

You should only submit multicast.p4, secret.p4 and switchml.p4 to the designated folders created on Canvas.

This Assignment is a strictly individial work.

Credits

This assignment is constructed by adapting the build scripts and PTF examples that are publicly available at p4-guide by Andy Fingerhut.

In addition, we also adapt existing scripts and tools from p4lang's P4 Tutorials which made it easy to create new exercises.

This assignment is inspired by NSDI 2021 Scaling Distributed Machine Learning with In-Network Aggregation.