Undergraduate Research Opportunities

Undergraduate Research Opportunities

Persistent Memory

We are looking for students to research the impact of persistent memory on applications. Persistent memory, in short, is nonvolatile memory (think SSDs) used as RAM. The consequence is that applications can persist data structures in memory beyond the lifetime of a process, without serializing data to via I/O to a disk, for instance. This project will include evaluating the performance and programmability of novel persistent memory APIs.

Requirements:

  • Good systems programming skills, e.g., C, C++, Rust, etc.
  • An interest in systems, architecture, compilers, or a related area.

Program Analysis for Configurable Software

We are looking for students to get involved in a research project related to the automated transformation and analysis of large-scale C programs. Your first task would be to recreate the programming interface to the C standard library. The purpose of this project is to provide a simpler description of the standard library API’s interface. It involves defining new header files to replace each standard library include, e.g., stdio.h, stdlib.h, that contain only the function declarations in them. It requires no implementation of these libraries, just the definitions of the functions. The larger utility of this effort is to improve the scalability of automated C transformation algorithms.

Requirements:

  • Good C programming skills
  • Experience using the C standard library

Contact Instructions

When emailing, please use the subject line “[Undergraduate Research] project: PROJECT(s)”, substituting PROJECT(s) with the projects you are interested in. Emails without this subject line may receive no reply.

Contact for an Interview