Parallelism and Education: Rough Waters in a Sea of Change
One measure of the quality of education might well be how soon you find yourself employed once you're out of school. But the problem the past few years hasn't been in the quality of education, rather in the demands of the job market.
In other words, employers increasingly have demands that students can't meet -- and there's no better example of this than with parallelization. The solution? Schools need to go parallel just as much as industry, at least according to the panel "Parallelism and Education: Navigating through a Sea of Cores" at the Intel Developer Forum.
Moderated by Georgia Tech's Matthew Wolf, the panel included a mix of industry and academia that included Daniel Ernst of the University of Wisconsin-Eau Clair, Adobe's Kevin Goldsmith , Intel's Michael McCool, Thomas Murphy from Contra Costa College, and Ryan Newton from Intel.
Wolf kicked off the session by pointing out the challenges educators face when it comes to parallel programming:
- What does the move to a many core platform mean to education in general, and the Computer Science curriculum in particular?
- In the face of ubiquitous parallel systems, what CS core topics need to change?
- What are the tools, languages, models and patterns that will allow academia to take advantage of this new platform?
- How can Industry help?
- What skills will hiring managers be demanding?
Adobe's Goldsmith is one such hiring manager who quickly pointed out that parallel programming is no longer considered a "special" skill, at least at Adobe where virtually all software created these days involves multithreading. Consequently, if job applicants can't demonstrate some knowledge of parallel programming, they likely won't make it to the second interview. "We look for people with parallel skills," said Goldsmith. From his outside-of-academia perspective, Goldsmith believes that parallelism needs to be integrated into the whole computer science curriculum, not simply a "parallel" class here or there.
From inside academia, Dan Ernst concurred, explaining students don't need to be able to write highly optimized code, but they do need to be able to write "forward scaling code."
Michael McCool, who joined Intel when the company acquired RapidMind which McCool co-founded, acknowledged that one of the problems for students is that parallelism does make it more difficult to write correct code that performs well. To circumvent this problem, said McCool, curriculums need to emphaize stuctured design patterns, such as those McCool discusses in Structured Patterns: An Overview. Doing so is the first step students can take to become developers who efficiently create scalable and reliable parallel applications.
Understanding parallel algorithms and patterns were at the top of Tom Murphy's list too, while Ryan Newton pointed out that "technology will change, but paradigms -- like parallelism -- will have lasting power. Mathew Wolf closed in agreement, urging educators not to teach specific technologies, but teach to put technology in context.