Welcome to day 2 of my live blogging of the JMSS Sc15 conference trip. This is a brain dump of everything we experience, so it’s largely unedited, but I hope it will be useful to you.
Early start today at the Student Programme panel – A Best Practices Guide to HPC Research. We have panelists talking about HPC research from Lawrence Livermore (LLNL), SNL (Sandia National Laboratories), ETH Zurich, and the Universities of Wisconsin and Arizona. There were a series of short presentations on similar themes, followed by a panel discussion.
Lori Diachin from LLNL has a PhD in High Performance Computing (HPC) and has been in the DOE for her whole career. She’s a scientist and division leader for the Center for Applied Scientific Research at LLNL. One of Lori’s key points is that networking is hugely important.
How is CS/HPC research different from domain research? There is more emphasis on cross-cutting impact to many different domains. CS is solving problems and very mission driven – not so much of it is pure academic research, it’s problem focused. This may be coloured by her DOE background, but it’s a common view. CS/HPC research focuses on designing tools and systems to improve productivity and support scientific endeavours. The tools need to be used, so they need to be usable and useful.
In the DOE labs research and engineering are both critical components. Cutting edge research makes the breakthroughs that makes the systems useful, but then you have to engineer the systems properly to make them truly usable.
Exascale computing will change things, how do we port things to exascale systems? What technology will follow CMOS systems, and how do we program it? Quantum, Neuromorphic or hybrid systems?
Data science increasingly requires High Performance Computing.
Torsten Hoefler (Zurich ETH) “What I did my whole life was basically maximise my fun, my advice to everybody is do what you want to do, do what is fun.”
He had no idea what he wanted to do at first, so he was was hanging around at uni doing research because it was fun. He strongly recommends choosing very active environments where you see people thriving. Torsten recommends applying everywhere. If you are aiming for academia you will be able to present your research to the universities you are applying for, which is great practice, and it also gives you a lot of networking opportunities.
Blue sky research into HPC and mathematical modeling techniques etc is possible in HPC, you don’t have to be some kind of application code-slave (Torsten’s words :).
Research is a creative process to extend humankind’s knowledge. Engineering is building a pragmatic object/system – it must work, and it’s not necessarily novel. “A good engineer will deliver you a working solution. A good scientist will analyze the space of possible solutions and pick the one that seems best.”
“If you can’t explain it simply, you don’t understand it well enough.” Albert Einstein.
HPC programming has a huge programmability barrier. Parallel programming is hard! Surely we can solve this problem.
You should do what is fun for you! Otherwise you’ll not be good/the best at it. Do what you want to do. I love this idea, it comes back again and again in all the talks I hear from the most successful people – Nobel Laureates and the like. If you are doing the things you love you will be good at them and wind up somewhere you want to be!
Bruce Hendrickson – Sandia National Labs. “Lessons from an Accidental Career”
Bruce stumbled into HPC. He has a BS in Mathematics, MS in Physics and a PhD in Computer Science. This was not a grand plan, but it worked out well, again he just followed interesting things. Research is diligent and systematic inquiry, engineering is practical applications. HPC is a field of engineering, but systematic inquiry keeps the field moving forward. Making things work and work well is really hard, engineering is crucial.
A good postdoc can be a great career move. I really agree with this – I should have done a postdoc before becoming a lecturer, to build my research skills, my networks, and establish my research credentials before starting as a lecturer. But you do need to be careful to choose a good postdoc where you will have support to build your own research career, and not just wind up doing someone’s grunt work.
HPC is fundamentally and deeply interdisciplinary. I’ve always felt that applies to all the interesting areas of CS.
Michelle Strout from University of Arizona. The impact of research comes from helping people solve THEIR problems. It may be some very small, incidental part of your work that changes things, if it helps other people. This is what CS is all about! Excitement and confidence are important – be excited about what you are doing! It makes a really good impression. Do something you really care about.
Michelle had a baby when she was in grad school and became hugely productive because she had to focus in the reduced time available for her work. Focus is important!
In research collaboration and networking are crucial. I actually think this applies to everything. Fake it until you make it – barrel up and introduce yourself to people, work hard to build your networks, they will have a huge influence on your life. So many opportunities come from random connections with people who you never realized were going to change your life.
Barton Miller from University of Wisconsin. Finding your voice as an HPC researcher. Don’t go to an HPC startup, they all fail. Pick something and do it next – it’s not a lifetime contract! You can do a lot of different things in your career.
Think about your own style. Do you want to work in a small team or a huge one? Are you a theorist or experimentalist? Figure out what is FUN for you or you are passionate about. You’ll be more successful (and happy) if you’re doing what you love. It will be more motivating, more interesting, and more rewarding. Trying to be strategic doesn’t work as well as doing what you love.
Figure out what you are passionate about and go at it with everything you’ve got.
Develop an identity. Try to be really good at one (or maybe two) things.
Collaborating is key – find colleagues that reinforce or complement your skills. Find the best students. Find industry partners to supply problems and resources. Expand your influence by collaborating and building your networks. Participating in multi-organization projects works too.
Keep yourself visible in academia – publish in the best conferences, visit other institutions, go to good, focused workshops and build networks with people in your field.
Most computer scientists are lousy experimentalists – go back and read about the scientific method and do great science. Have a clear hypothesis and be totally honest about your results. Be a good statistician – this is really important to high quality research. You have to understand your data. Understand tail-heaviness and self-similarity. These are crucial tools. Plot and visualize with care and read Tufte’s books on data visualization.
Always leave yourself time to decompress and have fun – work hard and play hard.
When you build real software that other people use it will slow down your PhD, but you get this amazing set of experiences. If you are having fun in what you are doing, then do it! Students are often rushing – in a hurry to get out, when sometimes getting great experiences is more valuable than graduating fast. There’s no reward for rushing through graduate school. A lot of clocks start ticking the day you get your PhD, so it’s much better spending time to do high quality work than finishing fast. Take the time to enrich yourself and your research.
There are a lot of people who have long CVs and lots of publications who don’t get job offers because they don’t know enough about those papers that they’re on. It’s not a purely numerical measure.
If you have an idea that you truly believe in, you should go for it. Some of the things Barton Miller tried people said were really dumb. Some of those things succeeded and those are the things he is best known for. Find somebody else to play with and do something fun, who knows what might come out of it! You need some craziness to do the really creative things and make serious breakthroughs. This is science!
Finding a research topic can be a drunkard’s walk through a design space. You keep reading and exploring, trying things and reading about things that have already been done, but in a space you are fascinated by, and you’ll wind up somewhere interesting.
It’s possible to go into research with no idea what you want to do. The most important thing you learn in graduate school is not how to finish a project, it’s how to select a topic. There is something very organic in the process, and it’s not necessarily possible to lay it out as a precise timetable.
If you’re interested in High Performance Computing there are some awesome videos on youtube published by the SC conference organisers.
This is already crazy long, so I’ll blog the rest of the day in a new post.