Submitted by:
James L. Fastook
Computer Science
University of Maine
223 Neville Hall
Orono, ME 04469 USA
v: (207) 581-3927
f: (207) 581-3531
e: fastook@maine.maine.edu
Categories:
Education, higher
Keywords:
More equitable access to technology or electronic information; Local commitment to network-based activities
The Story:
The University of Maine is a land grant university in one of the less affluent states of New England, and while there is a strong commitment from the legislature to support higher education, the funding is always tight here in Maine as a result of our limited tax base. As a result, our relatively small Computer Science Department is unable to afford the state-of-the-art hardware necessary to teach some of the newer disciplines involving supercomputers, and in particular, parallel programming.
As more and more platforms with multi-processors become commercially available, the demand from programmers with experience on such architectures will continue to increase. In the near future we should expect to see even desktop computers with several CPU’s, and the demand for software which takes advantage of these new capabilities will certainly increase.
In the past we have had to rely on parallel computer simulators for our parallel programming instruction. This approach is limiting for a number of reasons. Programming in a parallel environment requires a completely different way of thinking about a problem than is the usual case with sequential programming. A parallel programmer most be able to analyze a problem in much greater detail to detect and take advantage of the potential parallelism inherent in most problems. On the simulators, students can experience this new way of thinking, but they cannot experience the actual consequences of their decisions. There are many non-intuitive costs in the parallel processing environment such as communication delays, variability of individual processor loads, I/O contention at shared memory storage that severely degrade the theoretical potential for parallel speedup. These costs are not apparent on the simulators, since they in essence are sequential processors running concurrent, but not parallel, processes. To effectively learn how to program parallel computers, one MUST have access to a real parallel computer.
When the University connected to the INTERNET a few years ago, the potential to take advantage of distant hardware became a realistic possibility. Sites such as the Cornell National Supercomputing Facility (CNSF) offer educational accounts as part of their mandate to encourage educational opportunities involving high performance computers. Without INTERNET access, use of these facilities was not a realistic possibility, but with the current connection, students can login to the Cornell facilities as if they were on site.
The Parallel Programming class is relatively new, now in its third year as an independent course. Demand has always been high, even when it was taught on a simulator, but interest and enrollment has definitely increased since we have been able to advertise the potential for experience on an actual supercomputer. We will continue this approach, delivering to the students an educational experience they would otherwise not have available to them if we were dependent on only local equipment.