Project Ideas
A key component of the course will be the creation and/or modification of a systems artifact for the purposes of instrumentation and analysis. The project will involve an exploration of the existing literature, identification of key challenges, development or improvement of a system, and an analysis of the system proving successful completion of your system design, performance improvements compared to the state of the art, or some other assessment objectives. Your primary goal will be to turn your project into a fully-fledged systems research paper.The following list contains rough ideas or problems for your consideration. Part of your job will be to crystallize the purpose, methods, and scope of your specific project into a project proposal. Note that not all projects involve writing a lot of code, but all involve a thorough quantitative evaluation of a system. Students may propose projects or topics not listed here, but should consult with the instructor before submitting a proposal. You can take any of these ideas or topics and add a "twist" to make it more interesting or challenging. You are also welcome to use your own research (with your research/thesis advisor) as inspiration for interesting systems challenges.
- Quality-of-Service and Performance Quality-of-Service or QoS is a term that describes various performance metrics in a system or network. A project could evaluate and compare various systems performance metrics and/or develop and evaluate system enhancements for QoS. For example, a web/multimedia server may need to prioritize service requests based on the type of request, explicit timeliness demands (deadlines), priority classes, etc. Projects that address QoS and performance can cover all aspects of systems (file systems, storage, CPU, etc.).
- Wireless Networks Students interested in wireless networks (Wi-Fi, Bluetooth, Zigbee, etc.) can study protocol performance issues or protocol enhancements, e.g., to improve performance, reliability, or security or to enhance or explore network services. For example, building Wi-Fi ad-hoc networks on Linux systems has always been challenging and a project could modify one or more Linux network modules to facilitate setup and maintenance of ad-hoc networks.
- File Systems A project in the area of file systems could study various performance bottlenecks and propose and develop new or modified file systems that may be provide improved performance for specific application scenarios. For example, with an increased interest in IoT and sensor networks, continuously arriving sensor data must be stored reliably and efficiently in files and databases on a computer system. A project could compare the database performance for various types of file systems, caching strategies, etc.
- Mobile Operating Systems With the rapid increase in mobile computing systems, mobile operating systems have also been receiving increased attention. A project could study the Android OS and propose one or more enhancements to Android that either address certain shortcomings or bottlenecks or provides new services. For example, energy efficiency is a key concern in mobile systems and new Android services could intelligently manage the device's resources to reduce energy costs (e.g., consolidating the sensor requests from multiple competing apps).
- Embedded/RT Operating Systems Embedded (and real-time) operating systems differ significantly from general-purpose systems such as Windows or Linux, e.g., many features are intentionally kept simple to make execution delays predictable and manageable. Projects focusing on embedded systems could study various performance aspects of such systems or develop enhancements that will make these systems suitable for future IoT applications, e.g., by providing support for on-device fusion and aggregation of multiple sensor streams, using prediction algorithms to decide if and which data to cache, or to coordinate processing among multiple devices.
- Real-Time Systems Real-time systems require that operations are not only correct, but also timely. A project could evaluate existing real-time scheduling techniques for various types of applications (sensor streams, multimedia, web servers, etc.) and propose/develop/evaluate a new scheduling strategy that combines advantages of existing techniques.
- Peer-to-Peer P2P communication is popular whenever a centralized solution could easily be overwhelmed. In this project, P2P protocols could be developed and evaluated, e.g., imagine the need to distribute a bug fix to thousands of computers quickly, efficiently, and reliably. How can we build a P2P file distribution system that can satisfy these conflicting requirements?
- Location- and Context-Awareness The availability of context information (location, identity of user, historical data, weather report, type of transportation, schedule, mood, etc.) can provide the foundation for an array of new or improved applications, often refered to as context-aware applications (e.g., imagine a computer that after turning on predicts which apps/services you need and opens them automatically). Projects in this area could focus on either getting context data (how can a system learn about the user or environment) or how to use such context data to provide new services, operate more efficiently, etc.
- Security Security and protection are key responsibilities of a computing system and a project could study various security challenges and concerns and propose new security features, especially addressing the needs of mobile or embedded systems. For example, imagine a web browser on a mobile device that adapts its security features depending on the type of network you are connected to or a browser that notifies the user of potential security concerns (e.g., whenever a website requests confidential information, connects to unknown (foreign) server addresses, etc.).
- Virtual Machines Study various aspects of VM performance or setup/configure an online VM farm that is customized to specific application requirements or security features.
- Cloud Services Develop a back-end cloud service for mobile or embedded devices that provides features and services such as automatic updates and notifications, processing of user/sensor data, sharing of data and resources between multiple users, or the ability to split processing tasks between mobile device and server.
To further assist you in identifying a suitable project topic, below is a list of project titles from previous years:
- A Performance Evaluation of Deep Learning Tasks Across Virtualization Methods
- Job Scheduling in Distributed Hyperparameter Optimization
- Frog Scheduling: A Hard Real-time Multi-Processor Scheduling Algorithm
- Optimizing Image Recognition on Embedded Operating Systems
- Using Neural Networks to Securely Train an Operating System Scheduler
- A Game Theoretic Approach to Incentivizing Resource Management in P2P File Systems
- Matching Bug Fixes to Bug Reports in the Linux Kernel: A Data-Driven Approach
- Temporize Scheduling for Dynamic and Leakage Energy Consumption in Embedded Systems
- A Coreness Approach to Measuring Centrality and Understanding Influence in a P2P Network
- Exposing I/O via /proc on Embedded Linux Systems
- Improving Job Scheduling Algorithms in Grid Systems
- Comparing Genetic Algorithms and Neural Networks in Solving the Job Shop Problem
- Online Learning to Optimize Process Scheduling for Reduced Context Switching
- An Efficient Detection of Network Disruption in Mobile VPNs
- Acrawler: Augmented Multi-Threaded Web Crawler
- Cryptography on ARM is Hard
- Distributed Real-Time System for Scalable and Adaptive Streaming Data Processing
- Simulation and Evaluation of Graph Storage and Caching for Traversal Algorithms
- Distributed Recommender Systems
- Improving Storage System Reliability with Error Prediction
- Machine Learning Based Priority Scheduling
- Affordable Evaluation of Cloud Service Provider Offerings
- UAV-Based Contaminant Mapping
- Recommendations for Distributed Design Decisions via Source Code Analysis
- Android BOINC Cluster: A Cautionary Tale
- RadioHound: A Spectrum Sensing System Setup with Performance Improvements
- Page Replacement Algorithms in Virtual Memory
- A Distributed File System for Heterogeneous Devices
- Real-Time Behavioral Analysis of a Heterogeneous High Performance Embedded System
- Impact of Neural Network Applications on Amazon EC2 Performance
- Using Memory Mapping to Scale Up Machine Learning Algorithms
- Identifying Aging in Operating Systems using Neural Networks
- Noise Aware Energy Efficient Scheduling Approach for Near Threshold Computing Systems
- Azureless - Scalable Serverless Computing in Microsoft Azure
- Performance Comparison of Linux Namespace and Container-based Virtualization for Scientific Computing
- CASM2OS - A Context-Aware Scheduling and Memory Management OS for Android
- BINGO: A Distributed Web Crawler
- Deep Keystroke Dynamics
- Dynamic Resource Allocation for Spark
- Analyzing Distributed Computing Performance with RPi for Surveillance System Tasks
- Machine Learning-based Malware Detection for Android System
- Survey of HPC Problem Domains on Distributed Systems
- An Evaluation Framework for Persistent Memory Systems
- Resource Allocation and Buffer Management strategy for Multiuser Mobile Video Streaming
- Development of a file system for Mbed OS on hybrid Flash
- A Comparative Study of Scheduling Policies for Image Processing Tasks
- File System Benchmarking for Deep learning Application
- Evaluating Serverless Machine Learning Performance on AWS Lambda