{"id":2835,"date":"2021-02-04T13:00:17","date_gmt":"2021-02-04T12:00:17","guid":{"rendered":"https:\/\/blog.rwth-aachen.de\/itc-events\/?post_type=tribe_events&#038;p=2835"},"modified":"2021-11-30T09:33:54","modified_gmt":"2021-11-30T08:33:54","slug":"ppces-2021","status":"publish","type":"tribe_events","link":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/event\/ppces-2021\/","title":{"rendered":"PPCES 2021"},"content":{"rendered":"<p><\/p>\n<h3>About PPCES<\/h3>\n<p>This one week online event will continue the tradition of <a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/ppces\/\">previous annual week-long events<\/a> that take place in Aachen every spring since 2001. We will cover the basics of parallel programming using OpenMP and MPI in Fortran and C\/C++ and a first step towards performance tuning as well as current topics in AI\/machine learning. Hands-on exercises for each topic will be included.<\/p>\n<p>The contents of the courses are generally applicable but will be specialized towards CLAIX the compute cluster which is the current system installed at the RWTH&#8217;s IT Center. It might be helpful to read through the information which was provided during the <a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/event\/introduction-to-high-performance-computing-2021\/\">HPC introduction<\/a> on March 12 this year. <span class=\"tlid-translation translation\" lang=\"en\"><span title=\"\">This is especially true if you want to actively use CLAIX after this event.<\/span><\/span><\/p>\n<p><strong>OpenMP<\/strong> is a widely used approach for programming shared memory architectures, supported by most compilers nowadays. We will cover the basics of the programming paradigm as well as some advanced topics such as programming NUMA machines. The nodes of the RWTH Compute Cluster contain an increasing number of cores and thus we consider shared memory programming a vital alternative for applications that cannot be easily parallelized with MPI. We also expect a growing number of application codes to combine MPI and OpenMP for clusters of nodes with a growing number of cores.<\/p>\n<p><strong>The Message Passing Interface (MPI)<\/strong> is the de-facto standard for programming large HPC systems. We will introduce the basic concepts and give an overview of some advanced features. Also covered is hybrid parallelization, i.e., the combination of MPI and shared memory programming, which is gaining popularity as the number of cores per cluster node grows.<\/p>\n<p><strong>Machine Learning<\/strong>: We provide an overview to end-to-end deep learning with the latest version\u00a0of Tensorflow\/Keras. It covers the basic concepts to define models with Keras \u00a0and data pipelines with Tensorflow&#8217;s &#8220;Dataset&#8221;, and to visualize the results\u00a0with Tensorboard while training. If training on one node or GPU is not enough, \u00a0we show how to scale up\/out distributed training onto multiple compute nodes \u00a0and GPUs with Horovod.\u00a0Furthermore, we provide an introduction to scikit-learn, with an overview of \u00a0different machine learning algorithms it provides and how to utilize it on GPUs \u00a0with H2O4GPU.\u00a0The training courses consist of a hands-on exercises to be run directly on \u00a0RWTH infrastructure.<\/p>\n<h3>Guest Speakers<\/h3>\n<p>We are very happy to present two guest speakers:<\/p>\n<ul>\n<li><strong>Ruud van der Pas<\/strong> (<a class=\"external-link\" href=\"https:\/\/www.oracle.com\/index.html\" rel=\"nofollow\">Oracle<\/a>) on OpenMP<\/li>\n<li><strong>Georg Zitzlsberge<\/strong>r (<a class=\"external-link\" href=\"http:\/\/www.it4i.cz\" rel=\"nofollow\">IT4Innovations National Supercomputing Center at VSB \u2013 Technical University of Ostrava<\/a>) on Machine Learning<\/li>\n<\/ul>\n<h3>Agenda<\/h3>\n<h4 id=\"PPCES2021-Day1+2:OpenMP\">Day 1+2: <span class=\"confluence-link\">OpenMP<\/span><span class=\"confluence-link\">\u00a0<\/span><\/h4>\n<p><span class=\"confluence-link\">Monday, March 22<\/span><\/p>\n<div class=\"table-wrap\">\n<table class=\"confluenceTable tablesorter\" style=\"height: 189px;\" width=\"684\">\n<thead>\n<tr class=\"sortableHeader\">\n<th class=\"confluenceTh sortableHeader\" data-column=\"0\">\n<div class=\"tablesorter-header-inner\">\n<p style=\"text-align: left;\"><span class=\"confluence-link\">Monday, March 22<\/span><\/p>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"1\">\n<div class=\"tablesorter-header-inner\" style=\"text-align: left;\"><span class=\"confluence-link\">Day 1: OpenMP Part I <\/span><\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" colspan=\"1\" data-column=\"2\">\n<div class=\"tablesorter-header-inner\"><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\" colspan=\"1\"><span class=\"confluence-link\">09:00 &#8211; 10:30<\/span><\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><span class=\"confluence-link\">OpenMP Basics part 1 <\/span><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">11:00 &#8211; 12:00<\/span><\/td>\n<td class=\"confluenceTd\"><span class=\"confluence-link\"> OpenMP Basics part 2 (incl. Lab)<\/span><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">14:00 &#8211; 15:30 <\/span><\/td>\n<td class=\"confluenceTd\"><span class=\"confluence-link\"> OpenMP Basics part 3 (incl. L<\/span>ab)<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">16:00 &#8211; 17:00 <\/span><\/td>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">OpenMP Basics part 4 (incl. Lab<\/span>)<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"table-wrap\">\n<table class=\"confluenceTable tablesorter\" style=\"height: 197px;\" width=\"685\">\n<thead>\n<tr class=\"sortableHeader\">\n<th class=\"confluenceTh sortableHeader\" data-column=\"0\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-Tuesday,March23\" style=\"text-align: left;\"><span class=\"confluence-link\">Tuesday, March 23<\/span><\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"1\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-Day2:OpenMPPartII\" style=\"text-align: left;\">Day 2: OpenMP Part II<\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" colspan=\"1\" data-column=\"2\">\n<div class=\"tablesorter-header-inner\"><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">09:00 &#8211; 10:30<\/span><\/td>\n<td class=\"confluenceTd\">Getting OpenMP up to speed<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Ruud van der Pas<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">11:00 &#8211; 12:00<\/span><\/td>\n<td class=\"confluenceTd\">OpenMP SIMD<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Tim Cramer<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">14:00 &#8211; 15:30 <\/span><\/td>\n<td class=\"confluenceTd\">OpenMP Advanced Tasking (incl. Lab)<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">16:00 &#8211; 17:00 <\/span><\/td>\n<td class=\"confluenceTd\">OpenMP for Accelerators<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Christian Terboven<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4 id=\"PPCES2021-Day3+4:MPI\">Day 3+4: MPI<span class=\"confluence-link\"><br \/>\n<\/span><\/h4>\n<div class=\"table-wrap\">\n<table class=\"confluenceTable tablesorter\" style=\"height: 199px;\" width=\"728\">\n<thead>\n<tr class=\"sortableHeader\">\n<th class=\"confluenceTh sortableHeader\" data-column=\"0\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-WednesdayMarch24\"><span class=\"confluence-link\">Wednesday March 24<\/span><\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"1\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-Day3:MPIPartI\">Day 3: MPI Part I<\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"2\">\n<div class=\"tablesorter-header-inner\"><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">09:00 &#8211; 10:30<\/span><\/td>\n<td class=\"confluenceTd\">Introduction to MPI<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">11:00 &#8211; 12:00<\/span><\/td>\n<td class=\"confluenceTd\">Blocking Point-to-Point Communication I<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">14:00 &#8211; 15:30 <\/span><\/td>\n<td class=\"confluenceTd\">Blocking Point-to-Point Communication II<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">16:00 &#8211; 17:00 <\/span><\/td>\n<td class=\"confluenceTd\">Non-blocking Point-to-Point Communication<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"table-wrap\">\n<table class=\"confluenceTable tablesorter\" style=\"height: 201px;\" width=\"730\">\n<thead>\n<tr class=\"sortableHeader\">\n<th class=\"confluenceTh sortableHeader\" data-column=\"0\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-ThursdayMarch25\"><span class=\"confluence-link\">Thursday March 25<\/span><\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"1\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-MPIPartII\">MPI Part II<\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"2\">\n<div class=\"tablesorter-header-inner\"><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">09:00 &#8211; 10:30<\/span><\/td>\n<td class=\"confluenceTd\">Blocking Collective Communication<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">11:00 &#8211; 12:00<\/span><\/td>\n<td class=\"confluenceTd\">Communicator Basics<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">14:00 &#8211; 15:30 <\/span><\/td>\n<td class=\"confluenceTd\">Hybrid Programming<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><span class=\"confluence-link\">16:00 &#8211; 17:00 <\/span><\/td>\n<td class=\"confluenceTd\">Outlook on Advanced Topics &amp; Wrap-Up<\/td>\n<td class=\"confluenceTd\">Marc-Andre Hermanns<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4 id=\"PPCES2021-Day5:MachineLearning\">Day 5: Machine Learning<span class=\"confluence-link\">\u00a0<\/span><\/h4>\n<p><span class=\"confluence-link\">Seminar times will be 9:00-12:00 and 13:00-15:00.<\/span><\/p>\n<p>This event is partially supported by The [Czech] Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project\u00a0 \u201ce-Infrastruktura CZ \u2013 LM2018140\u201d<\/p>\n<div class=\"table-wrap\">\n<table class=\"confluenceTable tablesorter\" style=\"height: 439px;\" width=\"762\">\n<thead>\n<tr class=\"sortableHeader\">\n<th class=\"confluenceTh sortableHeader\" data-column=\"0\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-FridayMarch26\">Friday<span class=\"confluence-link\"> March 26<\/span><\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"1\">\n<div class=\"tablesorter-header-inner\">\n<h4 id=\"PPCES2021-Day5:MachineLearning.1\">Day 5: Machine Learning<\/h4>\n<\/div>\n<\/th>\n<th class=\"confluenceTh sortableHeader\" data-column=\"2\">\n<div class=\"tablesorter-header-inner\"><\/div>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\">09:00 &#8211; 09:45<\/td>\n<td class=\"confluenceTd\">Introduction to scikit-learn<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">09:45 &#8211; 10:00<\/td>\n<td class=\"confluenceTd\">Getting Started on the Cluster<\/td>\n<td class=\"confluenceTd\">Jannis Klinkenberg<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">10:00 &#8211; 10:30<\/td>\n<td class=\"confluenceTd\">Hands-on scikit-learn examples<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">11:00 &#8211; 12:00<\/td>\n<td class=\"confluenceTd\">Introduction to Deep Neural Networks<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">13:00 &#8211; 14:00<\/td>\n<td class=\"confluenceTd\">\n<p lang=\"de\">Tensorflow\/Keras Exercises (short intro + Hands-on exercise)<\/p>\n<ul>\n<li lang=\"de\">Define Data Pipeline with Dataset<\/li>\n<li lang=\"de\">Build a Model<\/li>\n<li lang=\"de\">Train &amp; Visualize with Tensorboard<\/li>\n<\/ul>\n<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">14:00 &#8211; 14:45<\/td>\n<td class=\"confluenceTd\">\n<p lang=\"de\">\u00a0Multi-GPU with Horovod (incl. short Hands-on)<\/p>\n<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">14:45 &#8211; 15:00<\/td>\n<td class=\"confluenceTd\">Q&amp;A<\/td>\n<td class=\"confluenceTd\">Georg Zitzlsberger<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><\/h2>\n<h3>Prerequisites<\/h3>\n<p>Attendees of part I and II should be comfortable with C\/C++ or Fortran programming\u00a0in a Linux environment and interested in learning more about the technical details of application tuning and parallelization.<br \/>\nParticipants of part III &#8211; machine learning &#8211;\u00a0 will need some basic knowledge of Python.<\/p>\n<p>All presentations will be given in <strong>English<\/strong>.<\/p>\n<p>This event will be an <strong>online<\/strong> presentation.<br \/>\nAll all parts of the tutorials will be accompanied by exercises.<\/p>\n<p>Participants who have access to the <strong>RWTH identity management<\/strong> can use their own HPC account.<br \/>\nThose members of RWTH who do not yet have such an account can provide an HPC account here (<a class=\"external-link\" href=\"https:\/\/sso.rwth-aachen.de\/idp\/profile\/SAML2\/Redirect\/SSO?execution=e1s1\" rel=\"nofollow\">https:\/\/sso.rwth-aachen.de\/idp\/profile\/SAML2\/Redirect\/SSO?execution=e1s1<\/a>) using the selfservice (Choose: Accounts und Kennw\u00f6rter &#8211; Account anlegen &#8211; Hochleistungsrechnen)<\/p>\n<p><strong>External participants<\/strong> must provide themselves a Linux environment that contains an OpenMP compiler, a MPI library, or respectively a singularity environment.<br \/>\nFor parts I and II\u00a0 a Linux virtual machine will be sufficient.<\/p>\n<p>For example on Ubuntu 20.04 LTS\u00a0 the following commands can be used to install the necessary software f\u00fcr OpenMP and MPI:<\/p>\n<pre># g++ is\u00a0 available by default\r\nsudo apt install gfortran # install\u00a0 Fortran Compiler - if necessary\r\nsudo apt-get install libomp-dev # install OpenMP libraries\r\nsudo apt install mpich # install MPI library<\/pre>\n<p>Simple program examples can be compiled and executed by<\/p>\n<pre>g++ -fopenmp openmp-hello-world.cc;\u00a0\u00a0 .\/a.out\r\ngfortran -fopenmp openmp-hello-world.f90;\u00a0 .\/a.out\r\nmpicc mpi_hello_world.c -o\u00a0 .\/a.out;\u00a0 mpirun -np 2\u00a0 .\/a.out<\/pre>\n<p>For part III (ML) participants need to run singularity containers with access to one or more NVIDIA GPUs.<\/p>\n<h2>Course Material of PPCES 2021<\/h2>\n<h3>OpenMP<\/h3>\n<h4>Presentations<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/Organization_PPCES2021.pdf\">Organization_PPCES2021<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/00-openmp-CT-welcome.pdf\">00-openmp-CT-welcome<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/01-openmp-CT-overview.pdf\">01-openmp-CT-overview<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/02-openmp-CT-parallel_region.pdf\">02-openmp-CT-parallel_region<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/03-openmp-CT-worksharing.pdf\">03-openmp-CT-worksharing<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/04-openmp-CT-scoping.pdf\">04-openmp-CT-scoping<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/05-openmp-CT-compilers.pdf\">05-openmp-CT-compilers<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/06-openmp-CT-welcome.pdf\">06-openmp-CT-welcome<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/07-openmp-CT-tasking_motivation.pdf\">07-openmp-CT-tasking_motivation<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/08-openmp-CT-tasking_model.pdf\">08-openmp-CT-tasking_model<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/09-openmp-CT-taskloop.pdf\">09-openmp-CT-taskloop<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/10-openmp-CT-tasking_cutoff.pdf\">10-openmp-CT-tasking_cutoff<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/11-openmp-CT-tasking_dependencies.pdf\">11-openmp-CT-tasking_dependencies<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/12-openmp-CT-welcome.pdf\">12-openmp-CT-welcome<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/13-openmp-CT-NUMA.pdf\">13-openmp-CT-NUMA<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/14-openmp-CT-tasking_affinity.pdf\">14-openmp-CT-tasking_affinity<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/15-openmp-CT-hybrid.pdf\">15-openmp-CT-hybrid<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/16-openmp-CT-SIMD.pdf\">16-openmp-CT-SIMD<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/17-openmp-CT-offloading.pdf\">17-openmp-CT-offloading<\/a><\/li>\n<\/ul>\n<h4>Exercises<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/Exercises_OMP_2021.pdf\">Exercises_OMP_2021<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/openmp_exercises.zip\">openmp_exercises.zip<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>MPI<\/h3>\n<h4>Presentations<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-01-MPI-Overview.pdf\">hpc.nrw-01-MPI-Overview<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-02-MPI_Concepts.pdf\">hpc.nrw-02-MPI_Concepts<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-03-Blocking_Point-to-Point_Communication.pdf\">hpc.nrw-03-Blocking_Point-to-Point_Communication<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-04-Non-blocking-Point-to-Point_Communication.pdf\">hpc.nrw-04-Non-blocking-Point-to-Point_Communication<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-05-Derived_Datatypes.pdf\">hpc.nrw-05-Derived_Datatypes<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-06-Blocking_Collective_Communication.pdf\">hpc.nrw-06-Blocking_Collective_Communication<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-08-Hybrid_Programming.pdf\">hpc.nrw-08-Hybrid_Programming<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-09-Communicator_Handling.pdf\">hpc.nrw-09-Communicator_Handling<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/hpc.nrw-XX-Advanced_Topics.pdf\">hpc.nrw-XX-Advanced_Topics<\/a><\/li>\n<\/ul>\n<h4>Exercises<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/ppces2021-MPI-labs-C.zip\">ppces2021-MPI-labs-C.zip<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/ppces2021-MPI-labs-Fortran.zip\">ppces2021-MPI-labs-Fortran.zip<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Machine Learning<\/h3>\n<h4>Presentations<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/00_Agenda.pdf\">00_Agenda<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/01a_Introduction_to_scikit-learn.pdf\">01a_Introduction_to_scikit-learn<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/01b_scikit-learn_Optimizations.pdf\">01b_scikit-learn_Optimizations<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/03_scikit-learn_Hands-On.pdf\">03_scikit-learn_Hands-On<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/04_Introduction_Deep_Neural_Networks.pdf\">04_Introduction_Deep_Neural_Networks<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/05_Tensorflow_Keras.pdf\">05_Tensorflow_Keras<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/06_Multi-GPU_Horovod.pdf\">06_Multi-GPU_Horovod<\/a><\/li>\n<\/ul>\n<h4>Exercises<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/2021-ppces-ML-DL-instructions.pdf\">2021-ppces-ML-DL-instructions<\/a><\/li>\n<li><a href=\"https:\/\/blog.rwth-aachen.de\/itc-events\/files\/2021\/02\/2021-ppces-exercises-ML-DL.zip\">2021-ppces-exercises-ML-DL.zip<\/a><\/li>\n<\/ul>\n<h3 id=\"PPCES2021-FurtherInformation\">Further Information<\/h3>\n<p><span class=\"confluence-link\">The OpenMP part is also available as online tutorial (including videos): <\/span><a class=\"external-link\" href=\"https:\/\/hpc-wiki.info\/hpc\/OpenMP_in_Small_Bites\" rel=\"nofollow\">https:\/\/hpc-wiki.info\/hpc\/OpenMP_in_Small_Bites<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>About PPCES This one week online event will continue the tradition of previous annual week-long events that take place in Aachen every spring since 2001. We will cover the basics [&hellip;]<\/p>\n","protected":false},"author":2856,"featured_media":0,"template":"","meta":{"_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"_tribe_events_status":"","_tribe_events_status_reason":"","footnotes":"","_tec_slr_enabled":"","_tec_slr_layout":""},"tags":[38,27],"tribe_events_cat":[22,55],"class_list":["post-2835","tribe_events","type-tribe_events","status-publish","hentry","tag-hpc","tag-it-center","tribe_events_cat-hpcevents","tribe_events_cat-ppces","cat_hpcevents","cat_ppces"],"ticketed":false,"_links":{"self":[{"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tribe_events\/2835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tribe_events"}],"about":[{"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/types\/tribe_events"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/users\/2856"}],"version-history":[{"count":14,"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tribe_events\/2835\/revisions"}],"predecessor-version":[{"id":5605,"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tribe_events\/2835\/revisions\/5605"}],"wp:attachment":[{"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/media?parent=2835"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tags?post=2835"},{"taxonomy":"tribe_events_cat","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc-events\/en\/wp-json\/wp\/v2\/tribe_events_cat?post=2835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}