by Michael J. Freedman
Associate Director of Public Relations and Manager of Online Content
Sarah Kojm recently became the first Niagara University student to write a parallel program for a class project.
What's more impressive is that the May graduate achieved the feat during an independent study course, meaning she didn't have the benefit of a parallel processing textbook or in-class discussion.
"I gave her a webpage to consult and she was able to figure it out from there," said Dr. Laurence Boxer, the professor of computer and information sciences who tasked Kojm with the project.
To understand what Kojm accomplished, one must recognize that software development is undergoing a revolution, fueled largely by progress in hardware and a desire for speed. Today's computing devices of all shapes and sizes are parallel - they have multiple processors or "cores" that can operate in parallel with each other - so that computing problems can be solved faster than if only one processor was present.
At many universities, instruction in computer programming lags behind, still focused on the single-processor model of computation. As a result, there is great need and opportunity for young computer programmers who can exploit the potential of parallelism. Many of today's programming challenges require time-consuming processing of massive amounts of data; in order to solve such problems efficiently, the ability to write software that can divide such problems among multiple processors is a critical skill.
Using C++ programming language, practitioners are able to measure the amount of time used by a process. Kojm used these tools to show that when she sorted a list of data using two processors, about half the time was necessary as compared to when she used only one processor to sort the same input list.
"This is a significant achievement, because, in general, there is no guarantee that speedup will be proportional to the number of processors used," Boxer noted. "The latter is because parallel computing introduces the need to divide the computing problem among the processors, share data among processors and combine the partial solutions of individual processors into a complete solution of the computing problem, all of which takes time. Thus, to obtain speedup proportional to the number of processors used confirms that Sarah's code is efficient."
Kojm never envisioned herself being recognized for work in computer science. The Cleveland Hill High School graduate originally considered studying engineering in college before deciding on math at NU, in part because she would also be able to participate in the university's acclaimed theater program during her free time. She says that she "fell into" computer science and ended up with a minor in the subject.
"A lot of people don't really know that department I belong to because I'm really involved in theater, too," Kojm joked.
Even taking the spring course with Boxer occurred via happenstance.
"I took this independent study as a fluke. My friend was taking it and I had this gut feeling that I should take this," Kojm said.
When Boxer gave Kojm the timing project for recursive sorting methods, he admitted that it was more difficult than anything she'd tried, but he was confident she could figure it out. He gave her a month to do so.
It took her two days.
"I honestly didn't know what I was doing," Kojm admitted. "I just started putting things in, ran my program and was like, 'Oh my goodness, it worked!' "
Kojm plans to pursue a career in business and hopes that her IT experience will come in handy. Back on Monteagle Ridge, the impact of her accomplishment is likely to felt by future Niagarans.
"Sarah became a pioneer among Niagara students," Boxer remarked. "I intend that this will be a recurring feature of the course - that Niagara students will have the opportunity to learn techniques of parallel programming, which has become a core technology for the 21st century."
To learn more about Niagara University's programs in computer and information science, visit www.niagara.edu/cis.