When is causal broadcast not enough for causal memory?
There’s a classic tradeoff between safety and liveness in the context of replicated data systems, originally proposed by Eric Brewer and later made precise b...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Back in spring 2020, I was wrapping up the distributed systems course I was teaching, and for the last lecture, decided to spend a little time poking at the ...
This winter, I once again have the chance to offer a graduate seminar course on any topic I want. (Yay!) A couple months ago, I brainstormed a list of topi...
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
TL;DR: Starting today, March 30, 2021, I’m live-streaming my undergraduate distributed systems course on Twitch every Tuesday and Thursday for the next ten w...
For obvious reasons, this quarter I’m teaching my undergrad distributed systems course, CSE138, to over 100 students remotely instead of in person.
This spring, I taught our undergrad distributed systems course here at UC Santa Cruz for the first time! It was a blast, and one of the most fun things abou...
In my distributed systems course a couple weeks ago, we were discussing how the anti-entropy mechanism in the Dynamo key-value store uses Merkle trees to eff...
In the undergrad distributed systems course I’m teaching this spring, I decided I wanted to discuss the Chandy-Lamport algorithm for snapshotting the global ...
This year at SNAPL, I’ll be presenting a new paper, co-authored with my colleague Peter Alvaro, that collects our recent thinking on consistency-aware solver...
In January, I visited New York to give a talk at Jane Street on “Abstractions for Expressive, Efficient Parallel and Distributed Computing” as part of their ...
My first term here at UC Santa Cruz has wrapped up, and with it, my graduate seminar course, Languages and Abstractions for Distributed Programming. I had a...
A couple of weeks ago, I had the chance to do a guest lecture in my colleague Peter Alvaro’s undergrad distributed systems course! Peter is well-known as an...
Hi, friends! This fall will be my first quarter teaching at UC Santa Cruz! I’m very excited to announce that this fall I’m teaching a graduate seminar on o...
I’m serving on the program committee for the 2018 Workshop on Principles and Practice of Consistency for Distributed Data, co-located with EuroSys ‘18 in Por...
Halide is a newish domain-specific language for writing high-performance image processing pipelines, originally created by a group of researchers at MIT and ...
Not too long ago, I was setting up an installation of the Accumulo distributed database. At some point in the process, I ran Accumulo’s bin/bootstrap_config...
A few days ago, I needed to learn what OpenStack is. Here’s what I’ve learned so far.
My misspent youth.
Greetings from Κεφαλονιά!
I spent last week in beautiful Bordeaux, France, attending EuroSys 2015 and the affiliated PaPoC workshop. This was my first EuroSys, as well as my first no...
So there’s this website called DB-Engines that ranks database systems according to their popularity. (They determine popularity based on various factors, in...
I’m excited to be serving on the program committee for this year’s Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC). The work...
A few weeks ago, I defended my dissertation!
Inspired by Brent Yorgey, I’m finally going public with a draft of my dissertation!
I’m happy to announce a draft paper on my work (in collaboration with my advisor, Ryan Newton) on bringing LVar-style threshold reads to the setting of C(v)R...
In a couple of days, I’m headed to the WoDet workshop, which is co-located with ASPLOS in Salt Lake City this year. WoDet is a workshop devoted to determini...
My research on LVars is all about deterministic parallel programming: writing programs so that they can be scheduled onto parallel hardware with the goal of ...
I’m happy to announce a new draft paper, “Joining Forces: Toward a Unified Account of LVars and Convergent Replicated Data Types”, that my advisor and I just...
I’ve just posted a draft of my thesis proposal, which, barring disaster, I’ll be presenting to my research committee next Friday. To spill the beans, here’s...
Update (November 30, 2013): I updated this post to reflect some of my current thinking on threshold reads for CRDTs and why I think high-water-mark reads are...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
In January, I visited New York to give a talk at Jane Street on “Abstractions for Expressive, Efficient Parallel and Distributed Computing” as part of their ...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
This month, I have a guest post, “An introduction to ParallelAccelerator.jl”, appearing on the Julia blog!
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
My misspent youth.
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
Greetings from Κεφαλονιά!
Recently, an acquaintance asked for an explanation of the difference between parallelism and concurrency. Blog posts about how parallelism is not concurrenc...
A few weeks ago, I defended my dissertation!
Inspired by Brent Yorgey, I’m finally going public with a draft of my dissertation!
I’m happy to announce a draft paper on my work (in collaboration with my advisor, Ryan Newton) on bringing LVar-style threshold reads to the setting of C(v)R...
At PLDI a few weeks ago, my advisor Ryan Newton presented our paper “Taming the Parallel Effect Zoo: Extensible Deterministic Parallelism with LVish”. This ...
Last year, I wrote a post about a so-called LVar data structure that, upon closer inspection, turned out not to be an LVar at all. In that post, I proposed ...
My co-authors Aaron Todd, Sam Tobin-Hochstadt, Ryan Newton, and I have just finished up the camera-ready version of our new paper, “Taming the Parallel Effec...
In a couple of days, I’m headed to the WoDet workshop, which is co-located with ASPLOS in Salt Lake City this year. WoDet is a workshop devoted to determini...
My research on LVars is all about deterministic parallel programming: writing programs so that they can be scheduled onto parallel hardware with the goal of ...
Last week at POPL, I presented “Freeze After Writing: Quasi-Deterministic Parallel Programming with LVars”. In this paper, my co-authors Aaron Turon, Neel ...
I’m happy to announce a new draft paper, “Joining Forces: Toward a Unified Account of LVars and Convergent Replicated Data Types”, that my advisor and I just...
Suppose we want to write a program in which two threads, say, t1 and t2, each contribute a Boolean value, either True or False, to a shared result. If both ...
I’ve just posted a draft of my thesis proposal, which, barring disaster, I’ll be presenting to my research committee next Friday. To spill the beans, here’s...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
My co-authors Aaron Turon, Neel Krishnaswami, Ryan Newton, and I are very happy to announce that our paper “Freeze After Writing: Quasi-Deterministic Paralle...
In the writing and speaking I’ve done about LVars, I’ve done my best to show a lot of example code. For the most part, though, the examples have been writte...
Greetings from surprisingly sunny Portland, Oregon: [“LVars: Lattice-based Data Structures for Deterministic Parallelism”]: [FHPC ‘13]: http://hiperfit.dk/...
I’ve written a few posts about my work on LVars, which are data structures that support deterministic multithreaded computation. Fundamentally, there are tw...
Over the last year or two, I’ve been using PLT Redex more and more often as a tool for my research. Redex is a domain-specific programming language and suit...
I’m excited to announce a new paper draft, “LVars: Deterministic Parallelism through Shared Monotonic Data Structures”, that my advisor Ryan and I just submi...
On a trip to Europe last month, I was scheduled to give three talks about my research on deterministic parallelism. The talks all had the same topic, but wi...
A few days ago, my friend and colleague Tim did the describe-what-you-do-using-only-the-ten-hundred-words-people-use-the-most-often thing. I’d tried to do i...
I just had a talk proposal accepted to the student short talk session at POPL, which will be in Rome next week. They’re not messing around when they say “sh...
My misspent youth.
Every now and then, I cave in and look at the Reddit comments on my blog posts. Recently, someone wanted to know the difference between “inflationary” and “...
A couple days ago, my advisor asked me what reading material I would suggest to a new student who wants to learn to do determinism proofs like the ones we di...
Greetings from Κεφαλονιά!
A few weeks ago, I defended my dissertation!
One of the ideas that has been important to me as I’ve worked on LVars is the notion of a frame property. A frame property captures the idea of local reason...
Inspired by Brent Yorgey, I’m finally going public with a draft of my dissertation!
I’m happy to announce a draft paper on my work (in collaboration with my advisor, Ryan Newton) on bringing LVar-style threshold reads to the setting of C(v)R...
At PLDI a few weeks ago, my advisor Ryan Newton presented our paper “Taming the Parallel Effect Zoo: Extensible Deterministic Parallelism with LVish”. This ...
Last year, I wrote a post about a so-called LVar data structure that, upon closer inspection, turned out not to be an LVar at all. In that post, I proposed ...
My co-authors Aaron Todd, Sam Tobin-Hochstadt, Ryan Newton, and I have just finished up the camera-ready version of our new paper, “Taming the Parallel Effec...
In a couple of days, I’m headed to the WoDet workshop, which is co-located with ASPLOS in Salt Lake City this year. WoDet is a workshop devoted to determini...
My research on LVars is all about deterministic parallel programming: writing programs so that they can be scheduled onto parallel hardware with the goal of ...
Last week at POPL, I presented “Freeze After Writing: Quasi-Deterministic Parallel Programming with LVars”. In this paper, my co-authors Aaron Turon, Neel ...
I’m happy to announce a new draft paper, “Joining Forces: Toward a Unified Account of LVars and Convergent Replicated Data Types”, that my advisor and I just...
Suppose we want to write a program in which two threads, say, t1 and t2, each contribute a Boolean value, either True or False, to a shared result. If both ...
I’ve just posted a draft of my thesis proposal, which, barring disaster, I’ll be presenting to my research committee next Friday. To spill the beans, here’s...
Update (November 30, 2013): I updated this post to reflect some of my current thinking on threshold reads for CRDTs and why I think high-water-mark reads are...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
My co-authors Aaron Turon, Neel Krishnaswami, Ryan Newton, and I are very happy to announce that our paper “Freeze After Writing: Quasi-Deterministic Paralle...
In the writing and speaking I’ve done about LVars, I’ve done my best to show a lot of example code. For the most part, though, the examples have been writte...
Lately I’ve been thinking about an analogy between properties that are and aren’t true of LVar operations, and presence or lack of structural rules in a logi...
Greetings from surprisingly sunny Portland, Oregon: [“LVars: Lattice-based Data Structures for Deterministic Parallelism”]: [FHPC ‘13]: http://hiperfit.dk/...
I’ve written a few posts about my work on LVars, which are data structures that support deterministic multithreaded computation. Fundamentally, there are tw...
Over the last year or two, I’ve been using PLT Redex more and more often as a tool for my research. Redex is a domain-specific programming language and suit...
I’m excited to announce a new paper draft, “LVars: Deterministic Parallelism through Shared Monotonic Data Structures”, that my advisor Ryan and I just submi...
On a trip to Europe last month, I was scheduled to give three talks about my research on deterministic parallelism. The talks all had the same topic, but wi...
A few days ago, my friend and colleague Tim did the describe-what-you-do-using-only-the-ten-hundred-words-people-use-the-most-often thing. I’d tried to do i...
I just had a talk proposal accepted to the student short talk session at POPL, which will be in Rome next week. They’re not messing around when they say “sh...
!!Con (pronounced “bang bang con”) West is a radically eclectic, radically affordable conference of ten-minute talks about the joy, excitement, and surprise ...
Her name is Octothorpe.
This year, I’m again serving as a co-chair of the Domain-Specific Language Design and Implementation workshop, together with my friend Sam Tobin-Hochstadt. ...
2018 will be my third and final year serving as the publicity chair for ICFP, the International Conference on Functional Programming. So, not too long ago, ...
I’m serving on the program committee for the 2018 Workshop on Principles and Practice of Consistency for Distributed Data, co-located with EuroSys ‘18 in Por...
This year, Eric Walkingshaw and I are serving as co-chairs of DSLDI, the Domain-Specific Language Design and Implementation workshop, co-located with SPLASH ...
!!Con (pronounced “bang bang con”) is a conference of ten-minute talks about the joy, excitement, and surprise of computing. I co-founded !!Con with a group...
This year, I’m excited to be serving on the program committee for ICFP, the annual academic conference on the theory and practice of functional programming. ...
It’s time once again to sound the call for talk proposals for the Off the Beaten Track workshop, the next edition of which will be co-located with POPL 2017 ...
I’m serving on the program committee for this year’s Domain-Specific Language Design and Implementation workshop (DSLDI). The workshop will be co-located wi...
For the third year in a row, some good friends and I are organizing !!Con (pronounced bang bang con), a conference consisting entirely of ten-minute talks ab...
The submission deadline for Off the Beaten Track is coming up in a bit over a week! I’m looking forward to seeing your talk proposals. In the meantime, I h...
It’s that time again. The call for talk submissions for Off the Beaten Track 2016 is open, and this year I have the honor of serving as the program chair!
Once again this year, I’m serving on the program committee for IFL, the annual Symposium on Implementation and Application of Functional Languages, and the c...
This year, for the second year in a row, my friends and I are organizing !!Con (pronounced bang bang con), a conference about the joy, excitement, and surpri...
The Onward! 2015 conference has opened their call for papers, and I’m very excited to be serving on the program committee this year!
Tiny Transactions on Computer Science, the premier venue for computer science research of 140 characters or less, is seeking submissions for its third volume...
I’m excited to be serving on the program committee for this year’s Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC). The work...
The call for submissions for Off the Beaten Track 2015 is open, and I’m very excited and proud to be serving on the program committee this year!
This year, I’m on the program committee for IFL, the annual Symposium on Implementation and Application of Functional Languages. It’ll be held at Northeaste...
The call for submissions is open for this year’s Haskell Symposium. It will be held in Gothenburg, Sweden this September, and will be co-located, as is trad...
The short version of this post: The last-ever !!Con is coming up in a month from today! Please spread the word about !!Con and get your tickets here!
You may or may not already know about !!Con (pronounced “bang bang con”), the radically eclectic, radically affordable conference of ten-minute talks about t...
!!Con (pronounced “bang bang con”) is a radically eclectic, radically affordable conference of ten-minute talks about the joy, excitement, and surprise of co...
!!Con (pronounced “bang bang con”) West is a radically eclectic, radically affordable conference of ten-minute talks about the joy, excitement, and surprise ...
Her name is Octothorpe.
Friends, I have some big news!
It’s that time of year again: I’m working on organizing !!Con (“bang bang con”), the conference of lightning talks about the joy, excitement, and surprise of...
Every spring, I help review talk proposals for !!Con, a conference of ten-minute talks about the joy, excitement and surprise of computing. Because distilli...
As regular readers of this blog are probably tired of hearing by now, !!Con (“bang bang con”) is a weekend-long conference of ten-minute talks about experien...
!!Con (pronounced “bang bang con”) is a conference of ten-minute talks about the joy, excitement, and surprise of computing. I co-founded !!Con with a group...
A few days ago, I had the fun experience of being interviewed by Philip Guo for his excellent new podcast series. Phil invites his interview subjects to dis...
Update (May 5, 2016): Thanks to everyone who’s offered to chip in and help !!Con out financially! There’s now an easy way to do so as an individual: bangban...
For the third year in a row, some good friends and I are organizing !!Con (pronounced bang bang con), a conference consisting entirely of ten-minute talks ab...
For the last two years, I’ve helped put on !!Con (pronounced “bang bang con”), the radically inclusive conference about the joy, excitement, and surprise of ...
This year, for the second year in a row, my friends and I are organizing !!Con (pronounced bang bang con), a conference about the joy, excitement, and surpri...
I was one of the organizers of !!Con, a free conference about the joy, excitement and surprise of programming that happened two weeks ago in New York.
The Programming Languages Mentoring Workshop is a fun and free event for people who want to learn about careers in programming languages (PL) research. The...
It’s grad school application season1, which means that prospective students have been emailing potential faculty advisors. In my field, computer science, th...
Along with Nate Foster and Talia Ringer, I’m organizing the Programming Languages Mentoring Workshop, or PLMW, in conjunction with the International Conferen...
The Programming Languages Mentoring Workshop, or PLMW, is a one-day event that’s held on the day before the main conference program starts at the four major ...
On July 1, I celebrated my first anniversary of employment as an assistant professor at UC Santa Cruz! As my second year gets under way, now seems like a go...
Recently on Twitter, Justine Sherry pointed out (in response to hearing about a student afraid to minor in art because they thought it would hurt their appli...
Here’s an anonymized question sent to me by a blog reader:
Friends, I have some big news!
A couple months ago, Jean Yang started a crowdsourced list of women doing programming languages and software engineering research. I added my name and adver...
On the Recurse Center’s Zulip community, someone posted this request for advice recently:
I’m currently serving a three-year term as the publicity chair for ICFP. Like many conferences, we use a Gmail account for sending publicity emails. If you...
Several weeks ago, I got this email from a reader of my blog:
I use Twitter a lot. A couple years ago, I was walking through the woods near my building on campus in Indiana when I saw a gorgeous, shiny green critter th...
Recently, a friend told me that one of their pet peeves was being “invited” to do things like review papers on a program committee, rather than being asked t...
A few days ago, in response to my complaining about all the reviewing I’ve had to do lately, an undergrad researcher friend asked me, “what’s the incentive t...
I recently got an email from someone who was about to graduate with an undergrad CS degree and was interested in pursuing programming languages research. Th...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
A while back, Mark Dominus proposed an arithmetic puzzle: combine the numbers 6, 6, 5, and 2 with arithmetic operations (addition, subtraction, multiplicatio...
Update (February 2017): I’ve written a follow-up to this post!
The call for submissions is open for this year’s Haskell Symposium. It will be held in Gothenburg, Sweden this September, and will be co-located, as is trad...
Last week at POPL, I presented “Freeze After Writing: Quasi-Deterministic Parallel Programming with LVars”. In this paper, my co-authors Aaron Turon, Neel ...
Suppose we want to write a program in which two threads, say, t1 and t2, each contribute a Boolean value, either True or False, to a shared result. If both ...
My co-authors Aaron Turon, Neel Krishnaswami, Ryan Newton, and I are very happy to announce that our paper “Freeze After Writing: Quasi-Deterministic Paralle...
In the writing and speaking I’ve done about LVars, I’ve done my best to show a lot of example code. For the most part, though, the examples have been writte...
This post is the second in a series. Last time, we started coding up a toy interpreter for a language of arithmetic expressions. This time, we’ll extend th...
I spent last week volunteering as a resident at Hacker School, where I helped a number of students write small interpreters. For the most part, the students...
I’m excited to announce a new paper draft, “LVars: Deterministic Parallelism through Shared Monotonic Data Structures”, that my advisor Ryan and I just submi...
You may or may not already know about !!Con (pronounced “bang bang con”), the radically eclectic, radically affordable conference of ten-minute talks about t...
On July 1, I celebrated my first anniversary of employment as an assistant professor at UC Santa Cruz! As my second year gets under way, now seems like a go...
Friends, I have some big news!
I started this blog five years ago, in January 2013. At the time, I lived in Bloomington, Indiana and was in the middle of my fifth year of grad school. I ...
Recently I remarked on Twitter, “I should donate to archive.org more. They’re how I know that large parts of my own past actually happened.” By “archive.or...
This year’s International Conference on Functional Programming, or ICFP ‘17 to its friends, will be getting under way in Oxford, UK in just a couple of days....
Update (July 2019): A revised version of this post now appears on PL Perspectives, the SIGPLAN blog.
Several weeks ago, I got this email from a reader of my blog:
It’s been nearly half a year since it happened, so it’s probably about time I mentioned it: the group I originally joined at Intel Labs, the Programming Syst...
Some time ago, in response to my asking what I should write about on this blog, Sumana suggested I write about what my typical day is like. I demurred, sayi...
In his keynote talk at the PaPoC workshop at EuroSys last week, Peter Bourgon described a ha-ha-only-serious metric for whether an idea could be trusted for ...
A few weeks ago, I had the fun and thought-provoking experience of being interviewed about my career by a first-year college student. Conducting an intervie...
Update (June 14, 2017): Updated with rejections from 2016!
Today on Twitter, an informal survey is making the rounds on the experiences of software developers who came to the field from “non-traditional”, that is, no...
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
In January, I visited New York to give a talk at Jane Street on “Abstractions for Expressive, Efficient Parallel and Distributed Computing” as part of their ...
Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
Greetings from Κεφαλονιά!
A few weeks ago, I defended my dissertation!
At PLDI a few weeks ago, my advisor Ryan Newton presented our paper “Taming the Parallel Effect Zoo: Extensible Deterministic Parallelism with LVish”. This ...
Last week at POPL, I presented “Freeze After Writing: Quasi-Deterministic Parallel Programming with LVars”. In this paper, my co-authors Aaron Turon, Neel ...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
On a trip to Europe last month, I was scheduled to give three talks about my research on deterministic parallelism. The talks all had the same topic, but wi...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
Last fall, at the start of my second year at UC Santa Cruz, I taught a graduate seminar on SMT solving and solver-aided systems!
This fall, I’m teaching a graduate seminar on a topic I’m very excited about: the design and implementation of SMT solvers, solver-aided languages, and solve...
This year at SNAPL, I’ll be presenting a new paper, co-authored with my colleague Peter Alvaro, that collects our recent thinking on consistency-aware solver...
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
This year, as I’ve started to dive into neural network verification, I’ve had the chance to learn a little about how SMT solvers are implemented. One thing ...
A few months ago, my group at Intel Labs began sponsoring and collaborating with a team of researchers at Stanford who are extending the capabilities of auto...
Neural networks are turning up everywhere these days, including in safety-critical systems, such as autonomous driving and flight control systems. When these...
A couple months back, I wrote about Pulina and Tacchella’s 2010 paper on verification of safety properties of neural networks. That paper is the earliest th...
Neural networks (NNs) have become a ubiquitous machine learning technique in a wide range of domains. In 2003, some researchers surveyed the literature on v...
This winter, I once again have the chance to offer a graduate seminar course on any topic I want. (Yay!) A couple months ago, I brainstormed a list of topi...
I just finished cleaning up some older course websites and (finally!) switching all my stuff to use HTTPS. In honor of that, here’s a roundup of all the cou...
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
TL;DR: Starting today, March 30, 2021, I’m live-streaming my undergraduate distributed systems course on Twitch every Tuesday and Thursday for the next ten w...
Last fall, at the start of my second year at UC Santa Cruz, I taught a graduate seminar on SMT solving and solver-aided systems!
For obvious reasons, this quarter I’m teaching my undergrad distributed systems course, CSE138, to over 100 students remotely instead of in person.
This fall, I’m teaching a graduate seminar on a topic I’m very excited about: the design and implementation of SMT solvers, solver-aided languages, and solve...
On July 1, I celebrated my first anniversary of employment as an assistant professor at UC Santa Cruz! As my second year gets under way, now seems like a go...
This spring, I taught our undergrad distributed systems course here at UC Santa Cruz for the first time! It was a blast, and one of the most fun things abou...
In the undergrad distributed systems course I’m teaching this spring, I decided I wanted to discuss the Chandy-Lamport algorithm for snapshotting the global ...
My first term here at UC Santa Cruz has wrapped up, and with it, my graduate seminar course, Languages and Abstractions for Distributed Programming. I had a...
A couple of weeks ago, I had the chance to do a guest lecture in my colleague Peter Alvaro’s undergrad distributed systems course! Peter is well-known as an...
Hi, friends! This fall will be my first quarter teaching at UC Santa Cruz! I’m very excited to announce that this fall I’m teaching a graduate seminar on o...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
It’s been nearly half a year since it happened, so it’s probably about time I mentioned it: the group I originally joined at Intel Labs, the Programming Syst...
Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!
This month, I have a guest post, “An introduction to ParallelAccelerator.jl”, appearing on the Julia blog!
Off the Beaten Track at POPL 2016)
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
Some time ago, in response to my asking what I should write about on this blog, Sumana suggested I write about what my typical day is like. I demurred, sayi...
Last September, I began contributing to River Trail, an experimental API for data-parallel programming in JavaScript. It’s been my main project for the last...
The Programming Systems Lab, the group that I recently joined at Intel Labs, is hiring Ph.D. student interns for next summer!
For the last few months, as I’ve been getting ready to finish up grad school, I’ve also spent a lot of time working on figuring out what I’m going to do once...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
This year at SNAPL, I’ll be presenting a new paper, co-authored with my colleague Peter Alvaro, that collects our recent thinking on consistency-aware solver...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
I’m happy to announce a draft paper on my work (in collaboration with my advisor, Ryan Newton) on bringing LVar-style threshold reads to the setting of C(v)R...
My co-authors Aaron Todd, Sam Tobin-Hochstadt, Ryan Newton, and I have just finished up the camera-ready version of our new paper, “Taming the Parallel Effec...
I’m happy to announce a new draft paper, “Joining Forces: Toward a Unified Account of LVars and Convergent Replicated Data Types”, that my advisor and I just...
My co-authors Aaron Turon, Neel Krishnaswami, Ryan Newton, and I are very happy to announce that our paper “Freeze After Writing: Quasi-Deterministic Paralle...
Greetings from surprisingly sunny Portland, Oregon: [“LVars: Lattice-based Data Structures for Deterministic Parallelism”]: [FHPC ‘13]: http://hiperfit.dk/...
I’m excited to announce a new paper draft, “LVars: Deterministic Parallelism through Shared Monotonic Data Structures”, that my advisor Ryan and I just submi...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
Greetings from Κεφαλονιά!
I spent last week in beautiful Bordeaux, France, attending EuroSys 2015 and the affiliated PaPoC workshop. This was my first EuroSys, as well as my first no...
I’m happy to announce a draft paper on my work (in collaboration with my advisor, Ryan Newton) on bringing LVar-style threshold reads to the setting of C(v)R...
In a couple of days, I’m headed to the WoDet workshop, which is co-located with ASPLOS in Salt Lake City this year. WoDet is a workshop devoted to determini...
I’m happy to announce a new draft paper, “Joining Forces: Toward a Unified Account of LVars and Convergent Replicated Data Types”, that my advisor and I just...
I’ve just posted a draft of my thesis proposal, which, barring disaster, I’ll be presenting to my research committee next Friday. To spill the beans, here’s...
Update (November 30, 2013): I updated this post to reflect some of my current thinking on threshold reads for CRDTs and why I think high-water-mark reads are...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
This year, I’m again serving as a co-chair of the Domain-Specific Language Design and Implementation workshop, together with my friend Sam Tobin-Hochstadt. ...
Halide is a newish domain-specific language for writing high-performance image processing pipelines, originally created by a group of researchers at MIT and ...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
At work, I’ve been participating in a series of broad-ranging discussions about the role that domain-specific languages, or DSLs, can play in helping program...
This year, Eric Walkingshaw and I are serving as co-chairs of DSLDI, the Domain-Specific Language Design and Implementation workshop, co-located with SPLASH ...
Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!
I’m serving on the program committee for this year’s Domain-Specific Language Design and Implementation workshop (DSLDI). The workshop will be co-located wi...
Last month, I headed to Pittsburgh for SPLASH 2015. Sadly, the trip was brief, since I had to leave the conference early to make it to a friend’s wedding, b...
Not long ago, I wanted to better understand the notions of “deeply” and “shallowly” embedded languages. Here I mean “embedded” in the sense of, say, “domain...
This year, I’m again serving as a co-chair of the Domain-Specific Language Design and Implementation workshop, together with my friend Sam Tobin-Hochstadt. ...
This year, Eric Walkingshaw and I are serving as co-chairs of DSLDI, the Domain-Specific Language Design and Implementation workshop, co-located with SPLASH ...
I’m serving on the program committee for this year’s Domain-Specific Language Design and Implementation workshop (DSLDI). The workshop will be co-located wi...
Last month, I headed to Pittsburgh for SPLASH 2015. Sadly, the trip was brief, since I had to leave the conference early to make it to a friend’s wedding, b...
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
The Onward! 2015 conference has opened their call for papers, and I’m very excited to be serving on the program committee this year!
Last week I went to Portland to catch the part of the SPLASH1 conference known as OOPSLA. I attended fourteen2 OOPSLA talks, often paying attention! ...
This year at SNAPL, I’ll be presenting a new paper, co-authored with my colleague Peter Alvaro, that collects our recent thinking on consistency-aware solver...
My first term here at UC Santa Cruz has wrapped up, and with it, my graduate seminar course, Languages and Abstractions for Distributed Programming. I had a...
A couple of weeks ago, I had the chance to do a guest lecture in my colleague Peter Alvaro’s undergrad distributed systems course! Peter is well-known as an...
Hi, friends! This fall will be my first quarter teaching at UC Santa Cruz! I’m very excited to announce that this fall I’m teaching a graduate seminar on o...
I spent last week in beautiful Bordeaux, France, attending EuroSys 2015 and the affiliated PaPoC workshop. This was my first EuroSys, as well as my first no...
I’m excited to be serving on the program committee for this year’s Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC). The work...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
A friend who’s listened to me hype up the Off the Beaten Track workshops for the past several years now asks:
It’s time once again to sound the call for talk proposals for the Off the Beaten Track workshop, the next edition of which will be co-located with POPL 2017 ...
Off the Beaten Track at POPL 2016)
We’re gearing up for the 2016 Off the Beaten Track workshop, co-located with POPL in St. Petersburg, Florida next month. If you’ve never been to OBT, it’s a...
The submission deadline for Off the Beaten Track is coming up in a bit over a week! I’m looking forward to seeing your talk proposals. In the meantime, I h...
It’s that time again. The call for talk submissions for Off the Beaten Track 2016 is open, and this year I have the honor of serving as the program chair!
The call for submissions for Off the Beaten Track 2015 is open, and I’m very excited and proud to be serving on the program committee this year!
In my last post, I wrote about a wave equation simulation that I spent a lot of time with as part of my ParallelAccelerator for Julia benchmarking effort. T...
Between mid-2015 and mid-2017, I spent a lot of time on performance measurement for the ParallelAccelerator package for Julia. I curated a collection of wor...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!
This month, I have a guest post, “An introduction to ParallelAccelerator.jl”, appearing on the Julia blog!
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
Between mid-2015 and mid-2017, I spent a lot of time on performance measurement for the ParallelAccelerator package for Julia. I curated a collection of wor...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
At work, I’ve been participating in a series of broad-ranging discussions about the role that domain-specific languages, or DSLs, can play in helping program...
Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!
This month, I have a guest post, “An introduction to ParallelAccelerator.jl”, appearing on the Julia blog!
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
I’m going to be on stage a couple of times at the SPLASH conference this October in Pittsburgh. If you’ll be there, please say hello!
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
A few months ago, my group at Intel Labs began sponsoring and collaborating with a team of researchers at Stanford who are extending the capabilities of auto...
Neural networks are turning up everywhere these days, including in safety-critical systems, such as autonomous driving and flight control systems. When these...
A couple months back, I wrote about Pulina and Tacchella’s 2010 paper on verification of safety properties of neural networks. That paper is the earliest th...
One of the most interesting results from “Explaining and Harnessing Adversarial Examples” is the idea that adversarial examples for a machine learning model ...
Neural networks (NNs) have become a ubiquitous machine learning technique in a wide range of domains. In 2003, some researchers surveyed the literature on v...
In machine learning, computers “learn” by being shown lots of examples; for instance, we might use millions of pictures to train a model that can identify pi...
The Programming Languages Mentoring Workshop, or PLMW, is a one-day event that’s held on the day before the main conference program starts at the four major ...
It’s time once again to sound the call for talk proposals for the Off the Beaten Track workshop, the next edition of which will be co-located with POPL 2017 ...
The submission deadline for Off the Beaten Track is coming up in a bit over a week! I’m looking forward to seeing your talk proposals. In the meantime, I h...
Last week at POPL, I presented “Freeze After Writing: Quasi-Deterministic Parallel Programming with LVars”. In this paper, my co-authors Aaron Turon, Neel ...
My co-authors Aaron Turon, Neel Krishnaswami, Ryan Newton, and I are very happy to announce that our paper “Freeze After Writing: Quasi-Deterministic Paralle...
On a trip to Europe last month, I was scheduled to give three talks about my research on deterministic parallelism. The talks all had the same topic, but wi...
Update (July 2019): A revised version of this post now appears on PL Perspectives, the SIGPLAN blog.
A compiler is a computer program that takes a program as input, does some sort of transformation on it, and returns another program. Most of the time, we th...
I just got back from SPLASH 2015, held in beautiful and topologically interesting Pittsburgh!1 While there, I gave a talk in the SPLASH-I track, and thanks ...
Not long ago, I wanted to better understand the notions of “deeply” and “shallowly” embedded languages. Here I mean “embedded” in the sense of, say, “domain...
This post is the second in a series. Last time, we started coding up a toy interpreter for a language of arithmetic expressions. This time, we’ll extend th...
I spent last week volunteering as a resident at Hacker School, where I helped a number of students write small interpreters. For the most part, the students...
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
A few months ago, my group at Intel Labs began sponsoring and collaborating with a team of researchers at Stanford who are extending the capabilities of auto...
Neural networks are turning up everywhere these days, including in safety-critical systems, such as autonomous driving and flight control systems. When these...
A couple months back, I wrote about Pulina and Tacchella’s 2010 paper on verification of safety properties of neural networks. That paper is the earliest th...
Neural networks (NNs) have become a ubiquitous machine learning technique in a wide range of domains. In 2003, some researchers surveyed the literature on v...
In machine learning, computers “learn” by being shown lots of examples; for instance, we might use millions of pictures to train a model that can identify pi...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
The Programming Languages Mentoring Workshop is a fun and free event for people who want to learn about careers in programming languages (PL) research. The...
Along with Nate Foster and Talia Ringer, I’m organizing the Programming Languages Mentoring Workshop, or PLMW, in conjunction with the International Conferen...
2018 will be my third and final year serving as the publicity chair for ICFP, the International Conference on Functional Programming. So, not too long ago, ...
This year’s International Conference on Functional Programming, or ICFP ‘17 to its friends, will be getting under way in Oxford, UK in just a couple of days....
This year, I’m excited to be serving on the program committee for ICFP, the annual academic conference on the theory and practice of functional programming. ...
Not too long ago, I found myself in a tricky situation with git. I had an enormous git repo containing a few things I wanted to keep and many, many things I...
I’ve just posted a draft of my thesis proposal, which, barring disaster, I’ll be presenting to my research committee next Friday. To spill the beans, here’s...
Update (March 25, 2015): As of today, Hacker School is called the Recurse Center. Everything in this post still applies!
I spent last week volunteering as a resident at Hacker School, where I helped a number of students write small interpreters. For the most part, the students...
Update (March 25, 2015): As of today, Hacker School is called the Recurse Center. Everything in this post still applies!
It’s grad school application season1, which means that prospective students have been emailing potential faculty advisors. In my field, computer science, th...
Recently on Twitter, Justine Sherry pointed out (in response to hearing about a student afraid to minor in art because they thought it would hurt their appli...
On the Recurse Center’s Zulip community, someone posted this request for advice recently:
Several weeks ago, I got this email from a reader of my blog:
I recently got an email from someone who was about to graduate with an undergrad CS degree and was interested in pursuing programming languages research. Th...
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
A few months ago, my group at Intel Labs began sponsoring and collaborating with a team of researchers at Stanford who are extending the capabilities of auto...
A couple months back, I wrote about Pulina and Tacchella’s 2010 paper on verification of safety properties of neural networks. That paper is the earliest th...
One of the most interesting results from “Explaining and Harnessing Adversarial Examples” is the idea that adversarial examples for a machine learning model ...
In machine learning, computers “learn” by being shown lots of examples; for instance, we might use millions of pictures to train a model that can identify pi...
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
A few months ago, my group at Intel Labs began sponsoring and collaborating with a team of researchers at Stanford who are extending the capabilities of auto...
Neural networks are turning up everywhere these days, including in safety-critical systems, such as autonomous driving and flight control systems. When these...
A couple months back, I wrote about Pulina and Tacchella’s 2010 paper on verification of safety properties of neural networks. That paper is the earliest th...
Neural networks (NNs) have become a ubiquitous machine learning technique in a wide range of domains. In 2003, some researchers surveyed the literature on v...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Back in May, I gave the opening keynote (my first keynote talk!) at the FLOPS 2022 conference. I talked about the work we’ve been doing in my group on using...
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
I started this blog five years ago, in January 2013. At the time, I lived in Bloomington, Indiana and was in the middle of my fifth year of grad school. I ...
Something I really like about my blogging setup here on composition.al is that my posts are just plain old version-controlled text files. Years ago, Dave He...
This blog just passed its four-year anniversary! Back in January 2015, I reflected on what my first two years of research blogging had been like. This post...
I started this blog on January 10th, 2013, so it just recently turned two years old. Here are some observations on keeping a research blog and what I’ve fig...
The Programming Languages Mentoring Workshop is a fun and free event for people who want to learn about careers in programming languages (PL) research. The...
Along with Nate Foster and Talia Ringer, I’m organizing the Programming Languages Mentoring Workshop, or PLMW, in conjunction with the International Conferen...
The Programming Languages Mentoring Workshop, or PLMW, is a one-day event that’s held on the day before the main conference program starts at the four major ...
Here’s an anonymized question sent to me by a blog reader:
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
I’ve been getting underway with a new research project, and after seeing what Crista Lopes had to say recently about the potential of ChatGPT as a research t...
This winter, I once again have the chance to offer a graduate seminar course on any topic I want. (Yay!) A couple months ago, I brainstormed a list of topi...
Last week, I made a change to the Rust compiler that I’ve wanted to make for over a year. I was so happy about finally getting this patch in that I couldn’t...
Yesterday, I made my first contribution to Racket in the form of a one-character patch. (It corrected a typo in a menu item for one of the Redex visualizati...
One of the cool things about being involved with the development of Rust over the last couple of years has been watching the community grow along with the la...
A while back, Mark Dominus proposed an arithmetic puzzle: combine the numbers 6, 6, 5, and 2 with arithmetic operations (addition, subtraction, multiplicatio...
Yesterday, I made my first contribution to Racket in the form of a one-character patch. (It corrected a typo in a menu item for one of the Redex visualizati...
Over the last year or two, I’ve been using PLT Redex more and more often as a tool for my research. Redex is a domain-specific programming language and suit...
Back in October, after a few weeks of working on the River Trail Firefox extension, I had a trite epiphany: if a browser is an OS, then extensions are kernel...
Last September, I began contributing to River Trail, an experimental API for data-parallel programming in JavaScript. It’s been my main project for the last...
For the last few months, as I’ve been getting ready to finish up grad school, I’ve also spent a lot of time working on figuring out what I’m going to do once...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
Once again this year, I’m serving on the program committee for IFL, the annual Symposium on Implementation and Application of Functional Languages, and the c...
This year, I’m on the program committee for IFL, the annual Symposium on Implementation and Application of Functional Languages. It’ll be held at Northeaste...
I’m serving on the program committee for the 2018 Workshop on Principles and Practice of Consistency for Distributed Data, co-located with EuroSys ‘18 in Por...
I spent last week in beautiful Bordeaux, France, attending EuroSys 2015 and the affiliated PaPoC workshop. This was my first EuroSys, as well as my first no...
I’m excited to be serving on the program committee for this year’s Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC). The work...
This year, I’m again serving as a co-chair of the Domain-Specific Language Design and Implementation workshop, together with my friend Sam Tobin-Hochstadt. ...
This year, Eric Walkingshaw and I are serving as co-chairs of DSLDI, the Domain-Specific Language Design and Implementation workshop, co-located with SPLASH ...
I’m serving on the program committee for this year’s Domain-Specific Language Design and Implementation workshop (DSLDI). The workshop will be co-located wi...
In my last post, I wrote about a wave equation simulation that I spent a lot of time with as part of my ParallelAccelerator for Julia benchmarking effort. T...
Between mid-2015 and mid-2017, I spent a lot of time on performance measurement for the ParallelAccelerator package for Julia. I curated a collection of wor...
Not too long ago, I found myself in a tricky situation with git. I had an enormous git repo containing a few things I wanted to keep and many, many things I...
It’s Ph.D. application season! A few months back, Paulette Koronkevich wrote a guide to applying to programming languages grad school that included the sent...
On July 1, I celebrated my first anniversary of employment as an assistant professor at UC Santa Cruz! As my second year gets under way, now seems like a go...
Friends, I have some big news!
Friends, I’m very happy to announce that I received an NSF CAREER Award to support my research at the intersection of distributed systems, programming langua...
This spring, I taught our undergrad distributed systems course here at UC Santa Cruz for the first time! It was a blast, and one of the most fun things abou...
I’m excited to announce a new paper draft, “LVars: Deterministic Parallelism through Shared Monotonic Data Structures”, that my advisor Ryan and I just submi...
One of the cool things about being involved with the development of Rust over the last couple of years has been watching the community grow along with the la...
This post is the second in a series. Last time, we started coding up a toy interpreter for a language of arithmetic expressions. This time, we’ll extend th...
I spent last week volunteering as a resident at Hacker School, where I helped a number of students write small interpreters. For the most part, the students...
I just got home from a great week in Boston, where I attended this year’s ICFP and affiliated events. I presented our first paper on LVars at the FHPC works...
Greetings from surprisingly sunny Portland, Oregon: [“LVars: Lattice-based Data Structures for Deterministic Parallelism”]: [FHPC ‘13]: http://hiperfit.dk/...
Recently, an acquaintance asked for an explanation of the difference between parallelism and concurrency. Blog posts about how parallelism is not concurrenc...
Lately I’ve been thinking about an analogy between properties that are and aren’t true of LVar operations, and presence or lack of structural rules in a logi...
Not too long ago, I found myself in a tricky situation with git. I had an enormous git repo containing a few things I wanted to keep and many, many things I...
Lately I’ve been thinking about an analogy between properties that are and aren’t true of LVar operations, and presence or lack of structural rules in a logi...
The call for submissions is open for this year’s Haskell Symposium. It will be held in Gothenburg, Sweden this September, and will be co-located, as is trad...
I just got home from a great week in Boston, where I attended this year’s ICFP and affiliated events. I presented our first paper on LVars at the FHPC works...
Between mid-2015 and mid-2017, I spent a lot of time on performance measurement for the ParallelAccelerator package for Julia. I curated a collection of wor...
Suppose we want to write a program in which two threads, say, t1 and t2, each contribute a Boolean value, either True or False, to a shared result. If both ...
At PLDI a few weeks ago, my advisor Ryan Newton presented our paper “Taming the Parallel Effect Zoo: Extensible Deterministic Parallelism with LVish”. This ...
My co-authors Aaron Todd, Sam Tobin-Hochstadt, Ryan Newton, and I have just finished up the camera-ready version of our new paper, “Taming the Parallel Effec...
A few days ago, I had the fun experience of being interviewed by Philip Guo for his excellent new podcast series. Phil invites his interview subjects to dis...
A few weeks ago, I had the fun and thought-provoking experience of being interviewed about my career by a first-year college student. Conducting an intervie...
Last month, I headed to Pittsburgh for SPLASH 2015. Sadly, the trip was brief, since I had to leave the conference early to make it to a friend’s wedding, b...
The Onward! 2015 conference has opened their call for papers, and I’m very excited to be serving on the program committee this year!
Back in October, after a few weeks of working on the River Trail Firefox extension, I had a trite epiphany: if a browser is an OS, then extensions are kernel...
Last September, I began contributing to River Trail, an experimental API for data-parallel programming in JavaScript. It’s been my main project for the last...
At work, I’ve been participating in a series of broad-ranging discussions about the role that domain-specific languages, or DSLs, can play in helping program...
So there’s this website called DB-Engines that ranks database systems according to their popularity. (They determine popularity based on various factors, in...
Not too long ago, I found myself in a tricky situation with git. I had an enormous git repo containing a few things I wanted to keep and many, many things I...
Lately, I’ve been using Python’s matplotlib plotting library to generate a lot of figures, such as, for instance, the bar charts I showed in this talk.
Last May, I wrote about an article by Radu Grigore that claimed that “all Java type checkers have bugs”, and what that claim might have meant. Later, Grigor...
Update (February 2017): I’ve written a follow-up to this post!
Last May, I wrote about an article by Radu Grigore that claimed that “all Java type checkers have bugs”, and what that claim might have meant. Later, Grigor...
Update (February 2017): I’ve written a follow-up to this post!
This post has an accompanying Jupyter Notebook!
This post has an accompanying Jupyter Notebook! How do you do, fellow kids?
A few days ago, my friend and colleague Tim did the describe-what-you-do-using-only-the-ten-hundred-words-people-use-the-most-often thing. I’d tried to do i...
Over the last year or two, I’ve been using PLT Redex more and more often as a tool for my research. Redex is a domain-specific programming language and suit...
Over the last year or two, I’ve been using PLT Redex more and more often as a tool for my research. Redex is a domain-specific programming language and suit...
Last week, I made a change to the Rust compiler that I’ve wanted to make for over a year. I was so happy about finally getting this patch in that I couldn’t...
Earlier this week, I gave a talk on LVars at RICON West, a distributed systems industry conference. It covered a lot of the same material as my talk at FHPC...
My research on LVars is all about deterministic parallel programming: writing programs so that they can be scheduled onto parallel hardware with the goal of ...
In a couple of days, I’m headed to the WoDet workshop, which is co-located with ASPLOS in Salt Lake City this year. WoDet is a workshop devoted to determini...
One of the ideas that has been important to me as I’ve worked on LVars is the notion of a frame property. A frame property captures the idea of local reason...
Last week I went to Portland to catch the part of the SPLASH1 conference known as OOPSLA. I attended fourteen2 OOPSLA talks, often paying attention! ...
Last week I went to Portland to catch the part of the SPLASH1 conference known as OOPSLA. I attended fourteen2 OOPSLA talks, often paying attention! ...
Tiny Transactions on Computer Science, the premier venue for computer science research of 140 characters or less, is seeking submissions for its third volume...
So there’s this website called DB-Engines that ranks database systems according to their popularity. (They determine popularity based on various factors, in...
A couple days ago, my advisor asked me what reading material I would suggest to a new student who wants to learn to do determinism proofs like the ones we di...
Lately, I’ve been using Python’s matplotlib plotting library to generate a lot of figures, such as, for instance, the bar charts I showed in this talk.
Recently, an acquaintance was complaining of a project they were working on that involved reading a mountain of “incidentally complex” code – code that wasn’...
A few days ago, I needed to learn what OpenStack is. Here’s what I’ve learned so far.
A few days ago, I needed to learn what OpenStack is. Here’s what I’ve learned so far.
Update (February 2017): I’ve written a follow-up to this post!
I’m currently serving a three-year term as the publicity chair for ICFP. Like many conferences, we use a Gmail account for sending publicity emails. If you...
I’m currently serving a three-year term as the publicity chair for ICFP. Like many conferences, we use a Gmail account for sending publicity emails. If you...
Not too long ago, I was setting up an installation of the Accumulo distributed database. At some point in the process, I ran Accumulo’s bin/bootstrap_config...
Not too long ago, I was setting up an installation of the Accumulo distributed database. At some point in the process, I ran Accumulo’s bin/bootstrap_config...
Not too long ago, I was setting up an installation of the Accumulo distributed database. At some point in the process, I ran Accumulo’s bin/bootstrap_config...
Not too long ago, I found myself in a tricky situation with git. I had an enormous git repo containing a few things I wanted to keep and many, many things I...
A while back, Mark Dominus proposed an arithmetic puzzle: combine the numbers 6, 6, 5, and 2 with arithmetic operations (addition, subtraction, multiplicatio...
A while back, Mark Dominus proposed an arithmetic puzzle: combine the numbers 6, 6, 5, and 2 with arithmetic operations (addition, subtraction, multiplicatio...
I’m very happy to announce that “Parallelizing Julia with a Non-Invasive DSL”, by Todd Anderson, Paul Liu, Ehsan Totoni, Jan Vitek, Tatiana Shpeisman, and me...
Halide is a newish domain-specific language for writing high-performance image processing pipelines, originally created by a group of researchers at MIT and ...
This Friday, I’m headed over to SysML to present “Toward Scalable Verification for Safety-Critical Deep Networks”, co-authored with Guy Katz, Justin Gottschl...
This year at SNAPL, I’ll be presenting a new paper, co-authored with my colleague Peter Alvaro, that collects our recent thinking on consistency-aware solver...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
Today my students Gan Shen and Patrick Redmond and I are (virtually) attending the HATRA workshop co-located with SPLASH. HATRA is a relatively new workshop...
I’ve been getting underway with a new research project, and after seeing what Crista Lopes had to say recently about the potential of ChatGPT as a research t...
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!
My research group was busy this past year. Here’s a summary of what we’ve been up to in 2022-2023!