Part I Courses Syllabus



Similar documents
HPC Wales Skills Academy Course Catalogue 2015

Building an energy dashboard. Energy measurement and visualization in current HPC systems

Integrated Communication Systems

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o

HIGH PERFORMANCE CONSULTING COURSE OFFERINGS

The Top Six Advantages of CUDA-Ready Clusters. Ian Lumb Bright Evangelist

Program Grid and HPC5+ workshop

for my computation? Stefano Cozzini Which infrastructure Which infrastructure Democrito and SISSA/eLAB - Trieste

Parallel Computing: Strategies and Implications. Dori Exterman CTO IncrediBuild.

Performance Analysis for GPU Accelerated Applications

How To Develop Software

Accelerating Simulation & Analysis with Hybrid GPU Parallelization and Cloud Computing

Overview of HPC Resources at Vanderbilt

GPU for Scientific Computing. -Ali Saleh

Using WestGrid. Patrick Mann, Manager, Technical Operations Jan.15, 2014

MEng, BSc Applied Computer Science

Debugging in Heterogeneous Environments with TotalView. ECMWF HPC Workshop 30 th October 2014

Introduction to GPU Programming Languages

Big Data and Cloud Computing for GHRSST

MAQAO Performance Analysis and Optimization Tool

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff

D5.6 Prototype demonstration of performance monitoring tools on a system with multiple ARM boards Version 1.0

Automating Big Data Benchmarking for Different Architectures with ALOJA

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Parallel Computing for Data Science

:Introducing Star-P. The Open Platform for Parallel Application Development. Yoel Jacobsen E&M Computing LTD

So#ware Tools and Techniques for HPC, Clouds, and Server- Class SoCs Ron Brightwell

HPC performance applications on Virtual Clusters

HPC enabling of OpenFOAM R for CFD applications

HPC with Multicore and GPUs

Cluster, Grid, Cloud Concepts

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

MEng, BSc Computer Science with Artificial Intelligence

PRIMERGY server-based High Performance Computing solutions

Parallel Programming Survey

Retour d expérience : portage d une application haute-performance vers un langage de haut niveau

Overview of HPC systems and software available within

Data Centric Systems (DCS)

Agenda. HPC Software Stack. HPC Post-Processing Visualization. Case Study National Scientific Center. European HPC Benchmark Center Montpellier PSSC

Building Platform as a Service for Scientific Applications

Introduction to grid technologies, parallel and cloud computing. Alaa Osama Allam Saida Saad Mohamed Mohamed Ibrahim Gaber

Case Study on Productivity and Performance of GPGPUs

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

Implement Hadoop jobs to extract business value from large and varied data sets

Evaluation of CUDA Fortran for the CFD code Strukti

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

MapReduce on GPUs. Amit Sabne, Ahmad Mujahid Mohammed Razip, Kun Xu

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Xeon+FPGA Platform for the Data Center

locuz.com HPC App Portal V2.0 DATASHEET

BSC vision on Big Data and extreme scale computing

Performance Evaluation of NAS Parallel Benchmarks on Intel Xeon Phi

Introduction to ACENET Accelerating Discovery with Computational Research May, 2015

Improved metrics collection and correlation for the CERN cloud storage test framework

A general-purpose virtualization service for HPC on cloud computing: an application to GPUs

Spring 2011 Prof. Hyesoon Kim

CNR-INFM DEMOCRITOS and SISSA elab Trieste

End-user Tools for Application Performance Analysis Using Hardware Counters

Recent and Future Activities in HPC and Scientific Data Management Siegfried Benkner

Multi-Threading Performance on Commodity Multi-Core Processors

Hands-on CUDA exercises

Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

Automated Performance Testing of Desktop Applications

High Performance Computing. Course Notes HPC Fundamentals

Data Center and Cloud Computing Market Landscape and Challenges

Masters in Human Computer Interaction

Masters in Advanced Computer Science

The Fastest Way to Parallel Programming for Multicore, Clusters, Supercomputers and the Cloud.

Berkeley Research Computing. Town Hall Meeting Savio Overview

CRIBI. Calcolo Scientifico e Bioinformatica oggi Università di Padova 13 gennaio 2012

SLURM Workload Manager

Masters in Artificial Intelligence

Write a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical

COURSE CONTENT Big Data and Hadoop Training

HPC ABDS: The Case for an Integrating Apache Big Data Stack

Le langage OCaml et la programmation des GPU

MIKE by DHI 2014 e sviluppi futuri

On-Demand Supercomputing Multiplies the Possibilities

OPERATING SYSTEM SERVICES

Amazon EC2 Product Details Page 1 of 5

DIABLO VALLEY COLLEGE CATALOG

1 Bull, 2011 Bull Extreme Computing

On Demand Satellite Image Processing

Debugging and Profiling Lab. Carlos Rosales, Kent Milfeld and Yaakoub Y. El Kharma

RWTH GPU Cluster. Sandra Wienke November Rechen- und Kommunikationszentrum (RZ) Fotos: Christian Iwainsky

BIG CPU, BIG DATA. Solving the World s Toughest Computational Problems with Parallel Computing. Alan Kaminsky

ST810 Advanced Computing

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

School of Computer Science

Next Generation GPU Architecture Code-named Fermi

HPC Programming Framework Research Team

Software Development around a Millisecond

Denis Caromel, CEO Ac.veEon. Orchestrate and Accelerate Applica.ons. Open Source Cloud Solu.ons Hybrid Cloud: Private with Burst Capacity

An Introduction to Service Containers

E6895 Advanced Big Data Analytics Lecture 14:! NVIDIA GPU Examples and GPU on ios devices

Unified Performance Data Collection with Score-P

Silviu Panica, Marian Neagul, Daniela Zaharie and Dana Petcu (Romania)

Transcription:

Part I Courses Syllabus This document provides detailed information about the basic courses of the MHPC first part activities. The list of courses is the following 1.1 Scientific Programming Environment 1.2 Introduction to Computer Architectures for HPC 1.3 Object Oriented Programming 1.4 Parallel Programming 1.5 Introduction to Numerical Analysis 1.6 Advanced Computer Architectures and Optimizations 1.7 Parallel Data Management and Data Exchange 1.8 High Performance Computing Technology 1.9 Best Practices in Scientific Computing For each course we provide the names of coordinators (one or two) who are responsible for the course and its assignments its laboratories and all the related activities. More information, including slides, training materials, exercises, examples etc. are available on the Moodle platform of the MHPC: elearn.mhpc.it Trieste, February 2014

Module 1.1: Scientific Programming Environment Stefano Cozzini (CNR/IOM) This course will introduce to Unix- like operating systems, show how to setup the correct scientific programming environment in such operating systems. It will present the modern software tools required to provide such an environment and discuss important points like documentation and testing. Main Topics Introduction to Unix- like operating systems (kernel vs. userspace, processes/threads, file system semantics) Shell scripting (bourne shell) Advanced portable scripting (e.g. python) Compiler architecture (preprocessor, compiler, assembler, linker) and use of libraries Configuring, compiling, linking software packages (including use of make) Source code management (git, mercurial) Basic of Visualization tools Unit and regression testing Software documentation On successful completion of this module students should have their own software environment and tools prepared and configured for the rest of the activities of the Master Program. Students learn the workflows of software development and working collaboratively. These concepts are the basis on which to develop efficient scientific code for high- performance computing applications.

Module 1.2: Introduction to Computer Architectures for HPC Ivan Girotto (ICTP) Introduction to key topics in computer architecture needed in HPC environment including a detailed overview on parallel architectures. Main Topics Computer architecture Memory hierarchy Modern multi- core CPU systems Overview on massively parallel processors Parallel architectures for HPC and further trends Basic principle of storage Debugging and profiling of a serial applications False sharing and memory efficiency on Multi- core systems Practical introduction to software optimization On successful completion of this module students should be able to understand basic concepts of modern computer architecture, and know the different kinds of parallel architectures commonly applied to scientific research.

Module 1.3: Object Oriented Programming Axel Kohlmeyer (ICTP) Introduction to fundamental concepts of programming from an object- oriented perspective. Main Topics Classes and objects Abstraction Encapsulation Data types Calling methods and passing parameters Testing and debugging Exceptions Design issues Inheritance Polymorphic variables and methods On successful completion of this module students should be able to understand modern software engineering and design principles and should develop fundamental programming skills in the context of a language that supports the object- oriented paradigm.

Module 1.4: Parallel Programming Ivan Girotto (ICTP) Introduction to key topics in parallel programming. Main parallel programming paradigms: message passing (MPI) and multi- threading (OpenMP/OpenCL). Main Topics Introduction to parallel computing Principles of parallel algorithm design and multi- level parallelism Message- passing parallelization (MPI) Shared memory parallelization (OpenMP) Analysis of scalability and parallel performance metrics Overview to the debugging and the profiling of parallel applications Introduction to the programming of massively parallel processors: OpenCL Practical introduction to parallel Math libraries Further trends of parallel programming in HPC On successful completion of this module students should be able to write parallel programs and know fundamental techniques of parallel programming to develop parallel applications along with methods of parallel performance analysis and debugging.

Module 1.5: Main Topics Introduction to Numerical Analysis Luca Heltai (SISSA) Gianluigi Rozza (SISSA) Introduction to numerical analysis, with focus on linear algebra, polynomial approximation, numerical integration and numerical solution of ODEs The foundations of numerical analysis Polynomial Interpolation Numerical Integration Resolution of non- linear systems Resolution of large linear systems Eigenvalues approximation Numerical solution of ODEs Numerical solution of PDEs On successful completion of this module students should be able to understand and implement in computer program numerical integration, numerical derivation, functional interpolation and basic linear algebra operations.

Module 1.6: Advanced Computer Architectures & Optimizations Module Description Stefano Cozzini (CNR) The course presents advanced topics in optimization techniques needed in HPC environment. In particular it will focus on the use of application accelerators in high- performance and scientific computing and issues that surround it. Main Topics Compiler technology for HPC Advance optimization techniques Memory management and optimizations Profiling with performance counters (PAPI), optimizing for memory access (devices, CPU) Introduction to novel accelerator processors, systems, and architectures Introduction to GPU computing Overview of accelerated architecture Programming interfaces for accelerator o CUDA o OpenCL o OpenACC Specific libraries with accelerator support On successful completion of this module, students will have an overview of the advanced computational architectures and accelerators and how to use them.

Module 1.7: Parallel Data Management & Data Exchange Stefano Cozzini (CNR) The module introduces modern techniques to deal with the large amount of data in scientific and technical computing. Main Topics Introduction to Big data issues Parallel file systems and parallel I/O Scientific data formats and libraries (NetCDF, HDF5) MPI- IO Data intensive computing (distributed file systems and MapReduce) Web interface and protocols for data exchange (i.e. opendap) Workflows for data processing Benchmarking and profiling data intensive calculation On successful completion of this module students have an overview of the main techniques and tools to tackle data- intensive computational problems.

Module 1.8: High Performance Computing Technology Moreno Baricevic (CNR/IOM) This module introduces state- of- the- art technologies and innovation in High Performance Computing. Main components of computing infrastructure are analyzed and discussed. Students will install and configure a HPC Linux Cluster and will also be exposed to the use of Cloud and Grid Infrastructures. Main Topics HPC system deployment Software Provisioning (modules) Managing hardware diversity Scheduling and resource management Usage accounting Data management (quotas, purging, archival) Sustainable HPC computing infrastructure Green computing Grid and Cloud Computing On successful completion of this module students should be able to understand common problems related to the installation and maintenance of a sustainable HPC infrastructure.

Module 1.9: Best Practice in Scientific Computing Axel Kohlmeyer (ICTP) A module where students are introduced to best practices in scientific computing from different perspective: software development with modern software engineering techniques, optimal exploitation of different HPC platforms, usage and maintenance of large scientific software packages. Main Topics Debug versus optimized mode Multilanguage programming Strategies for developing scientific codes Collaborative ways of developing scientific and technical packages. Tools for developing large software packages On successful completion of this module students should have a clear idea about the most successful practices that can be adopted in developing technical and scientific software and make them run efficiently on modern HPC platform.