cucapra / undergrad-research

file issues here if you're interested in doing research with us!
https://capra.cs.cornell.edu/ugresearch.html
0 stars 0 forks source link

Angelica Maria Schell #121

Closed Angelica-Schell closed 8 months ago

Angelica-Schell commented 10 months ago

Personal Details

Name: Angelica Schell

Undergrad or MEng? Undergrad

Year in Cornell:

Junior

Relevant classes: CS 3410: Computer System Organization and Programming, CS 2110 Data Structures and Algorithms using Java, CS 1110: Intro to Computing using Python, CS 4750: Foundations of Robotics, CS 2800: Discrete Structures

Expertise (languages/frameworks/etc.): Python, Java, C

Research

When do you want to do research?

I would like to start this upcoming semester if possible, Spring 2024.

What is exciting to you about research?

I started getting interested in doing research when the CS classes I was taking started getting more interesting and complex, but I had never really been interested in anything involving hardware. However, taking CS 3410 opened my eyes; I had no idea that the integration of hardware and software could be so interesting. CS research involves trying to push the boundaries and learning a field of CS on a deeper level; this is what I really want, to understand CS on a level that I wouldn’t be able to by just taking courses or doing software engineering.

What kind of research do you want to do?

My favorite CS class I’ve taken so far has been CS 3410. This is the class that really made me start getting interested in doing research and in going to grad school. However, within computer architecture, I don’t know exactly what I want to do research in and am looking to explore!

Background

Was there a paper that particularly excited you?

The research paper I thought was particularly interesting was Beyond Static Parallel Loops: Supporting Dynamic Task Parallelism on Manycore Architectures with Software-Managed Scratchpad Memories. The primary purpose of the paper was to propose the use of software-managed scratchpad memories, usually reserved for single-core architecture, to enhance parallelism on manycore architecture.

As stated in the abstract, it is challenging for programmers to handle all aspects of synchronization, something that I can relate to through my attempts at using synchronization, even if what I’ve done is not very complex yet. But I thought that a hardware based improvement to make manycore programmability easier was exciting.

What I really enjoyed about the paper, is that there were enough familiar topics that I was able to understand the gist of the paper, but had enough unfamiliar ones that I was able to learn a lot from it.

Which of the current research projects would you be interested in working on and why? I found the Calyx project to be a fascinating one. The idea that building a hardware accelerator could be considered as simple and quick as creating an app or website is amazing to me. It allows for a more efficient utilization of the underlying hardware resources by integrating hardware-like structural elements with a software-like control flow representation. This combination of hardware and software seems so interesting and has so much potential. This is the kind of research I want to be a part of; revolutionizing the status quo in hardware development.

Anything else you want to tell us about yourself? I am looking to get my PhD in CS and I am especially interested in computer architecture and the intersection of hardware and software. I think that if I were to be accepted to this research position, it would be a great opportunity for me to gain a foundation in this field and explore my interests!

I would also like to mention my relevant coursework that I will be taking this semester, spring 2024: CS 4780: Intro to Machine Learning, CS 4410: Operating Systems, CS 4411: Practicum in Operating Systems, CS 3110: Data Structures and Functional Programming

Attach a CV/Resumé: Angelica Schell - Resume (2).pdf

sampsyo commented 9 months ago

Hi, Angelica! Thanks for getting in touch! We have a couple of ongoing projects that might be a good fit. Give us a little while to sort out some options on our end and we'll get back to you!

Angelica-Schell commented 9 months ago

Thank you Professor! This is very exciting, I’m very much looking forward to hearing back and hopefully working in your lab this semester :)

sampsyo commented 9 months ago

Hi again, @Angelica-Schell—could you please send me (asampson@cs.cornell.edu) and @bcarlet (bc534@cornell.edu) an email so we can find a time to meet up? We have a specific project idea that we'd like to discuss!

Just as a small preview, the idea is related to our ongoing work on synthesizing hardware implementations of fixed-point numerical computations (see https://github.com/orgs/calyxir/discussions/1453 for much more general background). In particular, an issue we've run into lately is the need for a high-performance, correct way to convert datasets between different numerical representations. Like, if we want to run 5 different versions of a program that operate on 5 different fixed-point precisions, we need a way to take a given test input for the program and convert that data into the requisite 5 different formats.

We have a way that has kinda worked for us so far, written in Python and embedded in our driver tool, called fud,, but it has a few limitations and is not very fast. It seems like a fun project to build something more flexible, more efficient, and probably written in Rust… if that appeals to you!

Anyway, we can chat more about specifics when we talk in person.

sampsyo commented 8 months ago

Closing this issue since we've gotten things started!