Friday, December 20, 2013

An undergrad's first academic conference

PLDI 2013 was my first major academic conference in which I participated. As a lowly undergrad, I had attended lab retreats and industry conferences previously, but PLDI was to be my first academic conference. More exciting still, I was presenting in the student research competition (undergrad division.)

Having gone through it all (including winning second place in the SRC,) I can safely say that it was an experience like no other, and one that I am extremely grateful to have had the opportunity to attend.

It's easy to lose sight of the bigger picture when you're sequestered in your lab, working long hours, for months stretching into years. You start to focus on the minutia of your research, both good and bad. Worse, you lose the larger context; you lose the ability to see how your little research project really advances the state of the art, and fits into the world around you.

For me, PLDI was a great way to ground myself and put both what I am doing, and what others are doing, into a larger context. In one place, at once time, you have some of the worlds best research and researchers all coming together, to talk about the same sort of stuff you work on every day. And better still, these world-class researchers come and talk to you, about your research, allowing you to see it with fresh eyes.

One of the hardest problems to combat as a student researcher, in my experience, is burnout. You start out with a great idea, infinite energy and drive, and you want to change the world. But if you stay shut away in your little corner of the lab, plugging away at your project without any feedback, you start to wonder if this really is the right path to be going on. You start to wonder if anybody cares about what you're doing. You start to wonder why you do it at all.

PLDI cured me of any lingering feelings of burnout. First, I had people whom I greatly respect come up and say nice things about my work, which is always gratifying. But more importantly, I saw a number of ways that I could use my research to solve pressing problems people are struggling to solve. And more than that, I got ideas for another dozen paths of inquiry for projects both related and unrelated to my current one.

I left PLDI completely energized and ready to go. I now was able to see the wider picture of how my research mattered, what the state of the industry was, and how my research could contribute to it. I also saw another dozen projects I couldn't way to look at once this project drew to a close.

This is on top of meeting all the great people, seeing all the great tutorials, and just generally having a great experience.

PLDI definitely changed how I view academic research, and I can't wait to go back again.

Matt Torok
UC Berkeley
Bachelors in Computer Science, Fall 2013

Wednesday, December 18, 2013

This was my second time at PLDI and while I didn't have a talk this time around, I had a wonderful time connecting with friends and also building new collaborations.  

For example, I was able to chat with researchers of UW on the potential of an approximate computing workshop and express my support. And, just as of late, we found out that they have been able to make that possible.  I was also able to coordinate two visits to Microsoft Research within that week as a result of conversations I had in the "hallway" sessions.

As to the PLDI technical track, I particularly enjoyed Verifying Higher-order Programs with the Dijkstra Monad. I also enjoyed myself at the joint SRC and main track poster session. At the poster session,  I had great discussion with both the authors of Static Analysis for Probabilistic Programs: Inferring Whole Program Properties from Finitely Many Paths (main track) and Uncertain: Uncertain data as a first-order type  (SRC).

Until next year,
Mike

Tuesday, December 10, 2013

Reflecting on PLDI

This was my first time attending PLDI, and it was an extraordinary experience that I hope to be able to repeat again soon. I had a great time connecting with people and meeting new faces in between sessions and over dinner.

The sessions that left the biggest impact on me were toward the end of the program, possibly because my mind was much more relaxed after my SRC presentation:

  • Static Analysis for Probabilistic Programs: Inferring Whole Program Properties from Finitely Many Paths
  • A General Constraint-centric Scheduling Framework for Spatial Architectures
  • Halide: A Language and Compiler for Optimizing Parallelism, Locality and Recomputation in Image Processing Pipelines

Overall, the atmosphere was really inspiring and I gained a totally new perspective on a number of things. Hope to see everyone next year!

Thursday, December 5, 2013

I was presenting a paper about a static analysis to infer memory  ownership properties for C libraries at ISMM this year, co-located with PLDI.  Overall, I enjoyed the conference. Presenting is always fun, as is putting faces to all of the names you read about.  I just want to cover a few papers that stood out for me (in roughly chronological order):

One of my favorite papers was presented early: Scalable Variable and Data Type Detection in a Binary Rewriter (http://dl.acm.org/citation.cfm?id=2462165).  This work takes (stripped) x86 binaries and converts them into the LLVM IR with reasonable precision.  As the title hints, they recover many complex types, which is both impressive and necessary for many tools.  My own work is on the LLVM IR and having a tool like this would be very useful to let me apply my work to a wider range of inputs.  Not having perfect accuracy would probably be fine for many of my purposes, so this was an especially exciting piece of work for me.

Being mostly a software person, I learned a bit about different types of hardware, specifically memory that  deteriorates (http://dl.acm.org/citation.cfm?doid=2462156.2462171).

On the last day of PLDI, I was actually torn between the two post-lunch sessions.  I actually wanted to see all of the presentations from both sessions (one session was about Monads and FRP, while the other was about alias analysis).  Being a mostly functional programmer, I decided to go to the Monads and FRP session. I couldn't digest the whole thing during the presentation, but Monadic Abstract Interpreters (http://dl.acm.org/citation.cfm?id=2491979) seemed very elegant.  I'd like to spend some more time on that paper soon, actually.  That said, I was more immediately excited about Asynchronous Functional Reactive Programming for GUIs, otherwise known
as Elm (http://elm-lang.org/).  I've been vaguely familiar with FRP for a while, but this was a good presentation introducing it and actually demonstrating how to use it.  I find that most of the discussions of FRP assume you are already an expert, rendering them somewhat unapproachable.  I'm not directly interested in Elm itself, but I would very much like to try out an FRP library or two in Haskell.  A side project I am working on now should afford me the opportunity soon.

On the ISMM.  I am not really an expert on memory management, but I am interested in the topic, obviously.  I found myself nodding along with the keynote, which basically argued that sequential consistency (i.e., what most programmers who are not computer architects or compiler writers expect) does not need to be prohibitively expensive.  Maybe we will actually see sequential consistency in the wild one day.

My favorite paper in ISMM (besides mine, of course) was Control Theory for Principled Heap Sizing.  I know nothing about control theory and I have never implemented a garbage collector myself (though, like everyone, I have all sorts of opinions about what makes a good garbage collector).  I am not really qualified to evaluate the approach or results in the paper, but I really liked the connection between a well-known problem in Computer Science and a field of mathematics that I have never really seen before.  It makes a lot of sense to look to other fields for inspiration, especially since the programming languages and compiler communities do not often focus on this type of modeling.

Monday, July 15, 2013

Experience at PLDI'13

This was my first time to attend PLDI. I presented a paper entitled Steal Tree: Low-Overhead Tracing of Work Stealing Schedulers For me, attending PLDI and presenting my paper was a great experience and I felt the reception and atmosphere at PLDI was great. The poster that I presented along with my paper was a great addition; during the session many researchers approached me and I was able to explain the work in a personalized way.


Wednesday, July 10, 2013

PLDI Done.

Another great visit to PLDI.

I gave my talk in the morning of the first day.  I can't say how much that relaxed me for the rest of the conference.  It was great to talk with people between sessions or over dinner or drinks later in the evening.

I thought these talks were great,
  • Max Schäefer's talk Dynamic Determinacy Analysis [paper].
  • Sebastian Burckhardt's talk It's alive! continuous feedback in UI programming [paper].
  • Sriram Sankaranarayanan's talk Static analysis for probabilistic programs: inferring whole program properties from finitely many paths [paper].
  • Santosh Nagarakate's talk Formal verification of SSA-based optimizations for LLVM [paper].
  • Abhishek Udupa's talk TRANSIT: specifying protocols with concolic snippets [paper].
  •  
After talking about verified software with some very smart people, I'm inspired to learn Coq.  Good times.

Thursday, June 27, 2013

PLDI Wrap-Up

PLDI was awesome. I attended all three days of PLDI, most of the TAPAS and PASTE workshops, and a little bit of SOAP. I gave two talks on day two of PLDI; both went fairly well, which I was pleased about. I also gave a low-key lightning talk at PASTE, which was fun. Highlights from the week are numerous, but included:

- Fred Schneider's keynote on programming languages and security. I liked his way of thinking about security as pushing around trust. I think this is a very useful way to view things and it served as an excellent lens for explaining advances in security during his talk.

- Max Schaefer's "Dynamic Determinacy Analysis" talk. The talk was very-well presented and contained some clever ideas. The idea of a sound dynamic analysis seems crazy, but their trick of making the facts collected from the dynamic analysis so specific that they must be sound is quite nice. Looking forward to a careful reading of this paper.

- Xin Zhang's "Finding Optimum Abstractions in Parametric Dataflow Analysis" talk. I am only beginning to understand this work, but the idea of analyzing counterexample trace with a meta-analysis that contains predicates about the limitations of the abstraction in addition to the usual predicates about the property is cool. I'm hopeful that I can use some of these tricks in Thresher once I understand their work better.

- The poster session. Although my poster was in an out-of-the-way part of the conference room, I had an excellent group of visitors who were very patient and thoughtful. I got some good questions and feedback and really enjoyed being able to share my work one-on-one with some folks I had never met.

- Ranjit Jhala's PASTE keynote "Rebooting Type Systems With SMT". Although I am fairly familiar with the "liquid types" line of work, it was neat to see the essence of the work distilled into a short (hour-ish) talk. I'm always excited to see what these UCSD guys will come up with next.

All in all, PLDI was a great experience and I hope to be back next year!

Tuesday, June 25, 2013

Jacob Brock - PLDI Conclusion

I had a great time at the conference.  I caught the last day of PLDI on Wednesday, and then attended ISMM on Thursday and MSPC on Friday.  Here are a few of the presentations I found most interesting:

  • Quipper: A Scalable Quantum Programming Language (Green, et al.)
    • This work addresses the problem of forming a practical language for quantum computation, since the hardware interface is much different that in traditional computers.  After formulating the language, Green, et al. implement seven of the 45 quantum algorithms reported in S. Jordan's "Quantum Zoo".
  • Elephant Tracks: Portable Production of Complete and Precise GC Traces (Ricci, et al.)
    • Elephant Tracks produces traces of events related to garbage collection (such as object birth and death times) for Java programs.  It has already been a useful tool for Li, et al. of the University of Rochester (who presented at MSPC).
  • Introducing Kernel-Level Page Reuse for High Performance Computing (Valat, et al.)
    • Valat, et al. discovered that page zeroing is responsible for up to 40% of the page fault cost at operating system level.  To manage this cost, they proposed to use memory pools for each process so that free pages would be reused by the same process, allowing for less page zeroing.  For memory hungry parallel applications they managed to improve performance by up to 66%.
In addition, I had some good conversations that may help with my own research on cache sharing.  Elliot Moss recommended I look at his work on program profiling for GC to help me predict per-program cache usage, and Matt Davis shared some of his unpublished work and thoughts on cache optimization with me.

I am grateful for the opportunity to attend the conference!

Jake Brock

Sunday, June 23, 2013

My First PLDI

PLDI2013 was the first PLDI I’ve attended, and it was an incredible experience. On Sunday I presented a tutorial on using LLVM for program analysis and transformation. I think the tutorial was well received and I had a bunch of people come up to me after to share positive feedback. The tutorial has been through a lot of iterations and the members of the PL lab at UMD are to thank for its quality.
I met a lot of new people and I hope to keep in touch with them. I spent a lot of time at the reception, the poster sessions, and the lunches talking. The presentations were really good, the entire conference left me inspired to come back and get some good work done.
I really enjoyed the “Taming Compiler Fuzzers” paper and spent a good amount of time talking and thinking about it. I think that there’s a very powerful connection between performing test case minimization in c-reduce and minimizing other kinds of potentially buggy input that is fuzzer generated. Researchers (some academic, some industrial) talk about Turing-complete inputs to programs as protocols and the complications of verifying and fuzzing those protocols give us new security challenges every day.
The keynote by Fred Schneider on the second day, “Programming Languages in Security”, was very inspiring and I really hope the slides are posted online. It contained a lot of thoughts and ideas that I had been trying to express in my head and stated things I have been thinking about intersections between PL and security that I find very satisfying.
I was really happy to find a balance between attendees from industry and academia. I love that PL, as a topic, attracts all kinds of research from many different application domains, from language construction, to runtimes and memory management, to verification and security. The conversations that happen around the intersection of theory and practice for such a broad and deep field is intoxicating.

Thursday, June 20, 2013

Conclusion of PLDI

  I had an excellent time at my first PLDI!  The experience was very rewarding, and I will hope to attend the next year and many years beyond!  I only knew a few attending members when going into the conference, but now I felt I have begun to start building a much stronger network in the PLDI community.  My advisor introduced me to several other faculty members, and I spent a good deal of time introducing myself to others.  I found an excellent time to do this was during the student poster presentations, and I hope the posters will return again next year.  I also spent a good deal of my time at PLDI watching many quality talks in the concurrency, program synthesis, language design, and the other talks from other tracks.  The Microsoft excursion was also very nice from a students prospective, as I got some insight as to what it would be like to work at MSR.  Attending this conference has helped inspire me to continue working hard on my research, and I will look forward to next years PLDI!

Wednesday, June 19, 2013

Jacob Brock from University of Rochester


I will be attending and presenting PACco-authored with Xiaoming Gu, Bin Bao and Chen Ding, my advisor at the University of Rochester at ISMM, as well as a short paper at MSPC.  I am most looking forward to hearing other speakers; my favorite thing about conferences is that it's impossible to predict what talks will really stand out, but a few that I am particularly looking forward to are "Analyzing Memory Ownership Patterns in C Libraries" and "The Bloat-Aware Design for Big Data Applications" at ISMM and "Introducing Kernel-Level Page Reuse for High Performance Computing" and "All-window Data Liveness" at MSPC.

I look forward to learning about the newest developments, and meeting new connections!

-Jake

Saturday, June 15, 2013

PLDI First-Timer

I'm Sam Blackshear from the University of Colorado at Boulder. This will be my first time at PLDI. I'll be presenting two papers: Thresher: Precise Refutations for Heap Reachability (co-authored with my advisor Bor-Yuh Evan Chang and our collaborator Manu Sridharan from IBM Research) and Almost-Correct Specifications: A Semantic Framework for Assigning Confidence to Warnings (with Shuvendu Lahiri, my Summer 2012 internship mentor at Microsoft Research Redmond). It's been a lot of work to prepare for the conference, but I am really excited to share the work I've been doing with others and get some useful feedback from all of the smart and experienced folks here.

I'm also going to attend the TAPAS and PASTE workshops. I've never attended a workshop before and I am hoping that getting together with other small groups of program analysis-y people will spark lots of great conversations.

Most of all, I am hoping to meet lots of new people and hear all about cool research that's been going on around the world this year.
Can't wait!

- Sam

Thursday, June 13, 2013

Preparing my talk for PLDI

    In order to prepare for PLDI, I have gone through a few iterations of my presentation.  The first version of my slides consisted of a slide each for each of the main sections of my paper.  After I completed this, I started thinking about a theme for my talk in hopes to make the talk more engaging.  One way I have achieved this, is to frame my talk around a story during the introduction, and then interlace core questions throughout the talk.  I had the opportunity to present a practice talk to my research group and gain some great recommendations!  I recommend to other students presenting to definitely make time for a practice talk to your peers and advisor.  If you can get others not working directly in y our research, that can be useful as well.  Often you are so close to your research, that it is hard to put yourself in the position of an audience member who is not an expert in your particular subject area and engage them.
    Now that my talk has been prepared, I am looking forward to the presentation.  Listed below are some resources I am reviewing before my talk that will hopefully benefit others.


  • http://www.cs.berkeley.edu/~fox/paper_writing.html (some notes in the middle)
  • http://www.cs.berkeley.edu/~jrs/speaking.html
  • http://cseweb.ucsd.edu/users/elkan/254/speaking.html (Some helpful notes on powerpoint slides)

Tuesday, June 11, 2013

My third attendance of PLDI

Hi, I'm Nick Johnson from Princeton University.  This will be my third time attending PLDI.  You may have met me in San Jose in 2011, or heard my talk in Beijing in 2012.  This year, I will present "Fast Condensation of the Program Dependence Graph," which I authored with Taewook Oh, Ayal Zaks and my advisor, Professor David August.

Presently, Princeton is closed, so I thought I'd take the opportunity to write a blog post.

I really like PLDI.  Why?  Just like its name (PL+DI), I think it strikes a great balance between programming language (PL) research and the hard evaluation that you can only achieve through design and implementation (DI).  Together, PL adds principle to DI, and DI focuses PL.  It's like beautiful math mixed with applications of consequence. You'll consistently find great papers at PLDI.

A conference, of course, is not just about the research but also about the attendees.  At PLDI, you meet representatives of academia, private research and industry whose expertise range from architecture to PL.  It's a really fun conference.  If you're a grad student and this is your first attendence, I highly recommend you meet as many new people as you can.

I'm looking forward to visiting Seattle, as I haven't been there in at least a year.  A friend of mine recommends kayaking in the arboretum near UW.  Find me at PLDI and let me know if you'd like to join.

Cheers

Sunday, June 2, 2013

First time PLDI Attendee

Hello!

  My name is Michael Shah, and I will be attending PLDI 2013 in Seattle, Washington this year!  I am quite excited to be attending this conference for the first time.  I have recently completed my Masters degree in Computer Science Engineering at Tufts University, and I will begin working on a Ph.D. in the Fall of 2013.
  I am looking forward to attending PLDI, because it is a conference that brings together the top researchers and practitioners from around the world into one location.  It will be very valuable to hear the talks in fields I am researching in as well as other fields of research that are brand new to me.  I hope these talks will help unveil key research questions in the future, as well as help me develop my skills as a researcher.  I hope to be able to interact with many of the speakers and others in attendance to learn about their research.  I further hope that these interactions can lead to collaborations between my research group and others who want to pursue mutually exciting opportunities!
  I am also very much looking forward to being able to present work of my own during the Fun and Interesting Thoughts session.  It is not often I will have such a great forum of listeners, so I am very much looking forward to their constructive feedback and questions.  The challenge for me, will be how to structure a talk that is both engaging and can provoke some of the sharpest minds with interesting thoughts.
  In my next entry, I will follow up with more thoughts on the conference and my personal preparation on achieving the most possible from this conference.