Open Undergraduate Research Projects

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

Project & AdvisorDescription & 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 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 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.

Characterizing the information capacity of the human auditory system

Advisor:
Pulkit Grover
pulkit@cmu.edu

Open for: Junior, Senior, IMB
Skills: mathematics, signal processing, probability

Strong mathematical and signal processing background needed

Compiler for intermittent software on energy-harvesting hardware

http://brandonlucia.com

Advisor: 

Brandon Lucia

blucia@cmu.edu 

Open for: Junior, Senior, IMB

Skills: C knowledge, LLVM knowledge a plus. Embedded experience would be useful.

We have developed a new programming language that is robust to intermittent execution on energy-harvesting computers that do not use a battery or wired power supply. Intermittent execution may be interrupted at any point by a power failure if energy to harvest becomes unavailable. We recently developed Chain, a new programming language that is robust to intermittent power. The project here is to implement a compiler pass using the popular LLVM framework to compile Chain programs to run on real, energy-harvesting hardware.

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.

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 with
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: Sophmore, 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 activity of neurons.

Discrete Modeling and Hardware Emulation of Dynamical Systems
www.ece.cmu.edu/~enyac

Advisor:
Diana Marculescu
dianam@cmu.edu

Open for: Freshman, Sophomore, Junior, Senior, IMB
Skills: C/C++, Python, Verilog, Matlab or R

This project targets the characterization of dynamical systems by translating continuous time to discrete/Boolean models that can be used for faster than real-time hardware emulation on FPGA boards.

Echolocation for Blind Navigation: hardware and app (two separate projects)

Advisor:

Pulkit Grover

pulkit@cmu.edu

Open for: Junior, Senior, IMB

Skills: hardware software interface OR computer vision OR app programming in android/iOS

With Bruno Sinpoli and Laurie Heller, a project that seeks to explore fundamental limits to perception through novel software and hardware design. Will involve interaction with blind individuals in Pittsburgh Blind Rehabilitation Center (if that's something that interests you)

Emergency Information for Non-English Speakers

www.ece.cmu.edu/~peha/bio.html

Advisor:
Jon Peha
peha@cmu.edu

Open for: Sophomore, Junior, Senior, IMB

Skills: Knowledge of GIS would be very useful for this research.

When a disaster such as a hurricane occurs, lives depend on access to current news and information.  In the U.S, the primary method of disseminating emergency information during a disaster is broadcasting, but most of these broadcasts are of little value to non-English speakers.   Are new approaches needed to provide information to some of these individuals in their own language during disasters?  The U.S. Federal Communications Commission, the U.S. Department of Homeland Security, and other organizations need to know.  Using models of broadcaster capabilities, census data, and other information, this study will investigate the extent to which non-English speakers have access today to emergency information in their own language.  It will then look at alternative approaches using newer technologies, and their ability to reach those non-English speakers that are not well served with broadcasting.  

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.


Exploiting Commutativity to accelerate parallel big data computations

http://brandonlucia.com

Advisor:

Brandon Lucia

blucia@cmu.edu 

Open for: Senior, IMB

Skills: C/C++ knowledge. Architecture simulation experience a plus. Big data experience (hadoop, pregel, grappa, graphlab, spark, etc) a plus, but not necessary.

We have developed a new computer architecture design that exploits commutativity to speed up parallel computations. Commutativity means that two computations can be executed in either order and produce a correct results. Our new architecture executes commutative computations in parallel on private copies of data and merges their results at the end. Executing on copies of data eliminates data sharing and speeds programs up. This project is to take existing big data computations (especially graph computations) and re-write or modify them to work with our system, in order to accelerate them. The goal is to run them natively and in simulation and show parallel performance improvements.

High-Level Performance/Power Characterization in Matlab Simulink
www.ece.cmu.edu/~enyac

Advisor:
Diana Marculescu
dianam@cmu.edu

Skills: C/C++/MATLAB/Perl; Knowledge of Simulink for modeling high-level algorithms/applications.
Open for: Sophomore, Junior, Senior, IMB

A commonly used system design flow in the industry is to start with a high level description of an algorithm/application, model it in high level platforms like Simulink and/or MATLAB, and then implement its hardware (RTL) architecture using automated tools like HDL Coder or manually writing the RTL code. This project explores a high-level characterization of power/performance within Simulink. Such high-level characterization helps in drastically reducing the design cycle time by allowing systems engineers to think about the hardware cost when modeling their algorithms in Simulink.

Location Privacy and Security in Cellular Systems
users.ece.cmu.edu/~peha

Advisor:
Jon Peha
peha@cmu.edu

Open for: Sophomore, Junior, Senior, IMB
Skills: Knowledge of network protocols, cellular systems, and/or network security mechanisms would be valuable for this work.

Professor Peha has recently uncovered a security vulnerability in the architecture of today’s cellular systems that would allow an attacker to track the location of a cellphone anywhere in the world.  The attacker does not require cooperation from the cellular carrier that serves the tracked device, which means that this technique may be employed by anyone with sufficient resources, including foreign governments and criminal or terrorist organizations.  In this research project, a student will further investigate the technology that makes this attack possible, the extent of the vulnerability, how it got there, and what cellular carriers can do to defend against it.

Low-Power Television vs. High-Power Television

www.ece.cmu.edu/~peha/bio.html

Advisor:
Jon Peha
peha@cmu.edu

Open for: Sophomore, Junior, Senior, IMB

Skills: Background related to wireless signals (e.g. 18-396) is helpful but not required.

In order to make more spectrum available for cellular and Internet services, the U.S. Federal Communications Commission (FCC) will soon take some spectrum that is being used for television and reallocate it to cellular companies. This means some TV broadcasters will be shut down.  When that happens, is it more important to protect the large TV broadcasters, or the small ones?  A typical high-power TV station can reach TV viewers up to 100 km away, blanketing a region of over 30K square km with the same content.  Low-power stations cover much smaller areas, such as a neighborhood.  A low-power station can tailor its content more specifically to the needs and interests of viewers, perhaps covering local politics and news, local sports, community events, and advertising for local businesses.  From a technical perspective, with low-power TV, a single tower serves fewer people, so tower cost per person is higher, but energy consumption is much lower.  The effects of high-power vs. low-power on spectrum efficiency are not well-understand, but are very important because spectrum is limited and increasingly valuable.  This project will examine the costs and efficiencies of low-power versus high-power television in order to help decision-makers at the FCC and the broadcast industry make informed decisions about the allocation and use of TV spectrum.

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.

Platform design of an energy-harvesting compute device

http://brandonlucia.com

Advisor:

Brandon Lucia

blucia@cmu.edu 

Open for: Senior, IMB

Skills: Circuit design knowledge (nothing too advanced, though). Embedded design a plus.

We built a novel energy harvesting computer hardware platform (i.e., circuit board) that we shipped to be used in a satellite launching in Mar. 2016. We want to take our satellite platform design, which harvests solar energy, and make it harvest radio waves. To do that, we need to find and buy, or build from scratch (based on existing designs), an RF-harvesting circuit. Then, we need to integrate that circuit with our existing platform, to replace the solar harvester. The result will be a very small, energy-independent computing/sensing/communicating platform node that we can run arbitrary applications on in real-world environments (like in the city, in the home, wearable, etc).

 

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: Sophmore, 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.

Resource Management in Multi-Core Systems
www.ece.cmu.edu/~enyac

Advisor:
Diana Marculescu
dianam@cmu.edu

Open for: Junior, Senior, IMB
Skills: C/C++, Matlab or R, Python (preferred)

This project uses statistical methods and computer hardware knowledge to characterize workloads in terms of power and performance on different hardware platforms and using them for determining best offline and online approaches for resource management.

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

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.

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.

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).

SPIRAL Project: Software/Hardware Generation for DSP Algorithms                                                                                                     

http://www.spiral.net/ 

Advisor:

Franz Franchetti

franzf@andrew.cmu.edu 

Open for: All undergrads who have taken 18-100 and at least one programming based course and have a basic proficiency with (de)soldering and multimeter and oscilloscope use. 

Skills: Linux and scripting experience is a nice bonus but not necessary.

The purpose of this project is to determine the most accurate and consistent method for measuring power consumed by processors, memory controllers, memory, GPUs and GPU memory across a variety of modern platforms. This will involve: determining how power is distributed and consumed across these systems, how to measure power consumption at each of those points, and how to determine how those measurements relate to each other (computing for losses) in order to validate each measurement methodology. In addition to these questions, we want to determine how to improve the accuracy of measuring the power consumed by different devices (identical VRM across platforms, temperature control, etc). This project is well suited for undergraduates at every level who have basic soldering skills, patience and a desire to tear apart motherboards and graphics cards.

System design and automation for uncovering big mechanism (“why”s in big data) with application in drug discovery and testing

Advisor:
Natasa Miskov-Zivanov
nmiskov@andrew.cmu.edu

Open for: Junior, Senior, IMB
Skills: C/C++, Python, Verilog

System Reliability and Variability Modeling/Optimization for Multi-Cores
www.ece.cmu.edu/~enyac

Advisor:
Diana Marculescu
dianam@cmu.edu

Open for: Junior, Senior, IMB
Skills: C/C++, Matlab or R, Python (preferred)

This project relies on predetermined models for reliability (e.g., aging) and design variability for characterizing large scale multi-core systems in terms of their system lifetime characteristics. Basic statistics/probability and computer systems background recommended.

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 blindspots. Consider 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.

x86 microarchitecture
www.ece.cmu.edu/~franzf

Advisor:
Franz Franchetti
franzf@ece.cmu.edu

Open for: Senior, IMB
Skills: C, Linux

Students with experience in C, x86 assembly, and Linux scripting will help with a in-depth cross-microarchitecture evaluation of the implementation of x86 instructions and their impact on high performance mathematical software.

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.