Parallel Programming Languages, Libraries, Models and Notations
TimeSunday, November 12th8:30am - 5pm
DescriptionThis tutorial provides a comprehensive overview of parallel computing, emphasizing those aspects most relevant to the user. It is suitable for new users, managers, students and anyone seeking an overview of parallel computing. It discusses software and hardware/software interaction, with an emphasis on standards, portability, and systems that are widely available.
The tutorial surveys basic parallel computing concepts, using examples selected from multiple engineering, scientific, and data analysis problems. These examples illustrate using MPI on distributed memory systems; OpenMP on shared memory systems; MPI+OpenMP on hybrid systems; CUDA and compiler directives on GPUs; and Hadoop and Spark on big data. It discusses numerous parallelization and load balancing approaches, and software engineering and performance improvement aspects, including the use of state-of-the-art tools.
The tutorial helps attendees make intelligent decisions by covering the primary options that are available, explaining how they are used and what they are most suitable for. Extensive pointers to web-based resources are provided to facilitate follow-up studies.