- Benemérita Universidad Autónoma de Puebla (BUAP)
- Faculty of Computer Science
- Term: Autumn 2025
- Student: Leonardo Lagos López
- Professor: Dr. Meliza Contreras González
This repository contains all the assignments, projects, and practice codes developed for my 7th-semester Concurrency and Parallelism Programming course.
The main objective of this collection is to demonstrate the practical application of concurrent programming concepts, including thread management, synchronization mechanisms, and parallel processing algorithms using Java and OpenMP.
- Languages: Java (Core), C/C++ (for OpenMP)
- Key Libraries:
java.util.concurrent(Semaphore, Locks), OpenMP - Core Concepts:
- Thread Lifecycle & Management
- Race Conditions & Deadlocks
- Critical Regions & Mutual Exclusion (Mutex)
- Synchronization (Semaphores, Monitors)
- Parallel Algorithms (PCAM Design Methodology)
A simulation of two businesses ("Pizza Ready" & "Burger Joint") running concurrently. It features independent worker threads, a supervisor thread, and shared financial resources protected by Semaphores to prevent race conditions.
- Concepts: Exclusion Mutual (Mutex), Semaphores.
Implementation of image processing algorithms using the PCAM (Partitioning, Communication, Agglomeration, Mapping) design methodology for parallel computing.
A performance-critical implementation of matrix multiplication utilizing OpenMP for parallel execution on multi-core processors.
- Activity 2: Introduction to thread creation and management.
- Activity 3: Basic synchronization and thread coordination.
- Activity 4: Handling race conditions.
- Activity 5: Implementation of producer-consumer patterns.
- Activity 6: Advanced synchronization primitives.
- Activity 7: Deadlock detection and prevention.
- Activity 8: Parallel patterns and thread pools.
Most projects in this repository are Java-based. To run a specific activity (e.g., Activity 9):
- Navigate to the specific activity folder:
cd Activity-9 - Compile the source files:
javac src/*.java - Run the main class:
java -cp src BusinessSimulator
Note: For OpenMP projects, ensure you have a compatible C/C++ compiler (like GCC) installed.
This project is for educational purposes as part of the Computer Science Engineering curriculum at BUAP.