Carnegie Mellon University

Open undergraduate research projects

Interested students should send resumes directly to the faculty advisor of the project.

Project & Advisor Description & Skills

Accelerating biological systems simulation with high-performance heterogeneous computing platforms (CPU, GPU, FPGA)
http://www.ece.cmu.edu/~sld

Advisor:
Radu Marculescu
radum@cmu.edu

Open for: Senior, IMB
Skills: algorithms, strong programming skills, understanding of HW, creativity

This project looks into developing a computational framework and heterogeneous HW platforms can speed up the simulation of dynamics of bacteria populations

Analyzing Internet Video Performance Bottlenecks
users.ece.cmu.edu/~vsekar

Advisor:
Vyas Sekar
vsekar@andrew.cmu.edu

Skills: C/C++ + scripting languages. 441/345 would be great or at least 213

Internet video today constitutes a significant fraction of internet traffic today. However, there are a significant number of quality issues that user face today and there is a lot of "fingerpointing" across ISPs and content providers; e.g., recent spats between Netflix and Comcast/Verizon etc. The goal of this project will be to develop systematic measurement techniques to diagnose video quality bottlenecks and bandwidth properties to inform the next generation of video bitrate adaptation techniques. If successful we can even have pilot deployments as part of a testbed being developed by the Federal Communications Commission!

Building the Neural Web (a 10,000 Electrode EEG): hardware and algorithms (two separate projects)

Advisor:

Pulkit Grover

pulkit@cmu.edu

Open for: Sophomore, Junior, Senior, IMB

Skills: circuits OR hardware-software interface OR signal processing

With Shawn Kelly, Jeff Weldon, an exciting BrainHUB funded project. We seek to redefine what is possible with these noninvasive brain sensors.

Create Computer Security Curriculum for High School Students

https://picoctf.com

Advisor:
Martin Carlisle 
mcarlisl@andrew.cmu.edu

Open for: Sophomore, Junior, Senior, IMB

Skills: At least 15-213. Experience with CTFs (e.g. picoCTF) helpful. Additional security classes desirable.

Create security problems and curriculum for middle and high school students. 

Data Mining for Social Networks
http://www.ece.cmu.edu/~sld

Advisor:
Radu Marculescu
radum@cmu.edu

Open for: Senior, IMB
Skills: algorithms, strong programming skills, creativity

This project looks into ways of collecting relevant data in social networks (e..g Twitter) and identifying particular patterns of behavior that change dynamically over time.

Design and Implementation of an Ultrasonic Phased Array

https://users.ece.cmu.edu/~mchamanz/

Advisor:
Maysam Chamanzar
mchamanz@andrew.cmu.edu

Open for: Junior, Senior, IMB

Skills: Basic knowledge in circuits. Familiar with electronic characterization tools such as function generators and Oscilloscopes.

This project involves the design and implementation of a circuit using off-the-shelf components for realizing a 16-channel electronic drive circuitry for an ultrasonic phased array. The application will be in the stimulation of the brain for suppressing Epileptic Seizures.

Designing and Evaluating Energy-Efficient Main Memory

https://ece.cmu.edu/~saugatag/

Advisor:
Saugata Ghose
ghose@cmu.edu

Open for: Sophomore, Junior, Senior, Masters

DRAM-based main memory is used in nearly all computers today, but its
energy consumption is becoming a growing concern.  DRAM energy utilization
now accounts for as much as 40% of the total energy used by a computer.
Our goal is to design new DRAM-based memory architectures that reduce the
energy consumption significantly.  This requires a principled approach, where
we must measure how existing DRAM devices consume energy.  Our group has
developed a sophisticated energy measurement infrastructure to collect detailed
information on DRAM energy usage.  You will be involved in designing and conducting experiments to measure energy consumption using our infrastructure.  Based on the data, you will work with other researchers to identify memory operations that consume large amounts of energy, and will design new DRAM architectures that improve the efficiency of these operations. You need to have outstanding programming skills (C/C++), familiarity with

FPGA programming and Verilog/RTL design, computer architecture
background, an interest in developing and evaluating new ideas, and a
strong work ethic.

For example studies you may perform, please see:
"SoftMC: A Flexible and Practical Open-Source Infrastructure for Enabling Experimental DRAM Studies", HPCA 2017.
"Understanding Reduced-Voltage Operation in Modern DRAM Devices: Experimental Characterization, Analysis, and Mechanisms", SIGMETRICS 2017.

"Understanding Latency Variation in Modern DRAM Chips: Experimental Characterization, Analysis, and Optimization", SIGMETRICS 2016.

Designing Human Embedded Systems
http://www.ece.cmu.edu/~sld

Advisor:
Radu Marculescu
radum@cmu.edu

Open for: Junior, Senior, IMB


Skills: hacking skills, programming skills

This project aims at collecting relevant data from cell phone and correlate its various power and performance regimes with user behavior

Developing next generation neural interfaces to understand the neural basis of brain function

Advisor: Maysam Chamanzar mchamanz@andrew.cmu.edu 

Open for: Sophomore, Junior, Senior, IMB, MSc

Skills: basic knowledge in circuits, MATLAB/Python, Labview, exposure to optics is a plus

The research involves theory and experiment of optical, electrical, and ultrasonic modalities to monitor the activity of neurons.

Evaluating and Enabling Processing inside Memory

https://ece.cmu.edu/~saugatag/

Advisor:
Saugata Ghose
ghose@cmu.edu

Open for: Sophomore, Junior, Senior, Masters

Almost all data-intensive workload are bottlenecked in terms of performance and energy by the extensive data movement between processor and memory. We are looking for an enthusiastic student who is hungry for learning and enabling a paradigm shift that can eliminate this data movement bottleneck: computation inside memory (i.e., inside where the data resides). You will be involved in a project that aims to evaluate the benefits of executing data-intensive applications inside specialized logic in memory and developing both mechanisms and simulators for this purpose. You need to have outstanding programming skills (C/C++), computer architecture background, an interest in developing and evaluating new ideas, and strong work ethic. 

For example studies you may perform, please see:

"Ambit: In-Memory Accelerator for Bulk Bitwise Operations Using Commodity DRAM Technology", MICRO 2017.

"Accelerating Pointer Chasing in 3D-Stacked Memory: Challenges, Mechanisms, Evaluation", ICCD 2016.

"LazyPIM: An Efficient Cache Coherence Mechanism for Processing-in-Memory", CAL 2016.

"A Scalable Processing-in-Memory Accelerator for Parallel Graph Processing", ISCA 2015.

"PIM-Enabled Instructions: A Low-Overhead, Locality-Aware Processing-in-Memory Architecture", ISCA 2015.


Experiments for Neurostimulation: An Exercise in Circuits and Systems

Advisor:

Pulkit Grover

pulkit@cmu.edu

 

Multimodal Brain Stimulation using Optogenetics and Ultrasound

www.https://users.ece.cmu.edu/~mchamanz/

Advisor:
Maysam Chamanzar
mchamanz@andrew.cmu.edu

Open for: Junior, Senior, IMB

Skills: Basic knowledge of physics, EM, and circuits. MATLAB and Labview would be helpful to know.

Experimental demonstration of acousto-optic light guiding and penetration in tissue phantom and brain tissue. The project involves hands-on experiments in the lab and is a multidisciplinary project, in which the student will learn the basics of biophotonics, neuroscience, optogenetics, ultrasonics, and electronics. The application of such technologies will be in the next gen brain-computer interfaces as well as finding new therapeutics for Parkinson's disease.

Navigating the Main Memory Landscape with Fast and Novel Infrastructures

https://ece.cmu.edu/~saugatag/

Advisor:
Saugata Ghose
ghose@cmu.edu

Open for: Sophomore, Junior, Senior, Masters

Memory is the major performance, energy and reliability bottleneck of

all data-intensive workloads, e.g., graph processing, machine learning

using large data sets, data analytics, databases, genome analysis. The

landscape of main memory is quickly changing with any technologies

appearing and being proposed. This includes 3D-stacked memory designs

that are capable of processing in memory, new non-volatile memory

technologies that are poised to replace DRAM, and many new types of

DRAM architectures. The impact of such new technologies on systems and

applications need to be quickly evaluated and understood, with

rigorous evaluation infrastructures. Our group develops and openly

makes available such infrastructures. A prominent example is

Ramulator, which is a very flexible and fast open-source

infrastructure for simulating DRAM architectures:

https://github.com/CMU-SAFARI/ramulator This infrastructure is widely

used in both academia and industry (e.g., by Google, Apple, AMD,

Samsung).

 

Your task in this project is to first understand Ramulator and then

improve and extend it. Some extensions include support for the new

technologies mentioned above (processing in memory, non-volatile

memory, hybrid memories, new DRAM architectures). You will also

evaluate the impact of such technologies on real workloads. You need

to have outstanding programming skills (C/C++), computer architecture

background, an interest in developing and evaluating new ideas, and

strong work ethic.

 

For example studies you may perform, please see:

"Ramulator: A Fast and Extensible DRAM Simulator", CAL 2015. 

"ChargeCache: Reducing DRAM Latency by Exploiting Row Access Locality", HPCA 2016.

"Low-Cost Inter-Linked Subarrays (LISA): Enabling Fast Inter-Subarray Data Movement in DRAM", HPCA 2016.

Next Generation 3D printers

https://users.ece.cmu.edu/~mchamanz/

Advisor:

Maysam Chamanzar

mchamanz@andrew.cmu.edu 

Open for: Junior, Senior, IMB

Skills: Basic knowledge in EE.

Experimental and theory work to realize a new concept in 3D printing of objects using a holistic approach. The project involves experiments in the lab as well as designing algorithms for creating arbitrary shapes.

Positioning for a Wire-Free EEG hat

Advisor: Swarun Kumar swarun@cmu.edu 

Open For: Junior, Senior, IMB

Skills: C/C++, Matlab

This project aims to build a positioning system for a wearable EEG hat. Today's EEG systems require doctors to know where electrodes (sensors) are located on the head before gathering any data. This results in long delays before the test is administered and restricts EEG to clinical environments. Our goal is to create a positioning system where a handheld device can be used to track EEG electrodes on the hat with mm-precision. We will be developing a handheld positioning system that achieves accuracy far beyond traditional indoor positioning systems that operate at tens of cm-accuracy. In doing so, we aim to develop the building blocks for a wearable EEG hat that users can walk around with, as opposed to waiting for long hours in a doctor's office. Students will be working with RFID-based platforms and programming them with C/C++ and writing Matlab code to process signals.

 

Possibility of wirelessly powering biomedical implants using ultrasonic waves

Advisor: Maysam Chamanzar mchamanz@andrew.cmu.edu 

Open for: Sophomore, Junior, Senior, IMB, MSc

Skills: basic knowledge in circuits, MATLAB/Python, Labview

Reconfigurable datacenters

users.ece.cmu.edu/~vsekar

Advisor: Vyas Sekar

vsekar@andrew.cmu.edu 

Open For: Junior, Senior, IMB

Skills: C/C++, Java, 18-213 required

Conventional static datacenter (DC) network designs offer extreme cost vs. performance tradeoffs. Inspired by recent results in wireless, optical, and free-space optics technologies, we want to explore a datacenter-scale network solution that pushes network design to the extreme by creating a fully reconfigurable datacenter network design. As part of the design, we need new platforms to evaluate such reconfigurable systems at scale as well as design new software-defined network management abstractions to manage such networks that may be constantly in flux.

Reimagining Virtual Memory

https://ece.cmu.edu/~saugatag/

Advisor:
Saugata Ghose
ghose@cmu.edu

Open for: Sophomore, Junior, Senior, Masters

Virtual memory is a critical abstraction in today's computer systems,
and the decisions made by virtual memory managers are essential at
organizing how code and data are laid out in main memory.  As memory becomes
a greater bottleneck for applications today, these memory organization
decisions take on even more importance.  Unfortunately, many of these
decisions are made with incomplete information, as the virtual memory
manager does not coordinate with the applications or with the underlying
hardware to make the best system-wide decisions.  In this project, we want to
redesign virtual memory management in the computer, using information from
across the stack to make coordinated decisions in both the OS and the
processor hardware.  In your role, you would be involved in modifying the
Linux kernel, designing and running experiments on real systems, and learning
and modifying computer architecture simulators.  You need to have outstanding
programming skills (C/C++), computer architecture and OS background, an
interest in developing and evaluating new ideas, and a strong work ethic.
Prior experience in kernel modification preferred, but not necessary.

Seamless Cross-Technology Communication for the Internet of Things

Advisor: Swarun Kumar swarun@cmu.edu 

Open For: Sophomore, Junior, Senior, IMB

Skills: C++/MATLAB Programming Background

The Internet of Things (IoT) is seeing rampant growth with the simultaneous deployment of multiple wireless technologies by multiple vendors. Yet, many IoT applications require interaction and end-to-end communication between devices on independent networks. For instance, your home automation system operating on ZigBee might have to talk to your smartwatch which is Bluetooth enabled. G Generally, inter-technology communication is achieved using gateway devices which translate between protocols. Yet, in doing so, these introduce latency and need frequent upgrades to accommodate every new protocol developed. This project aims to build a cross-technology communication system that seamlessly translates between wireless technologies with minimal overhead.

Secure API usage check via source-level type transformation

Advisor:
Jia Limin

liminjia@cmu.edu

Open for: Junior, Senior, IMB

Skills: Good knowledge of Python, Experience with C.

This project aims to bridge the gap between high-level applied cryptography protocol specification and source-code level protocol enforcement via an annotation system that drives C program rewriting. The annotations specify program requirements on data flow and the rewriting encodes these constraints into a type system that overlays the C type system. Type-checking of the resulting program guarantees enforcement of the high-level security properties. Currently, the project is aiming to move forward on two fronts.

Signal Processing for Neurostimulation

Advisor:
Pulkit Grover
pulkit@cmu.edu

Open for: Junior, Senior, IMB

Skills: Matlab, C++, signal processing, ma

Strong signal processing background needed

Simulating and Programming Highly Integrated Multicore Systems and System-On-Chip
http://www.ece.cmu.edu/~sld

Advisor:
Radu Marculescu
radum@cmu.edu

Open for: Senior, IMB
Skills: strong programming skills, algorithms, HW understanding of computer systems, creativity

This project looks into ways of implementing parallel applications on multiprocessor systems-on-chip where communication happens via a network-on-chip.

Source localization for curing epilepsy

Advisor:

Pulkit Grover

pulkit@cmu.edu

Open for: Sophomore, Junior, Senior, IMB

Skills: signal processing, mathematics, MATLAB programming

With Mark Richardson, a wonderful neurosurgeon at Pitt. A signal processing project with a strong mathematics background requirement. Will involve optimization and programming, with data-analysis of neural data recorded by Mark on his patients.

Spectrum Sharing Among Wireless Systems
users.ece.cmu.edu/~peha

Advisor:
Jon Peha
peha@cmu.edu

Open for: Junior, Senior, IMB

According to conventional wisdom, we currently suffer from a terrible shortage of spectrum. This limits our ability to introduce new wireless products and services such as ubiquitous broadband Internet access, limits our ability to make current systems like cellular telephony more common and less expensive, limits our ability to increase the data rates and ranges of existing products like wifi, and even limits our ability to provide firefighters, police, and paramedics with the communications systems they need to keep us safe. Solving this problem will force the world to re-think how it has managed spectrum and prevented interference for over 80 years.  In actuality, if one measures spectrum utilization (as CMU students have), it appears that much of the spectrum sits idle at any given time. One reason is that we often prevent interference between systems by giving each system exclusive access to a block of spectrum. Thus, whenever such a system is not transmitting, spectrum sits idle.   In this project, we seek new methods that allow disparate wireless systems to share spectrum without causing excessive harmful interference to their neighbors. One current example of technology that operates in shared spectrum is Wi-Fi, but this is just one technical approach, operating under one particular spectrum policy.  There are many alternatives.  Our goal is use spectrum sharing to increase the amount of communications that can take place in a given amount of spectrum by orders of magnitude, which would lead to a revolution in wireless products and services.  For example, can a cellular operator carry some of its traffic in spectrum that is shared with other systems?  Is it possible to let a new system share spectrum with radar or television or satellite links without causing harmful interference to the existing system?  We will consider new approaches, and examine their effectiveness (or ineffectiveness).

Virtual Coaches and Applications

Advisors:
Asim Smailagic / Dan Siewiorek
asim@cs.cmu.edu / dps@cs.cmu.edu

Open for: Junior, Senior, IMB
Skills: Matlab, programming skills

We propose to develop techniques and technologies that will provide appropriate engaging guidance and encouragement in domains of health care, occupational therapy, and social networking. An example would be to motivate patients to engage in their rehabilitation and encourage them to perform rehabilitation exercises correctly at home or with minimal supervision. Our visionary scenario includes longer, more frequent and engaging rehabilitation exercises that would contribute to better patient outcomes, faster recovery and fewer readmissions to hospitals. The Virtual Coach is a core module of the system, providing computer-based exercise monitoring, measurement and feedback that are personalized to the patient. It will incorporate knowledge about the user's state and activities by interfacing with the Monitoring Module. This module is based on a wearable sensor platform (e.g. accelerometers, electrocardiography, respiration). The Virtual Coach will be applicable to other movement-based exercise regimens including those prescribed for occupational therapy or recommended for health maintenance. The systems should be able to perform physical state estimation and human activity recognition, evaluate exercise quality and present progress to patient and clinicians.

Watchdog Timer Effectiveness
http://users.ece.cmu.edu/~koopman

Advisor:
Philip Koopman
koopman@cmu.edu

Open for: Junior, Senior, IMB
Skills: C/Asssembly language, watchdog timers, microcontrollers. 18-348 is excellent preparation

Measuring the effectiveness of watchdog timers for real-time control software with injected software faults. Take programs, corrupt system state, and see how often the watchdog actually catches the problem.

Wearable sensor platform for user state and activity recognition

Advisors:
Dan Siewiorek / Asim Smailagic
dps@cs.cmu.edu / asim@cs.cmu.edu

Open for: Junior, Senior, IMB
Skills: Matlab, programming skills Awareness of the user state is at the core of a computerized human assistance or virtual coach system. The goal of the project is to develop a system capable of recognizing user's state and activities. The students can use (or augment) low-cost off-the-shelf sensors (such as accelerometers, inertial measurement units, microphone), a wearable multi-sensor platform, such as Plux (www.plux.com) or Zephyr (www.fact-canada.com/BioHarness/Zephyr-Bioharness.html). The system should be able to recognize and measure some of the following example states: postural states (e.g. sitting, standing, lying down, curvature), postural communicative gestures (e.g. pointing, questioning), the activity gestures (e.g. waving, walking, exercising) and gate parameters (e.g. stride period and amplitude, arm movements, posture and walking). The sensors will be placed at human body parts (e.g. cap, belt, wrist) to obtain accelerations measurements of body parts needed to measure the level of user activity. Machine learning will be used to recognize user's state and activities. This part of the project requires proficiency in Matlab programming. The students will need to select sensors that will be needed for given state and activity recognition problem, learn about the sensor platform API, and create or modify recognition algorithm.   

Wireless backend for the oculus

users.ece.cmu.edu/~vsekar

Advisors:

Vyas Sekar vsekar@andrew.cmu.edu 

Swarun Kumar swarun@cmu.edu 

Open For: Junior, Senior, IMB

Skills: C/C++, Java, 18-213 required

There has been quite a bit of buzz about the Oculus VR headset. The more powerful version of the Oculus needs a tethered backend to a high-end desktop for running real-time processing and graphics rendering. This tether however seriously hinders the user experience and can be an impediment to a range of potential applications. The goal of this project will be to design and implement a “wireless backend” for the Oculus. Note that this is a different kind of wireless link compared to traditional WiFi/wireless -- we need a point to point link with very high bandwidth and very low latency. The latency requirement is especially tight as there can be potential health and user experience implications (e.g., nausea) if the latency is high.

Wireless Navigation of Robots

Advisor: Swarun Kumar swarun@cmu.edu 

Open For: Junior, Senior, IMB

Skills: C/C++, Matlab

Autonomous navigation -- whether for robots or cars, suffers a critical challenge -- vehicles cannot detect objects in blindspotsConsider for example a car pulling out of a hidden driveway or a pedestrian occluded by poor visibility conditions. We aim to use wireless signals to remedy this problem. This project builds a system for autonomous vehicles to locate obstacles around them by capturing how wireless signals interact with them. It leverages these interactions to identify the material that these obstacles are made of. Students will be working with software radio-based platforms mounted on small robotic platforms and programming them with C/C++ and writing Matlab code to process signals.

Wireless Networks for Connected Vehicles

Advisor:
Jon Peha
peha@cmu.edu
www.ece.cmu.edu/~peha/bio.html

Open for: Junior, Senior, IMB

Skills:  Programming experience required, preferably with C++.  Knowledge of wireless networking helpful, although not necessarily required.

New technology has emerged that can create a wireless mesh communications network to connect moving cars.  The resulting communications network can be used for everything from sending safety-critical warnings that prevent car accidents to streaming movies to viewers in the back seats of cars.  In this project, we are examining technical characteristics of vehicular networks, such as achievable throughput, as well as the economic and policy issues of vehicular networks. This includes determining whether vehicular networks could be a new way of providing Internet access to mobile users that is more cost-effective than traditional cellular technology.  Using extensive data collected from a real vehicular network, we have developed detailed simulation software that allows us to experiment with different kinds of vehicular networks, and assess the costs and benefits of such a system.  For more information, see https://users.ece.cmu.edu/~peha/vehicular.html   There is an opportunity for a student to join this project and work on the simulation.  This may involve modifying and extending the current software, which is written in C++ using a simulation system called NS-3, running the modified software, and analyzing the results.

 

Wireless Power and Data Telemetry for a Retinal Prosthesis for the Blind

Advisor:
Shawn Kelly
skkelly@cmu.edu
http://ndel.ices.cmu.edu

Open for: Junior, Senior, IMB
Skills: Analog circuit design. Embedded systems experience is helpful

Development of inductive coupling systems and circuits for wireless power and data transmission to medical devices, specifically for a retinal prosthesis to restore sight to the blind.