By Michael Jeszenka (Georgia Tech)
I’m back home after attending SC19 in Denver this last week. What an experience it was! I’m writing this with everything still fresh in my mind so hopefully, I won’t forget anything too important.
What is SC19?
SC is the biggest annual conference in Super Computing / High Performance Computing, and the 19 merely means this year’s edition. The terms Super Computing and High Performance Computing are inter-changeable and often simply referred to as HPC.
What is a super computer?
Super computers are exactly what they sound like! They are computers that are super, or bigger than computers you are probably using unless you currently work in HPC. I’ll borrow Wikipedia’s definition:
A supercomputer is a computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instructions per second (MIPS).
Typically, super computers are built as clusters of nodes which each contain multiple CPU cores and GPUs. They are leverage to perform computations on a massive scale and traditionally been used by the government and in academia to tackle problems in science, weather, energy. Recently, industry has been getting more involved with HPC due to the emergence and rise of new AI technologies such as machine learning and deep learning.
Why do I care
As a web developer working in our family-owned web hosting service, I do not have a vested interest in HPC nor do I see any immediate use case for our business or industry. However, as a developer, I am simply fascinated by the world of HPC and challenges faced on the software side. Writing software for HPC requires sharper skills in parallel programming than in the world of web development. Event loops with non-blocking async calls simply won’t get the job done. HPC workloads are intensely CPU-bound and require special considerations for concurrency, executing synchronization mechanisms, and optimization by balancing the gains reaped from concurrency against the cost of communication necessary to enforce correctness in such a distributed environment. Moreover, the problem domain is typically scientific research, resulting in the surfacing of ever new challenges. The consensus I got at HPC was that it is always something different, something fresh, and something original. Perfect if you are looking to avoid repetition and the mundane in your respective domain.
How I got there
I am currently working on my master’s degree in computer science through Georgia Tech’s OMSCS program. This program is worthy of many over blog posts which I intend to eventually write but for now, if you haven’t heard of yet and are considering a master’s in computer science then I highly recommend checking it out. Through school, I met a student named Bryan Johnston who is already well connected in the HPC world as one of its prominent leaders in Africa (South African Centre for HPC). I mentioned to him how I was curious to learn more about HPC and he brought STEM-Trek to my attention which was offering support to attend the SC19 conference. I was encouraged to apply and due to my status as a student in the OMSCS program, I was awarded a free registration pass for the entire conference including the tutorials and workshops, thus enabling me to attend. This was an absolute blessing and exactly the introduction to HPC that I needed.
My experience
Day 1 and 2 were the tutorial and workshop days and they were jam-packed with good stuff, even for me as an outsider. Day 1 especially, had me wishing I could clone myself and appear at multiple tutorials and talks simultaneously. As it was my first SC I wanted to attend the obligatory “first-timers” talk. After that was a career in HPC panel and a lecture about parallel algorithms that I chose to attend. Unfortunately, this meant I had to pass up on the tutorials for parallel programming, OpenMP core, quantum computing, and secure coding practices. The parallel algorithms lecture finished a little early so I swung by to take a peek at secure coding practices before stopping for the lunch break. I turned out they were focusing on web development so I decided to come back for the conclusion of the tutorial in the afternoon. I ended up having a very interesting discussing with one of the presenters over implementing a CSRF protection scheme for web apps using client-side rendering with the frontend being hosted on a different domain from the server. I’ll need to write about this discussion in a separate blog post. Day 2 seemed to have less tutorials and workshops offered to beginners, so I only attended the workshop of software design, analysis, and tools.
Day 3 the fun began anew. I started off by attending a panel about OpenHPC where my OMSCS buddy working in HPC participated in. Afterward, we were recruited by Intel to attend a focus group scheduled for the next day regarding their newly announced OneAPI. Then we went to the exhibition where I spent the bulk of my time for the rest of day 3 and 4. There I experienced being “star-struck” for the first time in my life as I got to meet a few of my personal celebrities. I met Dr. Rich Vuduc, the professor who teaches the HPC class at Georgia Tech. He was able to answer a myriad of questions I had and offer priceless advice. I then moved on to several other booths and was able to connect and network with many other professionals in HPC. At night I attended a lovely dinner that was hosted by STEM-Trek (Thanks, Google!) and was introduced to interesting and wonderful people who were also able to attend SC19 due to STEM-Trek’s support.
I opened up day 4 by participating in Intel’s focus group for OneAPI. Admittedly I felt out of place there as a web developer and did not hesitate to mention the fact that I have never done any GPU programming. Nonetheless, I believe I was able to contribute and offer a unique perspective and I rather enjoyed the experience. The remainder of the day I spent back in the exhibition hall and continued to socialize and network. I wandered over to the USC booth and had a delightfully pleasant conversation with them despite being the arch-rivals of my undergrad alma mater UCLA. Later in the day I even met Dan Olds, the host of Radio Free HPC which over the course of the year has quickly become one of my favorite podcasts.
The end
The week seemed to fly by so quick and I was saddened to have it come to a close. I am ecstatic at being able to attend and get the exposure to HPC that I had been longing for. While I feel that I was able to learn and gain a lot from SC from a career and technical perspective, the best part easily was the friends I made, the time we shared together, and the memories I’ll have.