Kuber: Cost-Efficient Microservice Deployment Planner

Public cloud providers offer a variety of VM types, each with its hardware specification and cost, application developers face the problem of picking VM types to run their services. Complicating the problem, multiple microservices can be co-located in the same VM to decrease costs, which raises the number of options to run a microservice-based application exponentially. Kuber – a tool to help the application developer identify the right VM types and microservice co-locations that are performant and cost-effective.

Technologies: Python, Kubernetes, Open Nebula
Sponsor: Samsung Research and Mitacs Accelerate
[code], [web]

   Energy-Aware Scheduling for Microservice-Based Applications

The microservice-centric energy-aware scheduling will periodically monitor network interactions between services and use (1) the observed communication patterns, (2) the node availability, and (3) the quality of service (QoS) requirements, to adjust placement of microservices on physical nodes. Integrated into Kubernetes, our system will help data center operators to optimally distribute interrelated microservice workloads and reduce their physical network usage saving energy consumption.

Technologies: Python, Golang, Kubernetes
Sponsor: Huawei Innovation Research Program
[code], [report]

   EnergyMAC: A Framework for User-centric Energy Control

Smartphones are increasingly becoming an important part of our life. With a limited battery capacity in smartphones, energy efficiency is an important requirement for good android applications. Applications in a smartphone can have varying degrees of importance for a android user. For example, healthcare apps tied to a smartwatch and financial apps which report real-time market updates may be more critical and important to users than mobile games. In the current Android system, there is no feature for user to give more importance for energy usage of certain apps over other. EnergyMAC framework enables users to prioritize energy for high priority applications installed on their smartphones.

Technologies: C, JAVA, Android/Linux Kernel
Sponsor: The Reliable, Secure, and Sustainable Software Lab (ReSeSS) @ UBC
[code], [report]

   Microservices over NDN

Named Data Networking (NDN) is an information centric networking architecture that can route data based on the content names instead of the source and destination address. NDN uses interest packets to request data from content providers and data packets to receive data. At first look, NDNs pure pull-based communication model seems to match the request-reply mechanics of REST interactions. However, modern RESTful communication involves passing client-side information and application state in requests. In this project, we implemented changes to the existing packet format of NDN to facilitate client-side information in interest packets; we explore potential threats to the privacy of REST clients due to shared in-network cache and propose changes to the forwarding strategy which will help in effectively running modern RESTful applications over the NDN communication architecture. Our primary goal in this project is to show that NDN can support modern RESTful communication patterns effectively with minimal changes to existing NDN architecture.

Technologies: C++, Python, NDN
Sponsor: The Reliable, Secure, and Sustainable Software Lab (ReSeSS) @ UBC
[code], [report]

   MPI Network Emulation

Simple network simulator to simulate underlying network properties of a distributed MPI program interacting using a network. I will simulate queue length, jitter and propagation delay of the MPI network. These network properties will be configurable using a configuration file. The MPI program running on the top of network simulator can have distributed workload which can be executed parallelly by passing messages between each other.

Technologies: Python, Linux Kernel Networking
Sponsor: The Reliable, Secure, and Sustainable Software Lab (ReSeSS) @ UBC

   Real Time Controller for X-ray device

  1. Real Time Controller based on Blackberry’s QNX real time operating system.
  2. Controller’s primary function is to regulate entire Angiography (X-ray) system state.
  3. It also controls many aspects of system like radiation regulation, x-ray scene control, and flat detector.
  4. Main programming language used is C++.
  5. Implements many hazard requirements (features that have potential to leak radiation) in the x-ray system.

Technologies: C++, CANOpen, QNX
Company: Siemens

   Power Unit Simulation

  1. Simulates X-ray Power Generator
  2. Mainly used either for software validation or for giving system demos during trade fairs where real x-ray can be harmful.
  3. Completely implemented in C++, uses CANOpen and works on QNX Real Time System.

Technologies: C++, CANOpen, QNX
Company: Siemens

   Validation Framework For Solid State Disk Firmware

  1. Validation Framework provides a front end to the a Solid State Disk Simulator
  2. Framework can be used to simulate Hardware errors in the Solid State Disk there by validating firmware against these errors.
  3. Can be used For stress testing of firmware with various different loads
  4. Implemented in C and works on windows platform

Technologies: C
Company: SanDisk