Programming assignments in university courses "Parallel Programming" and "Parallel Programming for Computer Systems". Several programs from my scientific practise.
Main stack of used technologies:
- Ada (semaphores, protected units, randezvous)
- Java (semaphores, synchronized, custom generalized monitors and barriers, volatile, fork-join concurrency)
- C# (semaphores, mutexes, volatile, monitors, locks, critical sections, parallel.for, parallel.foreach, parallel.invoke)
- Python (multiprocessing, threading)
- C++ (WinAPI threading)
- OpenMP via C++ (pragma omp parallel, for, reduce, locks, barriers, scheduling, etc.)
- MPI via C++ (basic multiprocessing, blocking send/receive, structuring, communicators, synchronization, etc.).
- OpenCL via C# and C++ (for CPU-GPU text recognition problem) Much deeper work with OpenMP and MPI was carried out on a separate course, repository: https://github.com/valerii-martell/High-Performance-Computing
Main problems considered:
- Thread/Process Synchronization Problem
- Mutual Exclusion Problem
Applied tasks, the parallel implementation of which is implemented:
- Vector-matrix arithmetic operations
- Search for minimum / maximum
- Merge sort
- Text recognition
The work of parallel systems is considered and emulated:
- (Scalable) Systems with Shared Memory
- (Scalable) Systems with Local Memory
Models of fixed and scalable systems are built, practical problems in them are solved.
The parallelism of different degree of granularity is considered, namely:
- Coarse-grained parallelism
- Medium-grained parallelism
- Fine-grained parallelism
The Fork-Join mechanism based on the Divide-and-Conquer algorithm is considered.
The basics of separate use of GPU and joint use of CPU and GPU for solving the practical problem of text recognition by an elementary neural network are considered.
Based on this, several scientific articles in international journals and theses in international conferences proceedings have been published. See my CV for details: https://www.overleaf.com/read/jbjyzwftsrsn https://github.com/valerii-martell/CV_LaTeX