Specialist Workshops in Scientific Computing - SWSC2016

This series of workshops features seminars on important HPC topics, introduced by experts in the field. Fundamental topics, such as multithreading and multiprocessing, Message Passing Interface (MPI), should feature in every edition. This can be complemented with other, more specialist topics related to particular hardware, such as GPU programming and “Big Data”-related paradigms (e.g. Google MapReduce and Hadoop), scientific program languages (e.g. Fortran), or applications specific to certain research fields.

These workshops are organized in collaboration with the Flemish Supercomputing Center (VSC), all Flemish Universities and their Doctoral Schools.

Program

    Every edition of SWSC spans several 1- or 2-day workshops, starting at 9:00 and lasting until 17:00, with sandwich lunches at the workshop locations. The different workshops are not intended to be back-to-back and are instead spread out in time, to maximize possibility for attendance.

    Scheduled workshops in 2016:

    Spring

    Venue: Multimediaroom, building S9, Campus De Sterre, Krijgslaan 281, 9000 Gent

    Fall

    Venue: Oude Infirmerie, het Pand, Onderbergen 1, 9000 Gent

    Venue: Multimediaroom, building S9, Campus De Sterre, Krijgslaan 281, 9000 Gent

    Venue: Multimediaroom, building S9, Campus De Sterre, Krijgslaan 281, 9000 Gent

      Course Material

      • Lecture notes, additional reading and other teaching material will be distributed to all participants
      • Participants are invited to bring their own laptop computer for the hands-on sessions during each of the workshops

      Target audience

      The series of Specialist Workshops in Scientific Computing is especially targeting PhD students. Postdocs, staff members or non-academic interested parties can also participate depending on availability. Priority will be given to PhD students.

      Subscription

      Subscription is free of charge.

      All participants to a session will receive a certificate of attendance upon request.

      The Spring and the Fall session can count as separate specialist courses in the Doctoral School curriculum: for the Spring session PhD students should attend at least three entire days; for the Fall session PhD students should attend all three days.

      MPI (20 April 2016)

      The Message Passing Interface (MPI) is a standardized library specification for message passing between different processes. In layman's terms: MPI provides mechanisms for handling the data communication in a parallel program. It is particularly suited for computational clusters, where the workstations are connected by an interconnection network (e.g. Infiniband, Gigabit Ethernet).
      In this workshop, the applicability of MPI will be compared to other parallel programming paradigms such as OpenMP, Cuda and MapReduce. Next, the basic principles of MPI will be gradually introduced (Point-to-point communication, collective communication, MPI datatypes, etc). Hands-on exercises allow the participants to immediately turn the newly acquired skills into practice. Finally, some more theoretical considerations regarding scalability of algorithms are presented.

      About the lecturer: Dr. Jan Fostier. Jan received his MS and PhD degree in physical engineering from Ghent University in 2005 and 2009 respectively. Currently, he is appointed assistant professor in the department of Information Technology (INTEC) at the same university. His main research interests are (parallel) algorithms for biological sciences, high performance computing and computational electromagnetics.

      Course prerequisites

      Participants should be able to work on the Unix/Linux command line, have a minimal level of programming skills (Fortran or C), and have a general understanding of computer architecture.

      Register now

      OpenFOAM (3-4 May 2016)

      OpenFOAM is an open source software package for Computational Fluid Dynamics (CFD). In this 2-day workshop, Prof. Jasak will first introduce the OpenFOAM package, the basic machinery behind the software and how to go about running typical OpenFOAM jobs. On the second day, more advanced topics will be covered based on the expectations and feedback of the participants.

      Day one 3/05/2016 09h00-18h00

      • Overview of OpenFOAM + OpenFOAM as a CFD solver
        • mesh generation; conversion and set-up: importing Fluent and STAR-CD cases
        • material properties; initial and boundary conditions
        • running the solver; including massively parallel computations
        • data analysis; sampling; graphing and post-processing
      • Basic running: NACA Wing
        • case layout; location of controls; main files; dictionary format; running multiple executables together
        • convert the mesh from Fluent format
        • look at constant/polyMesh/boundary: set wall patch type
        • set material properties: viscosity; turbulence model
        • go to 0 directory: set initial and boundary conditions
        • run checkMesh and analyse mesh quality
        • run potentialFoam; look at solution
        • run simpleFoam; look at results
        • run foamLog: create convergence graphs
        • run yPlusRAS
        • run wallShearStress
        • run simpleFoamResidual and look at data
        • activate first function object: forces
      • 3D Ahmed Body
        • Generate mesh using snappy
        • check mesh: WRONG SIZE
        • transformPoints -scale (0.001 0.001 0.001)
        • turbulence model; transport properties; initial field
        • run simulation; plot residual
        • change discretisation: laplacian and turbulence
        • change linear solver: AMG
        • add pressure sampling point
        • add minMaxField function object on the fly
        • foamToVTK
        • sampleSurface: calculate iso-surface of k in VTK format
        • parallel decomposition, file layout and decomposition visualisation tools
        • how to run the solver in parallel. Basics of parallel operation of the solver
        • comparison of convergence and performance
        • data reconstruction and visualisation after a parallel run

      Day two 4/05/2016 09h00-18h00

      • Theoretical aspects of OpenFOAM
        • turbulence models; discretisation; material properties; initial and boundary conditions
        • Background on Finite Volume Discretisation and polyhedral mesh support; convection and diffusion schemes, initial and boundary conditions;
        • Linear equation solver technology in OpenFOAM;
        • Material properties interface: equation of state models, physical properties of liquids and gasses;
        • Turbulence modelling capabilities of OpenFOAM: LES and RANS modelling, near-wall treatment and turbulence inlet boundary conditions;
      • Applications: choice by the attendees
      • Applications: OpenFOAM for commercial CFD users
        • Transition for Fluent, CFX and Star users: mesh import, solver settings; performance and accuracy guidelines
        • Discretisation: Best Practice Guidelines: comparison with commercial CFD solver settings.
      • Programming

      About the lecturer: Prof. Hrvoje Jasak. Hrvoje graduated from the University of Zagreb in 1992. He then went on to complete his PhD entitled "Adaptive Mesh Refinement using OpenFOAM" at Imperial College London. He currently is professor at Zagreb University in the faculty of Mechanical Engineering and Naval Architecture.

      Hrvoje is one of the principal developers of OpenFOAM. In addition, he has done senior-level development work for CD-adapco, has been a consultant to Fluent Inc. and is founder of Wikki Ltd. specializing in Computational Fluid Dynamics.

      Course prerequisites

      Participants should have basic computer management skills and be able to work on the Unix/Linux command line.

      Participants should have a vsc id in order to take part in the hands-on.

      Register now

      Introduction to multithreading and OpenMP (26-27 May 2016)

      This workshop gives an introduction to shared-memory parallel programming and optimization on modern multicore systems, focusing on OpenMP. This is the dominant shared-memory programming model in computational science. Parallelism, multicore architecture and the most important shared-memory programming models are discussed. These topics are then applied in the hands-on exercises.

      About the lecturer: Dr. Reinhold Bader. Reinhold studied physics and mathematics at the Ludwigs-Maximilians University in Munich, completing his studies with a PhD in theoretical solid-state physics in 1998. Since the beginning of 1999, he has worked at Leibniz Supercomputing Centre (LRZ) as a member of the scientific staff, being involved in HPC user support, procurements of new systems, benchmarking of prototypes in the context of the PRACE project, courses for parallel programming, and configuration management for the HPC systems deployed at LRZ. He is currently group leader of the HPC services group at LRZ, which is responsible for operation of all HPC-related systems and system software packages at LRZ.

      Course prerequisites

      Participants should be able to work on the Unix/Linux command line, have a minimal level of programming skills (Fortran or C), and have a general understanding of computer architecture.

      Register now

      Introduction to Fortran (3-5 October 2016)

      Despite its age, Fortran is still a relevant programming language and is ubiquitously used throughout (computational) science. (See e.g. this excellent article in arstechnica.)

      The objective of this introductory-level course is to enable users to modify existing (legacy) code and get started writing their own Fortran programs.

      About the lecturer: Dr. Reinhold Bader. Reinhold studied physics and mathematics at the Ludwigs-Maximilians University in Munich, completing his studies with a PhD in theoretical solid-state physics in 1998. Since the beginning of 1999, he has worked at Leibniz Supercomputing Centre (LRZ) as a member of the scientific staff, being involved in HPC user support, procurements of new systems, benchmarking of prototypes in the context of the PRACE project, courses for parallel programming, and configuration management for the HPC systems deployed at LRZ. He is currently group leader of the HPC services group at LRZ, which is responsible for operation of all HPC-related systems and system software packages at LRZ.

      Course prerequisites

      Participants should be able to work on the Unix/Linux command line.

      Register now

      Leveraging Big Data Tools on HPC with HOD (24 October 2016)

      Current-day Big Data applications are very often conducted using widely available computing frameworks such as Hadoop and Spark. These tools usually require a precise setup and/or dedicated hardware, and these technical issues are often a bottleneck for researchers that want to get started quickly.

      To alleviate this burden, HPC-UGent has written hanythingondemand (HOD). This is a set of scripts to start a Hadoop/Spark cluster from within another resource management system (e.g., Torque/PBS). HOD allows traditional users of HPC systems to experiment with Hadoop/Spark or use it as a production setup if there is no dedicated setup available. In addition, HOD can also create HBase databases and IPython notebooks.

      In this 1-day practical course, participants will be shown how to get started with HOD and start their own Hadoop/Spark clusters, workloads and applications.

      About the lecturer: Dr. Kenneth Hoste. Kenneth studied computer science at Ghent University, completing his PhD in 2010 with a dissertation entitled "Analysis, Estimation and Optimization of Computer System Performance Using Machine Learning". Since October 2010, he is a member of the HPC-UGent team at the ICT department of Ghent University.

      Course prerequisites

      Participants should be able to work on the Unix/Linux command line.

      Register now

       

      Scaling your data analysis in Python with Pandas and Dask (21 November 2016)

      The growing Python data science ecosystem, including the foundational packages Numpy and Pandas, provides powerful tools for data analysis that are widely used in a variety of applications. Typically, these libraries were designed for data that fits in memory and for computations that run on a single core.

      Dask is a Python library for parallel and distributed computing, using blocked algorithms and task scheduling. By leveraging the existing Python data ecosystem, Dask enables to compute on arrays and dataframes that are larger than memory, while exploiting parallelism or distributed computing power, but in a familiar interface (mirroring Numpy arrays and Pandas dataframes).

      This 1-day workshop will first give an introduction to the Python data tools, with an emphasis on Pandas, and then show with hands-on examples how those analyses can be scaled with Dask.

      About the lecturer: Dr. ir. Joris Van den Bossche. Joris did a PhD at Ghent University and VITO in air quality research. In addition, he is also a core developer of Pandas, the main data analysis library in Python. Currently, he is a part-time postdoc at the VUB and part-time contractor for Continuum Analytics.

      Course prerequisites

      Participants should be able to work on the Unix/Linux command line, and should have basic knowledge of the Python programming language.

      Register now

       

      Contact Information

      Don't hesitate to contact with any questions.

      Alternatively consult your local VSC contact.

       

      Supported by the Flemish GovernmentLogoVIA