Short Training Courses
NCC Montenegro offers focused short courses designed to introduce participants to the world of high-performance computing (HPC). For example, current offerings include Introduction to Supercomputing, where you’ll learn the fundamentals of HPC architecture and applications, and From Personal Computing to HPC, which bridges the gap between everyday computing and the advanced capabilities of supercomputing. These courses provide a solid foundation for leveraging HPC in research, industry, and innovation.

Introduction to Supercomputing
2-day course
Introduction to Supercomputing is a comprehensive short course designed to provide beginners with foundational knowledge and hands-on experience in high-performance computing (HPC). Over the span of 1–2 days, participants will learn the basics of supercomputing, explore its architecture, and understand how to navigate an HPC environment. The course is tailored for students, researchers, and professionals who are new to HPC and are seeking computational solutions for their work. By the end of the course, participants will be equipped with the knowledge and skills to confidently engage with HPC systems and apply them to their fields.
Learn more at [link]
From Personal Computing to HPC
2-day course
From Personal Computing to HPC A Practical Guide is a short course designed for researchers, students, and professionals experienced in personal computing (e.g., laptops or platforms like Google Colab) who are new to High-Performance Computing (HPC). Over 1–2 days, participants will explore the key differences between personal and HPC environments, learn how to adapt workflows for HPC, and gain practical experience in accessing and managing tasks on an HPC platform. By the end of the course, attendees will be equipped with the knowledge and skills to confidently migrate and optimize their computational workflows for HPC systems.
Learn more at [link]
Introduction to Parallel Computing
Parallel computing is a foundation of modern high-performance computing, enabling the execution of complex computations by dividing tasks across multiple processors. This two-day course provides a comprehensive introduction to parallel computing, covering both shared and distributed memory paradigms. Participants will explore the fundamental principles of parallelism, learn programming models such as OpenMP and MPI, and gain hands-on experience in designing parallel applications. Whether you’re a beginner or looking to broaden your understanding of parallel computing, this course will equip you with the tools and techniques to harness the power of multi-core and distributed systems effectively.
Learn more at [link]
Introduction to OpenMP Programming
OpenMP (Open Multi-Processing) is a widely-used API for shared memory parallel programming, enabling developers to write efficient and scalable parallel applications for multi-core processors. This course is designed to introduce the fundamentals of OpenMP programming, providing skills to leverage shared memory architectures effectively. Through a combination of theoretical sessions and hands-on exercises, participants will learn how to parallelize their applications using OpenMP directives, work-sharing constructs, synchronization mechanisms, and performance optimization techniques. Whether you are new to parallel programming or looking to enhance your expertise, this course offers a comprehensive introduction to OpenMP for shared memory systems.
Learn more at [link]
Introduction to MPI Programming
The Message Passing Interface (MPI) is a powerful standard for parallel programming, enabling developers to write scalable and efficient applications for distributed-memory systems. This two-day course is designed to introduce participants to the fundamentals of MPI programming, equipping them with the knowledge and practical skills needed to develop parallel applications. Through interactive sessions, hands-on exercises, and real-world examples, participants will gain a solid foundation in MPI concepts, syntax, and implementation techniques. Whether you are new to parallel programming or looking to enhance your skills, this course will provide the essential tools to harness the power of MPI for high-performance computing.
Learn more at [link]