Download presentation
Presentation is loading. Please wait.
Published byWilliam Carpenter Modified over 9 years ago
1
A FUNCTIONAL APPROACH TO PARALLELISM AND DISTRIBUTED PROCESSING IN UNDERGRADUATE EDUCATION Dr. Maury Eggen Trinity University San Antonio, Texas USA
2
Outline Motivation for the development of MPSCM Background Methodology Educational Ramifications Implementation Examples Higher Level Functions Performance Summary, Conclusions, Future Research
3
Motivation The future is parallel (David Patterson) Complete change needed in the development of computer technology and program coding Need to develop new coding techniques Need to develop new programming languages – MPSCM Beginning students need fundamentals Parallelism must be infused into our entire curriculum
4
Background MPSCM study begun two years ago MzScheme dialect chosen – fully R 5 RS-compliant – TCP/IP – Threading – Synchronization
5
Methodology MPI (Message Passing Interface) is the defacto standard for message passing MPSCM has many MPI like constructs MPSCM related to a subset of MPI MPSCM fits our expectations of what a message passing environment should be Focus on preserving the functional nature of Scheme
6
Education Scheme commonly used in educational environments Clear syntax and semantics Few constructs, easy to learn, expressive
7
Education MPSCM provides a technology based educational environment for teaching parallelism which focuses particularly on creating an interface that gives the student and educator access to fundamental parallel programming concepts while preserving the ease of use of Scheme
8
Implementation MPSCM built in three layers – Communication layer – Evaluation layer – Top level functions
9
Examples-Simple Scheme (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))
10
;; worker snippet (let ((received-val (MPSCM-recv 0 0))) (MPSCM-send 0 (f received-val) 1)) ;; master snippet (begin (MPSCM-send 1 value 0) (MPSCM-recv 1 1)) ;; SIMD function (define mpi-fun (lambda (value) (if (= MPSCM-myrank 0) (begin (MPSCM-send 1 value 0) (MPSCM-recv 1 1)) (let ((received-val (MPSCM-recv 0 0))) (MPSCM-send 0 (f received-val) 1)))))
11
Higher Level Examples (define lst (list 1 2 3 4 5 6 7 8 9)) map … (map fact lst) (1 2 6 24 120 720 5040 40320 362880) (MPSCM-map fact lst)
12
Performance The primary goal of MPSCM is not to provide a competitive alternative to quicker approaches to parallel programming such as C/MPI for high performance computing. Its goal is, however, to provide a highly expressive parallel programming environment in which students new to the concepts of parallelism can learn and flourish, and it is highly successful at achieving this goal.
13
Summary Nice easy to use environment for introduction to parallelism and distributed processing Many interesting and useful characteristics Good starting point for further investigations Decomposition process well presented in this approach The authors believe the approach will pay educational dividends for our students
14
Future Research Considerable parallel processing can be done with just six functions, initialize, finalize, size, rank, send and receive. MPI has over 100 functions and more are being added daily MPSCM has fewer than 100… More and varied higher level functions must be added
15
Co-Authors Maury Eggen, Trinity University, San Antonio, Texas USA meggen@cs.trinity.edu Dr. Roger Eggen, University of North Florida, Jacksonville, Florida USA ree@unf.edu Alexander Starche, Trinity University, San Antonio, Texas USA astarche@trinity.edu
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.