Skip to content

TIAGOOOLIVEIRA/Master-HighPerformanceComputing-UniversidadSantiagoCompostela_code_cuda-mpi-omp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HPC Master’s Degree Repository

Welcome to my repository dedicated to tasks, assignments, and investigations related to my Master’s Degree in High-Performance Computing (HPC). This repository serves as a structured collection of source code, scripts, tools, and reference materials developed or studied throughout the course.


🗂️ Repository Structure

This repository is organized into the following main directories:

  1. cuda/
    Contains assignments and projects completed as part of the coursework. Examples include:

    • CUDA Applications: Parallelized algorithms using NVIDIA CUDA.
    • OpenMP Implementations: Shared memory parallelism in C/C++.
    • MPI Programs: Distributed memory solutions for clusters.
  2. cloud/
    Scripts and configurations for setting up and managing HPC workloads on cloud platforms, particularly AWS. This includes:

    • Job submission scripts for AWS Batch.
    • Auto-scaling configurations for HPC clusters.
    • Optimization for cloud-based compute nodes.
  3. hpc_tools/
    Tools and utilities for profiling, debugging, and analyzing performance:

    • Usage of NVIDIA Nsight, gprof, Valgrind, and others.
    • Performance tuning and benchmarking tools.
    • Custom scripts for automating performance analysis workflows.
  4. mpi/
    Documentation, code samples, and notes based on:

    • Books: Summaries and examples from key HPC textbooks.
    • Papers: Reproducing experiments or methodologies from academic research.
    • Trainings: Exercises and examples from HPC-related training courses.
  5. omp/
    Documentation, code samples, and notes based on:

    • Books: Summaries and examples from key HPC textbooks.
    • Papers: Reproducing experiments or methodologies from academic research.
    • Trainings: Exercises and examples from HPC-related training courses.
  6. opencl/
    Documentation, code samples, and notes based on:

    • Books: Summaries and examples from key HPC textbooks.
    • Papers: Reproducing experiments or methodologies from academic research.
    • Trainings: Exercises and examples from HPC-related training courses.

💡 Objectives

This repository aims to:

  • Demonstrate hands-on knowledge in programming for parallel and distributed systems.
  • Document the learning journey in HPC concepts and their practical applications.
  • Facilitate sharing of insights, examples, and best practices in HPC development.

🔧 Tools & Technologies

The repository includes work involving the following tools and technologies:

  • Programming Languages:
    Primarily C and C++ with extensions for CUDA, OpenMP, and MPI.

  • HPC Tools:

    • Profilers: NVIDIA Nsight, gprof.
    • Debuggers: Valgrind, CUDA Debugger.
    • Performance Analyzers: Perf, VTune.
  • Cloud Platforms:

    • AWS for on-demand HPC resources.
    • Scripts for auto-scaling and cost-efficient usage.

🚀 How to Use

  1. Clone the repository:
    git clone https://www.usc.gal/en/studies/masters/engineering-and-architecture/master-high-performance-computing-online.git
    
    
  2. Navigate to the appropriate folder for the task or topic you are interested in:
    cd hpc-masters/assignments
    
  3. Follow the instructions or README files within each folder to build, execute, or explore the materials.

📚 Resources & References

The following resources have been instrumental in this journey:

Books: "Parallel and High Performance Computing; C++ Concurrency in Action; " and others.
Trainings: NVIDIA Deep Learning Institute, AWS HPC Workshops; HLRS
Papers: ACM Research articles on performance analysis, scaling HPC applications, and optimization strategies.

About

Coding exercises and exploration over NVIDIA CUDA GPU programming, OpenMP and MPI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published