Learning Outcomes ================= .. note:: 1. Demonstrate proficiency in essential UNIX command-line tools and version control systems such as SSH, SCP, Git, and text editors, to interact with and manage remote HPC systems effectively. 2. Explain the fundamental architecture and components of HPC systems, including login nodes, compute nodes, schedulers, and clusters, and how they are used in scientific research. 3. Use job schedulers to submit, manage, and monitor computational tasks on HPC clusters using both batch and interactive modes. 4. Employ environment modules and variables to manage software dependencies and control program behavior on HPC platforms. 5. Transfer files between local systems and HPC clusters securely and efficiently using command-line tools. 6. Run parallel programs using different levels of parallelism, including multicore CPU execution and GPU-accelerated computing with tools like Python and Numba. 7. Develop and execute single-node and GPU-based parallel applications using Jupyter notebooks and Python libraries to explore the performance and limitations of parallel execution. 8. Identify real-world applications and research use cases of HPC, understanding how HPC can be used to accelerate discovery across domains like science, engineering, and data analysis