June 24, 2014
Ever want to take a super-computer for a spin? Recently, the 21 students from around the country who participate in the Blue Waters Student Internship Program recently got to do just that. After being exposed to HPC (High-Performance Computing), including learning some parallel programming—the language of supercomputers—the interns got to run their program on the University of Illinois' Blue Waters, one of the most powerful supercomputers in the world and the fastest on a university campus.
In addition to attending the recent two-week workshop, as part of their one-year internship, interns are matched with a research mentor (a professor at a U.S. university) to help with his/her project which involves running data on Blue Waters. During the workshop, this hands-on opportunity to write and run a program analyzing a large data set on Blue Waters turned out to be a highlight for most of the interns.
"Yesterday, we said there was a break," admits workshop instructor Mobeen Ludin, "and 20 minutes into the break, nobody was leaving. They were all trying to finish the exercise. That shows that they're pretty interested in it and excited about using Blue Waters."
Ludin himself was a Blue Waters intern as a sophomore. After he got his computer science degree, he began working as an instructor for NCSA partner Shodor, a non-profit education foundation which does HPC workshops on computation science or parallel programming for XSEDE (Extreme Science and Engineering Discovery Environment).
Ludin explains that instead of using sequential, serial language that desktop computers normally use, supercomputers, such as Blue Waters, use parallel languages to take advantage of the multiple pieces of hardware available. Ludin goes on to explain that Blue Waters' mother board has multiple processors that do separate work at the same time.
"For example, if we're going to do a weather prediction model," continues Ludin, "one of the processors could be analyzing the temperature data and the other processor at the same time could be getting the data for the wind speed and which direction it's coming from, and another processor could be analyzing some other data that's involved."
So how does parallel programming work? Do programmers write several different programs that run at the same time, or one program that accesses individually each of those processors?
Mobine says both. "We teach how you write one program, and each processor gets the same program but is working on different data, but the program is the same program. You can also write a program called distributed memory program, where each processor gets a completely different program than the other one."
According to Ludin, parallel computing language is something most computer science students learn automatically."Most of the science these days is done on the super computers. Nobody nowadays is using animals as lab subjects or doing some kind of dangerous activities in the lab, for example a nuclear reaction or those kinds of tests. Nobody does it nowadays in the lab. It is because we have the technology that can replace it, that can simulate the whole process and each time feed different data to it, or put in different conditions that will react differently, and you can observe."
However, Ludin admits that to become an expert in writing parallel programming, one needs a four-year degree in computer science; not all of the interns are studying computer science, but are majoring in areas like biological sciences, bioinformatics, and computational physics. Thus, they have different levels of programming expertise. So what's the purpose of this internship? Why teach them about something that as, say, a biologist, they might not ever going to use?
"There is a chance that, even after the internship, they may not follow the same path," admits Ludin. "The thing is, if all the science is left to the last stages ("Ok, until you get to your Ph.D., we won't teach you these things because we think that you might change your mind,) then it's not helping a lot. But if you expose them from the beginning, you tell them this is a thing you can take advantage of…"
Mobeen tells an anecdote about one of the interns who is a computational physicist: he gets "extremely excited about what he's doing. Like, when he runs the model on the supercomputer, he gets way more excited than if he were going to do it somewhere else."
The same is true of a bioinformatics student who has been learning a lot of things theoretically. Says Ludin, "The other day, she ran the model on the spread of the disease, and she was like, 'Oh, this is a lot more fun!'"
According to Ludin, the program has a recruiting aspect as well. He indicates that because the technology is rapidly increasing, but nobody really knows how to use it, there's a need for parallel programming education. He recommends that to recruit the experts the field will need, they should target at least at the undergraduate level, or even the high school level: "The more you train at a very early age, the more you will have," says Ludin.
But Ludin believes the program can have a huge impact, because, like eating Lays potato chips, once students start, they won't be able to stop:
"Basically, if they do it for a year, if they keep working on the same scientific project using a supercomputer, especially the size of Blue Waters, I think there's a huge chance that they're probably going to stay and continue using it, and even find a way to use the supercomputer even more."
Ludin's philosophy—that early exposure to science can have a lasting impact—certainly holds true for intern William Leverette. A junior at University of Missouri-Kansas City, Leverette, who is studying electrical engineering, computer engineering, and physics, ended up in computer science because of early exposure to computers as a child.
Leverette's career aspirations when he was a kid were "To please mommy and daddy and become a doctor. Or a lawyer."
Ironically, it was his father who sidetracked Leverette from their hoped-for doctor/lawyer career and fostered his son's interest in computers. Leverette recalls that as a child, his father wouldn't let him waste a lot of time on video games and television. "He tried to keep me involved in things that would stimulate my brain, or basically have me do something for an hour or so besides just watching cartoons." That manifested in a parade of science and engineering-related projects from go-carts, swing sets, anatomy sets, to computers.
"But I think the computer thing is the one thing that survived all of that," says Leverette.
"At one time, I remember quite clearly," he reminisces, "because I remember my mother's frustration every time she saw it…our dining room got converted into a computer graveyard. That was one of my favorite things…to see, 'All right, if I put it together, will it still work? Will it come back on? Can I make it come to life?' That's kind of where that started."
What did Leverette get out of the Blue Waters workshop? "A lot about how a supercomputer works," he reports.
Leverette's career interests are varied. He would love to work in energy, "exploring new possible ways to get new energy sources, like solar, wind," and also signal systems.
However, this workshop may have changed his career trajectory. Before attending this workshop, he hoped to work in electrical or computer engineering. "I said, 'Ok, I'm gonna' go work in a power plant, or maybe I'll get to work in an electronics firm, or maybe some big software firm.' But now this kind of opens up another option."
"It definitely has helped me figure out how exactly I want to approach my career goals…I'm pretty much going to be heavily involved in this area of science now, so how can I make that presentable to both future employers and to potential grad schools?
Leverette believes this is the next big thing, and wants to get on board. "That's kind of where the future is heading with this. I believe it was Microsoft that said: 'By 2020, the supercomputers such as Blue Waters should be close to the norm.'"
Since it's had such a positive impact on his life and career choices, Leverette believe this program needs more exposure, especially among students from under-served areas:
"I think computational work, whether it's physics or engineering or chemistry, should definitely be looked into as a potential science option for a lot of people, especially if they're in computer science, computer engineering, and they want to do something that's a little bit different."
Another 2014 intern, Alexandria Robinson, is a junior at Xavier University. Majoring in computer science and mathematics and minoring in biology and chemistry (premed), Robinson dreams of working for the government in cybersecurity "One of those three-letter acronyms" (specifically, the CIA).
How did Robinson, who acknowledges that she's wanted to be a doctor her whole life, end up in computer science?
When she got to college, she had been addressing pre-med courses. Then she took a math class, and fell in love. "It was so much fun…when I picked it up, I was, ‘Oh, my god, this is great!'…It just felt like that's what I went to school for.'" Then, as a math major, she had to take an intro computer science programming course. She reports having no interest in doing so, but took the course and immediately "Fell in love." Again.
Robinson, whose college career went through some rocky patches, was particularly grateful for the stipend, which was going to clear up one of the obstacles that might have held her back: past-due tuition bills. "Somehow, I keep getting blessed by opportunities like this," she says.
But even more important than helping her get caught up financially, Robinson, who is also part of XSEDE's Summer Research Program (SRE) program, reports that the experience as a Blue Waters intern has not only reaffirmed her decision to enter computer science, but armed her with some needed skills.
"I have been waiting for the perfect time to get more experience with parallel computing, because the project that I'm going to be working on will be dealing with a lot of big data. I've been able to get a lot better at writing parallel code."
But Robinson has learned more than just how to write parallel code; during her time at Blue Waters, she reports learning some life lessons.
"I've learned that, "You just have to go for it!' I almost didn't come. And I just I feel like my whole life has changed—even in these first three days. I can't even imagine that I could have missed this."
What's another life lesson she's learned? "I shouldn't be so scared. I've got to trust myself."
Story and photographs by Elizabeth Innes, Communications Specialist, I-STEM Education Initiative.
More: Blue Waters, NCSA, Summer Research, Undergrad, 2014