I am delighted to announce that I'll be joining
@MIT_CSAIL
as a tenure-track assistant professor in the 2025-26 academic year!
MIT has an incredible history of connecting programming languages with computer architecture and I could not imagine a better place to pursue my work!
okay hear me out: instead of serving alcohol at profession events like conferences (where younger students can't consume it anyways), we were to instead offer boba
It sounds ridiculous but:
1. everyone likes boba
2. It probably has less sugar than a can of soda
do theory: it's not practical
do applied: it's not deep
build on infrastructure: it's not novel
build new things: you're reinventing the wheel
i wish i could win
My net income for the last three months is negative because I keep paying for conferences and not getting reimbursed for months
This whole "exploiting me because I like my job" thing is getting real old now.
Give grad students now P-cards ffs
CC
@CornellGSU
@CornellCIS
#GradSchool
hack: find a paper reading partner and schedule a weekly reading time.
I‘ve read papers more consistently in the last month than almost any other time in grad school.
Super humbled and excited to be supported by Jane Street's Fellowship next year!!
I'm particularly happy because Jane Street is a solid PL shop and is working on making Hardware Design accessible to the rest of the world so they basically combine all my interests!
Exciting news! Jane Street has announced the winner's of its first Graduate Research Fellowship:
It was a great process, and we were all deeply impressed with the quality of the applicants.
Everyone who knew Priya will always miss the bright light they were, and I want people to remember them, and I want to remember them as I move into a space in which I now remember another bright light that went out this week, just this light in time and in peace
I'm going on the academic and industrial research job market in Fall 2023!
I'm interested building cool programming languages, compilers, and hardware accelerators
Also, I'm spending my last year of grad school at
@MIT_CSAIL
with
@jrk
working on programmability of accelerators
FCRC (and
@PLDI
) is done! Couple of highlights:
I gave my first-ever conference talk*, which was on ! A packed room with lots of cool PL and
@ISCAConfOrg
people
Recording:
(Yes, that's John Hughes and Mary Sheeran in the front!!)
Thread on companies and teams doing fun programming languages, architecture, and compilers work!
Feel free to respond below with self plugs and I'll retweet in the thread 🧵
I'm delighted/excited/thrilled to announce that my first grad school paper "Predictable Accelerator Design with Time-Sensitive Affine Types" has been conditionally accepted to
@PLDI
2020! 🎉🎈🥳🍾
Short thread on some of the results and a link to the preprint >>
After long deliberations, the "special committee on the Rachit Situation" has decided that I can no longer continue as a PhD Student at Cornell.
I must spend the remainder of my time as a PhD candidate. Feel free to blame/thank
@samps
,
@natefoster
(and other non twitter folk).
FWIW, I have enjoyed every moment studying in the USA — surrounded by people who judged me by my ideas instead of my color, my background, or place in the hierarchy.
I hope I can continue doing that.
Hi everyone! I'm on the research job market this year.
I build new programming models to make the *design* and *use* of customized hardware easier
Some highlights: (1\n)
every international student is successful *despite* being an international student
there are no obvious benefits to this life
we just rely on the incredible kindness of people to make us feel home
Super excited to announce that our work, "Stepwise Debugging for Hardware Accelerators", is conditionally accepted to ASPLOS '23!
Checkout the thread for a summary 🧵
I used to worry a lot about "competing projects" in my area of research but after ~5 years I've realized most projects stop evolving 5 minutes after a paper deadline
The way to "win"/do deep research is to keep on building upon your work and infrastructure
@natefoster
told me that a PhD is three papers:
1. You get a problem, a solution and you implement it
2. You get a problem, you solve and implement it
3. You find the problem
The gap between 2 & 3 is so infinitely, dauntingly big that it took forever to cross
I'm seeing anecdotal evidence that attrition rates among PhD students who started during the the pandemic are higher
As I keep saying, without a community of people to support and encourage you, this job is just a lot of work without a whole lot of anything else
I'm absolutely delighted to announce that our paper "Modular Hardware Design with Timeline Types" has been accepted to
@PLDI
'23.
The paper is written in an extremely example-heavy manner so you only have to read the first 2 sections to get it!
1/n
(1/n) Observed an exchange between a student and a senior faculty:
S: Do you consider X in this project?
F: Of source, I've done some work in X *scoffs*. *everyone in the room laughs at S*.
The faculty was a renowned researcher in X. The student wasn't a part of the community.
In 30 minutes of random hanging out with my friend/colleague, I made more progress on research than I did alone in this week
the immeasurable cost of lost creativity from these random encounters during my pandemic PhD will keep me up for many nights
Papers sometimes feel like a terrible way to communicate systems research; systems continue evolving but papers are static
Our compiler () is three years into development but people keep citing the paper and discussing limitations that have been addressed
I've been at
@CornellCIS
for ~2 years now! I wrote a blog post about all the ups and downs during this time:
I added a "failures" section to highlight that I spend most of my time failing at things.
After exactly 4 years at
@CornellCIS
, I'm moving to Seattle to hang out with the
@uwplse
folks as a visiting student
I will pursue the final contractual obligation of my PhD: the Seattle-to-Portland bike; an apparent tradition of my academic lineage b/w
@samps
@djg98115
Instead of saying that "cornell owes me $3k in reimbursement", I'm going start saying that "I gave a multi-billion dollar institute an interest-free loan for thousands of dollars"
Common adage in PhD programs is to not worry about the money but that only applies if you have enough money already to not worry
Prospective students: this is definitely a plus. Carefully contemplate what your life will look like with 29% more money
I'm absolutely delighted to announce that our paper "Modular Hardware Design with Timeline Types" will appear at
@PLDI
'23
The paper is written in an extremely example-heavy style so you only need to read the first two sections to get the big ideas!
🧵
I've written several papers in grad school but this one is unique
I remember the day I saw the problem
It took me couple of months to show it was worth solving
and a couple more to solve it
And so, 1.5 years later, I have solved a problem that I decided was worth solving
In a particularly angst period of my PhD, a prof told me:
"""
It's very easy to avoid feeling like an imposter.
Just stop trying to do new things
Every time you do something new,
someone else has been doing it for longer, better, and more successfully
"""
All people starting PhDs–do an industry internship this summer if you can. That "small" amount of money is basically the entire financial buffer you'll have for 5-6 years
I can't believe how many grad students i know live paycheck-to-paycheck and this is in CS
#AcademicChatter
i love fronting money for this billion dollar institute so that the slow bureaucracy can take weeks to process my reimbursements while i'm out a significant portion of my net worth
#AcademicChatter
Im super excited about this work!!
My extremely grandiose pitch here is to do for hardware what
@rustlang
did for software: meaningful type safety for hardware design!
Our 🌟research compiler🌟, Calyx (), is on Compiler explorer:
Super nice to see it getting adopted by the community!! Lot of work to be done but a good start!
(4/n) Researchers who mock ignorance annoy me.
1. We're not actively trying to be ignorant. If you point young researchers to a resource, they'll probably learn it.
2. You lacked knowledge at some point as well and would probably not be here if people around you mocked you.
I wrote a short overview on FPGAs and their programming models!
I'm excited about this area not only because FPGAs allow software people like me to build hardware but also because PL people have so much to offer in this space!
I'm super excited to announce our workshop on Languages, Tools, and Techniques for Accelerator Design (co-located with
@ASPLOSConf
)!
The problems in this space are wildly interdisciplinary and we need help from everyone: architects and PL people alike!
Along with PL twitter influencers
@koronkebitch
and
@TheAviralGoel
, I'm super excited to announce the first Programming Languages (virtual) Tea!
If you're a PL researcher and looking to meet people in the community, come by!
RSVP here:
More details >>
it feels like a rite of passage for PL people to get obsessed with databases and reinvent datalog
and somehow, i think that's a good thing
but also damn the DB people and their beautiful, finite, practically useful formalisms
Systems research is weird: publishing a paper marks the start, not the end, of a project.
In the one since year publication, we've built significant new tools on top of Calyx (). I'm super excited to announce them:
(1/7)
First paper at
@ASPLOSConf
: Calyx, our intermediate language for generating hardware accelerators.
Calyx tackles the hard problem of analyzing and transforming low-level hardware descriptions using clever language design!
My advisor is buying me a new laptop. I just learned that the delivery is going to be intercepted by Penn so they can “set up the machine”. I pressed, and they said they were installing spyware software called CrowdStrike.
Super excited to host the PL/Architecture external talk series at
@cucapra
and
#CornellPL
!
Since we already have our group lunches over zoom, I decided to have these awesome researchers give talks about their research!
I would've quit grad school several times over without Adrian's guidance and kindness. My only career aspiration is be at least half as supportive to people who work with me as he has been to me.
Congratulations
@samps
!!
My PLDI '23 talk on some new work on hardware design abstractions is finally up!
I'm really excited about the work and redesigning the foundations of HDLs with these ideas:
Idea: twitch streams where i just chat* with other grad students about their cool research and play with their systems
way more interactive & fun than reading papers
*explicitly setting it up as being informal and not a formal research talk
I'm a "senior" PhD student and need to figure out what I'll do with my life
I'm especially curious about chatting with people who work in industrial research-like (broadly construed) positions. If your company hires for such positions, please ping me and I'd love to chat!
Many years of lonely research work becomes worth it when a person you respect acknowledges it.
Having these kinds of interactions has become increasingly hard when there is no regular physical conferences etc., making research and PhDs all that much harder
Two superstar undergrads from our research group,
@cucapra
are applying to grad schools this year:
Caleb Kim and Pai Li have:
1. *Lead* a paper submission for ASPLOS '24
2. *Won* awards at PLDI '23 SRC
3. *Experts* in PL and Comp. Arch.
4. *Built* real systems
Need I say more?
Double Blind paper:
BRILLIANT previous work [10] uses RIGOROUS science to PROVE that this is the BEST way to...
Camera Ready paper:
Our previous work [10] shows...
Whiteboards in various CS labs:
Theory A: beautiful graphs, symmetries, and probabilities
Theory B: languages, denotations, and categories thereof
Systems: the kernel, and a giant arrow through it saying “bypass”
Does anyone have pointers on how to design compiler frontends and the trade-offs involved? There's a lot words spent on the trade-offs in IR design but not much on the concerns of how the frontend should be designed to enable good diagnostics infrastructure, source locations, etc
i wonder why there are so many Haskell-based hardware description languages
i would've imagined FP people would be horrified by ... everything in hardware
Just heard from the
@PLDI
20 committee that they're going virtual...
It's obviously the right decision but I can't get over feeling really sad that I don't get to present my work to my community in person.
I been so excited to give this presentation for a year.
Sys/PL papers are so painful —
The designs can’t always be clean because they interact with real things.
The evals are painful because you have to work with complicated tools.
It takes SO LONG to get to a reasonable, cohesive story.
But there’s nothing else I’d rather do.
I always find it weird when someone is called a "superstar researcher". Research is collaborative, creative, and there is so much luck involved in what get famous
"creative researcher" or " collaborative research" might be more apt anyways?
Teach a person an optimization and it'll be used once.
Teach a compiler an optimization and it'll be used millions of times.
Teach a compiler writer an optimization and it'll never be used because object initialization still doesn't work damnit.
I'm so excited that
@PLDI
has the "SIGPLAN track" for authors to present papers accepted during the pandemic. I was really down about not being able to present my paper in 2020 and really excited to do it this summer.
I continue to appreciate the thoughtfulness of
@sigplan
folks
Some of the work we've been doing at
@cucapra
on building DSL-to-hardware compiler won a
@Google
research award!!
Full credit to
@samps
who actually wrote the grant application!
“Compute is cheap, memory is expensive“ is a well known adage but all our programming languages focus on new compute abstractions
Most successful high performance languages (Rust, Halide) have important memory abstractions
I'm really enjoying working with my undergrad mentees this summer. They've all reached "escape velocity": they solver problems faster than I can come up with them
I go into the office every day excited to learn from them!
One thing I can consistently rely on at
@CornellCIS
is a constant supply of free shirts will cool PL related memes:
(Designed by talented undergrad TAs
@RachelNash
and Sophie Zheng for our Functional Programming course)
I'm pretty sure this outdoes
@JaneStreetGroup
's shirts.
Roughly 5 years ago, we added support for continuations to OCaml, JS, Scala, Dart (and more) without modifying any of the compilers
The trick? We built a source-to-source JS compiler that that implements continuation saving much more efficiently than CPS:
This does a full CPS transform, so your code can block on async JS calls.
If this is shown to work for real-world apps, OCaml might be the best language for JS/Web dev right now (because you can actually program with control flow like a human being).
FCRC (and
@PLDI
) is done! Couple of highlights:
I gave my first-ever conference talk*, which was on ! A packed room with lots of cool PL and
@ISCAConfOrg
people
Recording:
(Yes, that's John Hughes and Mary Sheeran in the front!!)
(3/n) Innocuous jokes like these do real damage -- new members of our communities are afraid to ask questions because they'll be outed as an outsider.
For academia, which is supposed to welcome learning instead of mocking ignorance, this is problematic.
Laptop buying experience
Personal: Delivered in 5 days
Any tech company ever: Walk to tech support and you now have a new laptop
Cornell: Wait 2 months and maybe it'll come your way if the gods will it
Talk to me about how university bureaucracy improves my life
If you're someone working on programming languages/computer architecture/compilers and would like to give a virtual talk to our research group at Cornell, please DM me!
Bonus points if you're organizing talks and would like someone from our lab to give a talk at your school/org!
Corollary: Force all PL people to take computer architecture course and all architects, a PL/compilers course
Let's stop pretending our abstractions are free and our architectures can be designed programmability agnostically
the mythical compiler that takes in C programs, analyzes them, and generates optimized code for your fancy architecture
found (only) in: all computer architecture papers
Excited to be presenting at the inaugural MIT PL Review:
The paper in question is my first project in grad school, Dahlia:
Ideas about type systems and hardware design have morphed into my larger "fearless hardware design" agenda!
me: I don't have much experience writing modern C++...
advisor: you should try doing it! It's a good thing to know.
me (internally): Is this the snake fight? This must be the snake fight.
the mythical compiler that takes in C programs, analyzes them, and generates optimized code for your fancy architecture
found (only) in: all computer architecture papers
First paper at
@ASPLOSConf
: Calyx, our intermediate language for generating hardware accelerators.
Calyx tackles the hard problem of analyzing and transforming low-level hardware descriptions using clever language design!
The architects agree that our papers provide adequate support!!
1. Along with
@peacock_samuel
, we develop a new intermediate language for generating hardware accelerators!
2. Led by the brilliant
@avanhatt
, builds a search-based compiler for high-performance DSP programming!
Why can't we run the LLVM compiler on a GPU?
I heard a senior compilers researcher say that compilers should be embarrassingly parallel but, AFAIK, most compilers only make use of coarse-grained parallelism (file-level).
Why can't compilation pipelines be parallel?
One of the biggest lies in programming: ";" is sequential composition.
";" gives a nice abstraction of over what is going on in modern hardware -- rampant reordering and data dependent execution. The real semantics of ";" are remarkably subtle.