Skip to content

SouthernMethodistUniversity/parallel_cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMU O’Donnell Data Science and Research Computing Institute Parallel C++ Workshop

The SMU O’Donnell Data Science and Research Computing Institute Parallel C++ Workshop is designed to introduce users through the fundamental concepts and practical implementations of parallel programming using C++ standard parallelism and MPI via MPL.

Overview

Parallel programming is essential for leveraging the power of modern multi-core processors to improve the performance of applications. This workshop focuses on teaching parallel programming techniques using C++, a language widely used in performance-critical applications. It covers essential topics, tools, and techniques that enable you to write efficient and scalable parallel code.

Key Topics

  1. Introduction to Parallel Programming:

    • Understanding the basics of parallel computing.
    • Advantages of parallelism in software development.
    • Overview of parallel hardware and software architectures.
  2. C++17 Parallel Programming:

    • Use of standard C++ features for parallelism, such as threads, atomic operations, and futures.
    • Introduction to the C++ Standard Library's threading support.
  3. MPI (Message Passing Interface) via MPL:

    • Introduction to MPI for distributed-memory parallel programming.
    • Using MPI for communication between processes in a parallel program.
    • Examples of MPI programs for understanding communication patterns.

Getting Started

  • Prerequisites: Basic understanding of C++ programming.
  • Environment Setup: Guidance on setting up a development environment suitable for parallel programming, including compiler settings and libraries.
  • Example Projects: Hands-on examples provided to practice the concepts learned.

Resources

  • Documentation: Detailed explanations and examples of the concepts covered.
  • Examples: Sample code demonstrating the use of parallel constructs in real-world scenarios.
  • Exercises: Problems and projects to test your understanding and skills.

Contribution

This workshop is open for contributions from the community. You can suggest changes, report issues, or add new content to help enhance the learning experience.