Teaching Parallel and Distributed Computing Using a Cluster Computing Portal Hong Lin Hong Lin Computer and Mathematical Sciences Computer and Mathematical Sciences University of Houston – Downtown University of Houston – Downtown
Jan 03, 2016
Teaching Parallel and Distributed Computing Using a Cluster Computing Portal
Hong LinHong LinComputer and Mathematical Sciences Computer and Mathematical Sciences University of Houston – Downtown University of Houston – Downtown
OutlineOutline
BackgroundBackground ApplicationsApplications Teaching PDC Topics in an OS CourseTeaching PDC Topics in an OS Course Evaluation ReportEvaluation Report ConclusionsConclusions
BackgroundBackground
The use of the grid computing The use of the grid computing environment at UHD to support environment at UHD to support research and educationresearch and education
Establishment of the cluster-centered Establishment of the cluster-centered grid and student involvementgrid and student involvement
Faculty/student research projects Faculty/student research projects
Educational grid at UHDEducational grid at UHD
A cluster-based high-performance A cluster-based high-performance platformplatform
To support research in educational To support research in educational training training
To support research in various areasTo support research in various areas a central system for development of a central system for development of
laboratory modules to support laboratory modules to support computer science curriculum computer science curriculum
ArchitectureArchitecture
The ClusterThe Cluster
Project ObjectivesProject Objectives
Dynamic source code handling of Dynamic source code handling of student submissionsstudent submissions
Sequential – C, C++, JavaSequential – C, C++, Java Distributed – C, C++ (MPICH/openMPI), Java Distributed – C, C++ (MPICH/openMPI), Java
and Parallel Javaand Parallel Java Allow remote access to the cluster resourcesAllow remote access to the cluster resources Retain security Retain security Authenticate against existing system usersAuthenticate against existing system users
ApplicationsApplications
FacilitationFacilitation• Distributed programsDistributed programs
On grid.uhd.eduOn grid.uhd.edu
• Aids beginner developersAids beginner developers Remotely upload, compile and execute Remotely upload, compile and execute
• C/C++, JavaC/C++, Java
• Remote access to cluster resourcesRemote access to cluster resources• Home folder file management via Web Home folder file management via Web
BrowserBrowser
GoalsGoals
CompletionCompletion• Code handlingCode handling
C/C++ C/C++ • dynamic make file generationdynamic make file generation• distributiondistribution
Java – compilation and distributionJava – compilation and distribution Design and development of a Design and development of a
web based dynamic UI web based dynamic UI • J2EEJ2EE
Web ApplicationWeb Application
User authenticationUser authentication
Language processingLanguage processing
File managementFile management
Web Portal InterfaceWeb Portal Interface
Web Portal Interface (cont’d)Web Portal Interface (cont’d)
a. Selection for parallel C++ requesting compilation and execution.b. Selection of serial C and processing type is execution.
Demonstration of different selections
Web Portal Interface (cont’d)Web Portal Interface (cont’d)
a. Cropped screen capture prior compilation and execution of a parallel C p rogram b. Cropped screen capture after the execution of the parallel C program
A view of the inputs and results from compilation and execution of a parallel C program
Web Portal Interface (cont’d)Web Portal Interface (cont’d)
FFunctionality of the file browser made accessible through the use of buttons
Teaching Parallel Computing Topics Using the Platform
NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing
“A primary benefit would be for CS/CE students and their instructors to receive periodic guidelines that identify aspects of PDC that are important to cover, and suggested specific core courses in which their coverage might find an appropriate context.”
The Adopting CourseThe Adopting Course
Operating System (CS 4315)• Spring 2012• traditional systems utilizing a single
processor• Resource sharing (processor, memory)• Main modules: device management,
process and resource management, and storage management (main memory and file system management)
Integration Plan Computer Organization module:
• pipeline• SIMD• MIMD
Operating System Organization module:• Multithreading
Memory Management module:• Memory Hierarchy• Cache• Consistency• Coherence
Integration Plan (cont’d)Integration Plan (cont’d)
Synchronization:• spin lock• test-and-set instructions• semaphore
Deadlock Message Passing:
• Topology• Latency• routing
Programming TopicsProgramming Topics
Shared memory: Task/thread spawning (Java, Pthread)
Distributed memory: SPMD (MPI) Closed labs: Sample codes were
provided to students to skip learning new languages
Evaluation
difficulty to integrate the new topics into the existing course: • interweaving PDC topics into the existing uni-
processor based topics• traditional topics must be still covered
feedbacks from the students:• Entrance and exit surveys• Closed labs• Questionnaire: whether the topics were
interesting, the depth of the topics, and the pace of the class
Design of the Course Modules
existing course modules (e.g., synchronization and deadlock)
Additional course modules On PDC topics:
• 6 closed labs• 1 programming assignment
Sample labSample lab
Multicore Lab 3 UMA and NUMA Access:• Using Pthread and MPI to simulate and
evaluate the access times to local shared memory and the access times to remote memory.
• Access to local memory – spin lock• Access to remote memory – message-
passing
Learning Outcomes Assessment passing rate on the programming assignments
Multicore Hands-on Experience Passing rate*Multicore Lab 1 Synchronization with Java
50%
Multicore Lab 2 Spin Lock and Cache Coherence
67%
Multicore Lab 3 UMA and NUMA Access 39%Lab for Process and Thread Management
44%
Lab for Basic Synchronization Methods 61%Lab for Deadlock 50%Programming Assignment 3 Bounded Buffer Problem
56%
Note*: Passing rate is the percentage of the students who have scored at least 70 out of 100
Learning Outcomes Assessment (cont’d)
passing rate on multicore questions on exams
Exams Passing rate 1* Passing rate 2**
Midterm 17% 33%
Final 22% 80%
Note*: Passing rate 1 is the percentage of the students who have scored at least 70 out of 100 among the entire class.Note**: Passing rate 2 is the percentage of the students who have scored at least 70 out of 100 among the students who received a passing grade (C or up) for the course.
Entrance and exit surveysEntrance and exit surveys
Question 1: How much do you think you know about PDC technology?1) A lot2) Somewhat3) Only a little4) Not at all
Question 6: In a scale of 1 to 5, rate your knowledge about multi-threading using Pthread with 1 being the least knowledge and 5 being the full knowledge?
Survey responsesSurvey responses
Question #
Mean on Entrance Survey
Mean on Exit Survey
1 3.00 2.00
2 2.56 2.38
3 1.33 1.38
4 1.44 1.38
5 2.00 2.75
6 2.22 3.00
comparison of the student responses in two surveys.
Student commentStudent comment“I find the topic interesting as well as useful when programming applications for multi-core devices, but I personally find the topic to be complex and too much to cover in an Introduction class. I understand the need to push out as much information as possible, but from a students perspective that is still very new learning about multi-core processing and the CS curriculum being so broad, I would of liked to gone through more examples during class time to get a better understanding and take more time to learn each topic. Also programming some labs and projects in different languages is extremely hard when you don't know the programming language that well. …”
ConclusionsConclusions A web interface for the cluster based grid at a small minority serving A web interface for the cluster based grid at a small minority serving
institution:institution:• implementing a web application to allow access to cluster implementing a web application to allow access to cluster
computational powercomputational power• developing the backend for compilation, execution and distribution of developing the backend for compilation, execution and distribution of
sequential, parallel and interactive applications on the clusters sequential, parallel and interactive applications on the clusters available resourcesavailable resources
• incorporating a file browser allowing the download, and upload of incorporating a file browser allowing the download, and upload of multiple files, their editing and basic file manipulations like copy, multiple files, their editing and basic file manipulations like copy, move, rename.move, rename.
Teaching PDC topics using the platform:Teaching PDC topics using the platform:• case study of using an operating system course as the adopting
course. . • Mingle add-on topics with existing topics seamlessly.• Use closed labs.• evaluation of teaching PDC topics indicated positive learning outcomes
and student feedback. . establishing necessary computing platforms in an undergraduate
institution to support experiments on newly emerged computer architectures. .
QuestionsQuestions