, University of North Carolina Charlotte
, University of North Carolina Wilmington
Since 2004, North Carolina undergraduate students have had the opportunity to learn and apply grid computing techniques using collective resources from several local universities. Three grants funded this work—a US National Science Foundation grant for developing the course and broadcasting it across the state and two University of North Carolina Office of the President grants that provided funds for grid computing equipment for universities and support for students and faculty.
Most grid computing courses are graduate-level seminar or special-topics courses within a single department. Our course is unique both because it targets undergraduates and because several universities participated in forming a grid of computers (their students enrolled in the course collectively to use this grid).
We classroom-tested the 15-week course in fall 2004 and 2005. Both times, we featured state-of-the-art presentations from internationally known guest speakers. The participating universities included minority-serving universities, state universities, and private colleges.
Most students were junior or senior computer science students. The prerequisite was programming skills in Java and C, preferably on a Linux system. We expected all students to meet the prerequisite or quickly learn the languages and system tools. We didn't assign a course textbook because there wasn't a suitable one; however, we informed students of available grid computing books and important papers that were suitable for reference and reading. Apart from preparing new lecture materials specifically for undergraduate students, we produced extensive documentation for both a coherent set of programming assignments and for grid software installation. We also made everything available online to help others create their own grid courses.
Grid computing uses geographically distributed computers connected on the Internet for high-performance computing and resource sharing. It often involves computers from multiple organizations, crosses organizational boundaries, and enables the creation of distributed teams (so-called "virtual organizations"). Therefore, to teach grid computing properly, we first needed a distributed operational grid of computers for students to access. Our course uniquely combines distance-learning tools with grid computing. Students from many universities enroll and become the virtual organization together with supporting faculty from their home institutions. Integrating with this virtual organization is the physical grid of computers provided at major sites for students.
We took advantage of the existing statewide North Carolina Research and Education Network to present the lectures to geographically distributed sites. NCREN, an instructional telecommunications network, has interconnected universities, medical centers, research institutions, and graduate centers in North Carolina since 1985. It provides face-to-face video and audio communications, employing a combination of microwave links and long-distance digital fiber-optic lines. Each site has "teleclassroom" facilities where students have microphones and can interact and participate in discussions with the instructor via video cameras. Each teleclassroom also has a camera operator who records all lectures, so students can view lectures again later or catch up on any missed lectures.
The fall 2004 grid computing course originated from Western Carolina University (WCU) and broadcast on the NCREN network simultaneously to the University of North Carolina Wilmington, UNC Asheville, Appalachian State University, North Carolina State University, UNC Greensboro, Elon University (a private institution), and North Carolina Central University. Some lectures originated from UNC Wilmington.
More than 40 students enrolled in the course, including two from Cape Fear Community College attending classes at UNC Wilmington. Students received course credit at their home institutions. Several faculty members attended. Near the end of the semester, students heard presentations from several guest speakers, including Daniel Reed of NC State University and Wolfgang Gentzsch of the Microelectronics Center of North Carolina. The Microelectronics Center's Chuck Kelser discussed legal issues. Students viewed a taped presentation by Ian Foster of the University of Chicago and the Argonne National Laboratory, the so-called father of grid computing. An NC State University graduate student also presented his work on grid computing.
The fall 2005 grid course originated from UNC Charlotte and broadcast to Appalachian State University, Elon University, NC State University, UNC Asheville, UNC Chapel Hill, UNC Pembroke, UNC Wilmington, Western Carolina University, Winston-Salem State University, Lenoir Rhyne College, and Wake Technical Community College. Again, some lectures originated from UNC Wilmington. Figure 1 shows a map of the universities in the UNC system, identifying the fall 2005 participating sites.
Figure 1 Sites participating in the fall 2005 grid computing course. Pink dots indicate participating UNC campuses; yellow dots indicate private institutions.
Thirty-two students enrolled in the course, several faculty members attended, and invited guest speakers participated near the end of the semester. Jim Jokl from the University of Virginia, Art Vandenberg from Georgia State University, and Mary Fran Yafchak from the Southeastern Universities Research Association, gave a team presentation describing the SURAGrid. The Renaissance Computing Institute's Lavanya Ramakrishnan described the institute's work including the Bioportal and ocean and atmospheric modeling using the grid. Genesis Molecular's Jeff Schmitt discussed creating a large unique grid of computers across a school district for molecular modeling. WCU's Mark Holliday presented his "end-to-end" demonstration, describing all the underlying elements of job submission and illustrating them with a live demonstration. His student, James Ruff, also gave a presentation on using the Sun Grid Engine scheduler, which was used in a course assignment.
Setting up the grid of computers across the state was a major undertaking and required the assistance of many people. In fall 2004, computer clusters were set up with grid software at three major sites (WCU, UNC Wilmington, and NC State University) where many students were registered (roughly 13 at each site). At sites with only one or two students, students received accounts on WCU computers. In fall 2004, we used Globus 3.2 and the Condor/Condor-G scheduler. In fall 2005, computer clusters were set up with grid software at six sites (Appalachian State University, UNC Asheville, UNC Charlotte, UNC Wilmington, NC State University, and WCU), and they used Globus 4.0 with the Sun Grid Engine scheduler. We installed a workflow editor called Grid-Nexus and used it later in the course (both in fall 2004 and fall 2005).
Each major site also maintained a certificate authority. In fall 2004, we preinstalled all the necessary files for each student—that is, a signed certificate and grid-map entries (the way Globus handles access control). In fall 2005, we changed the certificate-creating process to make it more realistic to a production grid. A new production grid user often must ask the administrator for permission to join and then follow the instructions to set up the system. Similarly, on the first day of classes in fall 2005, each student created a certificate request to the CA system administrator using the Globus grid-cert-request command. Upon receiving the request, the administrator placed the signed certificate in the student's .globus directory and emailed a confirmation to the student.
The next part of our article will run in IEEE Distributed Systems Online's July 2006 Education department. There, we discuss both a grid computing workflow editor developed at UNC Wilmington and experiences from the course. For more details on the course and its assignments, see www.cs.uncc.edu/~abw/ITCS4010F05.
Barry Wilkinson and Clayton Ferner, "Teaching Grid Computing in North Carolina: Part I," IEEE Distributed Systems Online, vol. 7, no. 6, 2006, art. no. 0606-o6004.