Code Monkey home page Code Monkey logo

gjbex / training-material Goto Github PK

View Code? Open in Web Editor NEW
120.0 19.0 52.0 188.37 MB

A collection of code examples as well as presentations for training purposes

Home Page: http://gjbex.github.io/training-material/

License: Creative Commons Attribution 4.0 International

Fortran 1.15% Makefile 0.33% C 0.97% Shell 0.27% Python 1.66% C++ 0.83% R 0.01% HTML 1.24% JavaScript 0.01% CSS 0.07% Java 0.08% MATLAB 0.01% Jupyter Notebook 93.31% M4 0.01% Gnuplot 0.01% Cuda 0.02% Standard ML 0.01% GDB 0.01% CMake 0.03% SWIG 0.01%
training-materials python fortran c c-plus-plus hpc visualization linux-tools openmp mpi virtualization math optimization debugging cpp profiling gpu sql hdf5 netcdf4

training-material's Introduction

Training material

A collection of code examples for training purposes, mostly in the context of data processing and parallel programming.

This material is made available as is, i.e., anyone is welcome to use it, and to contribute. However, no support is guaranteed in any form. All material is subject to the license included in this repository.

Tips and tricks can be found on this repository's website but also in a cheat sheet repository.

An overview of all off-the-shelf training sessions is also available online.

DOI

What is it?

Accelerators

Accelerators: some sample code and information on using accelerators.

C

C: presentation based "The C programming language" by Kernighan and Ritchie, as well as sample code to illustration the concepts.

C++

CPlusPlus: presentation based on "A tour of C++" by Stroustrup, as well as sample code to illustrate the concepts. This part of the repository is considered obsolete and has been replaced by another repository for a C++ for scientific programming training. See

Data storage

DataStorage: sample code showing how to read/write HDF5 and NetCDF files from C, Fortran, and Python. HDF5 can be used for parallel I/O, C sample code is provided. The HDF5 material is part of a tutorial on that subject. Sample code on how to interact with a redis data structure server is also provided, illustrating the hiredis C API. Sample SQL covers the basics of querying relational databases

Debugging

Debugging: slides used for an info session on debugging tools and techniques, as well as sample code. This part of the repository is supplemented by the following repository:

Fortran

Fortran: presentation on "Modern Fortran" as well sample code intended to illustrate Fortran 95, 2003, and 2008 features. This section of the repository has been superceeded by two other repositories:

Java

Java: sample code mostly for demonstration purposes.

Linux Tools

LinuxTools: some illustrations of using Linux tools such as the M4macro processor, make files and autotools, as well as slides on version control using svn and git.

Mathematics

Math: sample code for using various mathematical libraries.

Miscellaneous

Misc: catch-all for one-time presentations, or special sessions.

MPI

Mpi: illustration of distributed programming using the Message Passing Interface API.

OpenMP

OpenMP: sample code for OpenMP.

Optimization

Optimization: illustrations of performance optimization opportunities. This section of the repository has been superceeded by a training repository on code optimization.

PBS

PBS: sample PBS torque batch scripts to illustrate features.

Python

Python: sample code to explore various Python features, standard library packages and third party libraries. Most of this material is used in a tutorial on using Python for scientific data processing. This part of the repository has in large part been superceeded by various training repositories dedicated to specific Python-related topics.

R

R: some very simple illustrations of how to run R scripts from the command line, and to submit as (PBS) jobs

Virtualization

Virtualization: Information on how to use Singularity. This part of the repository has been superceeded by a training repository on using containers for HPC.

Visualization

Visualization: data files, XDMF files and ParaView state files to use during a demo of scientific visualization with ParaView.

Contributors

  • Geert Jan Bex ([email protected]), Hasselt University/University of Leuven
  • Stefan Becuwe, University of Antwerp
    • suggestions for and correction of typos in Python presentation
    • suggestions for Python programming exercises
  • Guillaume Jacquenot
    • Python 3 version of XDMF generating scripts
    • correcting typos in various README
    • suggesting hyperlinking the README files, and providing a Python script for it
  • Arnout Standaert, VITO
    • update of deprecated Pandas API
    • suggestions on Python OOP presentation section
  • Yana Maneva, KU Leuven
    • suggestions on online C++ training material references

You are very welcome to contribute, please read some guidelines before you do.

training-material's People

Contributors

gjacquenot avatar gjbex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

training-material's Issues

Top-level README out of date

The project's README is out of date since it doesn't reflect that Hdf5, NetCDF and Sql have been demoted from top-level into DataFormats directory.

PyTables & hyperslabs

Create some example code for working with hyperslabs from PyTables (if possible).

Create Biopython slides

Having a stack of slides on Biopython would be useful. Proposed subjects:

  • sequences: reading/writing, computing properties, slicing,...
  • sequence annotations
  • sequence alignment
  • phylogenetic trees
  • searching online databases

Add mild dose of OO to Fortran slides

Although the slides introduces user defined bypes, procedures and modules, classes, and hence OO is not mentioned. A brief, high-level introduction could be helpful.

Cython & OpenMP

Add slides (and supporting material) to HPC Python slide deck to illustrate how to use OpenMP from Cython code for multithreading.

SWIG feature check

  • Check exception handling of SWIG wrapped C++ classes & Python
  • Check class inheritance from SWIG wrapped classes

GDB core analysis

A slide on post-mortem debugging with GDB should be added to the slides on debugging, as well as an example to illustrate.

Remove Cython slide deck

The slide deck on Cython has been merged into the Python HPC slide deck, and hence should be removed from the repository to avoid inconsistencies.

Typo in tbb.pptx

On slide 17, in tbb::parallel_for, we read a typo:std::blocked_range. This should become tbb::blocked_range.

Add material on false sharing

Since false sharing is potentially a major performance issue, some material should be added on this subject to the presentation on performance issues, and some sample code written to quantify the impact.

strace

A section on using strace should be added to the slides on debugging.

Dangling pointers

The ndtree code doesn't set pointers to NULL after freeing, resulting in dangling pointers.

Add f2py OpenMP example

Using OpenMP Fortran code and f2py is an efficient way to introduce multithreading in Python applications. An example in the Python HPC presentation would be nice.

Extend Python HDF5 slides

Add an example of reading HDF5 files with PyTables to the HDF5 section of the Python intro slides.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.