Maulana Azad National Institute Technology, Bhopal
मौलाना आज़ाद राष्ट्रीय प्रौद्यो गकी संस्थान, भोपाल
Department of Computer Science and Engineering
Introduction on OpenMP
Presented By: Guided By :
Aditya Raj Gupta Dr. Amit Kumar Nandanwar
Advanced Computing
2321203108
● Definition
● History of OpenMPI
● Benefit
● Architecture
● Parallel Programming with OpenMPI
Contents ●
●
First Program in OpenMPI
Important Function in OpenMPI
● Application
● Limitation
● Conclusion
Definition
● OpenMPI, short for Open Message Passing Interface, is an open-source
implementation of the Message Passing Interface standard.
● OpenMPI provides a framework and libraries for parallel programming,
allowing developers to write applications that can run efficiently on parallel
and distributed computing systems.
● It supports various platforms, architectures, and network interconnects,
making it a versatile tool for developing scalable and high-performance
History of OpenMPI
Parallel Virtual Machine OpenMPI
● Late 1980’s ● Early 2000’s
● PVM allowed processes ● It aimed to develop an
running on across different open-source,
machines to communicate production-quality MPI
with each other library
Benefits
● Efficient Communication
● Scalability
● Portability
● Performance Optimization
● Community Support and Development
Architecture
● Shared Memory Architecture
● Distributed Memory Architecture
● Hybrid Architecture
● Client-Server Architecture
● Cloud-based Architecture
Parallel Programming
● Parallelization Strategies
○ Task Parallelism
○ Data Parallelism
○ Pipeline Parallelism
● Task Decomposition
● Load Balancing (Important)
● Data Distribution
First Program in OpenMPI
Hello World
Important Functions
● MPI_Init(&argc, &argv)
● MPI_Comm_rank(MPI_COMM_WORLD, &rank)
● MPI_Comm_size(MPI_COMM_WORLD, &size)
● MPI_Finalize()
Applications
● Scientific Computing
● Bioinformatics
● Machine Learning and Data Analytics
● Financial Modeling
● High-Performance Computing
● Parallel I/O and Big Data Processing
Limitations
● Complexity
● Memory Consumption
● Communication Overhead(Important)
● Scalability Limits
● Limited Fault Tolerance
1. OpenMPI is a powerful message-passing
library that enables parallel programming
across distributed memory systems.
2. OpenMPI plays a crucial role in parallel
computing by providing a scalable,
Conclusion portable, and high-performance platform
for developing parallel applications.
3. As parallel computing continues to play a
vital role in scientific research,
engineering, and data analytics, there is a
growing need for skilled parallel
programmers.
Thank You…