Using the Pilot Library to Teach Message-Passing Programming

被引:4
作者
Gardner, William B. [1 ]
Carter, John D. [1 ]
机构
[1] Univ Guelph, Sch Comp Sci, Guelph, ON N1G 2W1, Canada
来源
2014 WORKSHOP ON EDUCATION FOR HIGH PERFORMANCE COMPUTING (EDUHPC) | 2014年
关键词
Parallel programming; MPI; high-performance computing; CSP; deadlock detection; novice programmers;
D O I
10.1109/EduHPC.2014.14
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Message-passing is the staple of HPC codes, and MPI has long occupied the place of HPC's default programming paradigm, thus it would seem to be the natural choice for instructing undergraduates. Nonetheless, MPI is a low-level API, complex and tricky to use, with many pitfalls awaiting the inexperienced. The Pilot library was invented as an alternative HPC programming model for C and Fortran. Pilot-based codes, using a process/channel application architecture borrowed from Communicating Sequential Processes (CSP), can avoid some categories of errors, and the Pilot library with its integrated deadlock detector provides extensive checking and diagnosis of usage problems, which is especially important for students running cluster programs in their typical low-visibility environment with limited debugging tools. This paper gives an overview of programming in Pilot, with its compact API of point-to-point and collective operations. It explains reasons for preferring it as an introductory message-passing technique, describes free resources available to the instructor, and relates experiences of using Pilot with undergraduates over five years, including student reactions. Pilot is now available as free and open source.
引用
收藏
页码:1 / 8
页数:8
相关论文
共 14 条
[1]  
Argonne National Laboratory Mathematics and Computer Science, 2012, MPIS SEND MOD
[2]  
DeSouza Jayant, 2005, SUPERCOMPUTING 05 SC
[3]  
Gardner William B., 2011, Proceedings of the 2011 International Conference on Frontiers in Education Computer Science & Computer Engineering. FECS 2011, P8
[4]  
Grama A., 2003, Introduction to Parallel Computing, V2
[5]   A Graph Based Approach for MPI Deadlock Detection [J].
Hilbrich, Tobias ;
de Supinski, Bronis R. ;
Schulz, Martin ;
Mueller, Matthias S. .
ICS'09: PROCEEDINGS OF THE 2009 ACM SIGARCH INTERNATIONAL CONFERENCE ON SUPERCOMPUTING, 2009, :296-305
[6]   COMMUNICATING SEQUENTIAL PROCESSES [J].
HOARE, CAR .
COMMUNICATIONS OF THE ACM, 1978, 21 (08) :666-677
[7]   An integrated fine-grain runtime system for MPI [J].
Kamal, Humaira ;
Wagner, Alan .
COMPUTING, 2014, 96 (04) :293-309
[8]  
Lin C., 2009, Principles of Parallel Programming, V1st
[9]  
McGuire Timothy J., 2004, J COMPUTING SCI COLL, V19, P252
[10]  
Message Passing Interface Forum, 2009, MPI MESS PASS INT ST