From 6d7ca21733eaa26d19d8ee100d1d9fc4e04d5294 Mon Sep 17 00:00:00 2001 From: Kevin Stratford Date: Tue, 2 May 2023 08:54:07 +0100 Subject: [PATCH] Reorganise structure --- README.md | 143 ++++++++++++++++-- applications-two-day/README.md | 139 ----------------- .../images => images}/archer2_logo.png | Bin .../images => images}/epcc_logo.jpg | Bin .../ks-schematic-host-device.svg | 0 .../ks-schematic-memory-transfer.svg | 0 .../images => images}/ks-schematic-simple.svg | 0 .../ks-threads-blocks-grids.jpeg | Bin .../images => images}/ks-threads-blocks.jpeg | Bin .../images => images}/ks-threads.jpeg | Bin one-day/README.md | 28 ++++ {css => one-day/css}/local.css | 0 {css => one-day/css}/print/paper.css | 0 {css => one-day/css}/print/pdf.css | 0 {css => one-day/css}/reveal.scss | 0 {css => one-day/css}/theme/README.md | 0 {css => one-day/css}/theme/beige.css | 0 {css => one-day/css}/theme/black.css | 0 {css => one-day/css}/theme/blood.css | 0 {css => one-day/css}/theme/league.css | 0 {css => one-day/css}/theme/moon.css | 0 {css => one-day/css}/theme/night.css | 0 {css => one-day/css}/theme/serif.css | 0 {css => one-day/css}/theme/simple.css | 0 {css => one-day/css}/theme/sky.css | 0 {css => one-day/css}/theme/solarized.css | 0 {css => one-day/css}/theme/source/beige.scss | 0 {css => one-day/css}/theme/source/black.scss | 0 {css => one-day/css}/theme/source/blood.scss | 0 {css => one-day/css}/theme/source/league.scss | 0 {css => one-day/css}/theme/source/moon.scss | 0 {css => one-day/css}/theme/source/night.scss | 0 {css => one-day/css}/theme/source/serif.scss | 0 {css => one-day/css}/theme/source/simple.scss | 0 {css => one-day/css}/theme/source/sky.scss | 0 .../css}/theme/source/solarized.scss | 0 {css => one-day/css}/theme/source/white.scss | 0 .../css}/theme/template/mixins.scss | 0 .../css}/theme/template/settings.scss | 0 .../css}/theme/template/theme.scss | 0 {dist => one-day/dist}/reset.css | 0 {dist => one-day/dist}/reveal.css | 0 {dist => one-day/dist}/reveal.esm.js | 0 {dist => one-day/dist}/reveal.esm.js.map | 0 {dist => one-day/dist}/reveal.js | 0 {dist => one-day/dist}/reveal.js.map | 0 {dist => one-day/dist}/theme/white.css | 0 .../exercises}/cuda-intro/README.md | 0 .../exercises}/cuda-intro/intro.ipynb | 0 .../exercises}/cuda-intro/src_c/Makefile | 0 .../exercises}/cuda-intro/src_c/intro.cu | 0 .../cuda-intro/src_c/solution/Makefile | 0 .../cuda-intro/src_c/solution/intro.cu | 0 .../exercises}/cuda-intro/src_c/submit.sh | 0 .../cuda-intro/src_fortran/Makefile | 0 .../cuda-intro/src_fortran/gpu_utils.cuf | 0 .../cuda-intro/src_fortran/intro.cuf | 0 .../cuda-intro/src_fortran/scale_vector.cuf | 0 .../cuda-intro/src_fortran/solution/Makefile | 0 .../src_fortran/solution/gpu_utils.cuf | 0 .../cuda-intro/src_fortran/solution/intro.cuf | 0 .../src_fortran/solution/scale_vector.cuf | 0 .../cuda-intro/src_fortran/submit.sh | 0 .../exercises}/cuda-intro/src_py/intro.py | 0 .../cuda-intro/src_py/solution/intro.py | 0 .../cuda-intro/src_py/solution/submit.sh | 0 .../exercises}/cuda-intro/src_py/submit.sh | 0 .../exercises}/cuda-memory/Makefile | 0 .../exercises}/cuda-memory/README.md | 0 .../cuda-memory/cuda-memory-shared.ipynb | 0 .../exercises}/cuda-memory/src_c/Makefile | 0 .../exercises}/cuda-memory/src_c/reverse.cu | 0 .../cuda-memory/src_c/solution/Makefile | 0 .../cuda-memory/src_c/solution/reverse.cu | 0 .../exercises}/cuda-memory/src_c/submit.sh | 0 .../cuda-memory/src_fortran/Makefile | 0 .../cuda-memory/src_fortran/gpu_utils.cuf | 0 .../cuda-memory/src_fortran/reverse.cuf | 0 .../src_fortran/reverse_kernel.cuf | 0 .../cuda-memory/src_fortran/solution/Makefile | 0 .../src_fortran/solution/gpu_utils.cuf | 0 .../src_fortran/solution/reverse.cuf | 0 .../src_fortran/solution/reverse_kernel.cuf | 0 .../cuda-memory/src_fortran/submit.sh | 0 .../exercises}/cuda-optimise/README.md | 0 .../images/EDINB00034_2048x2048.jpg | Bin .../cuda-optimise/images/input.jpeg | Bin .../cuda-optimise/images/output10M.jpeg | Bin .../cuda-optimise/reconstruct.ipynb | 0 .../exercises}/cuda-optimise/src_c/Makefile | 0 .../cuda-optimise/src_c/edge2048x2048.dat | 0 .../cuda-optimise/src_c/reconstruct.cu | 0 .../cuda-optimise/src_c/reconstruct.h | 0 .../src_c/reconstruct_kernels.cu | 0 .../cuda-optimise/src_c/solution/Makefile | 0 .../src_c/solution/edge2048x2048.dat | 0 .../src_c/solution/reconstruct.cu | 0 .../src_c/solution/reconstruct.h | 0 .../src_c/solution/reconstruct_kernels.cu | 0 .../cuda-optimise/src_c/solution/utilities.cu | 0 .../exercises}/cuda-optimise/src_c/submit.sh | 0 .../cuda-optimise/src_c/utilities.cu | 0 .../cuda-optimise/src_fortran/Makefile | 0 .../src_fortran/edge2048x2048.dat | 0 .../cuda-optimise/src_fortran/reconstruct.cuf | 0 .../src_fortran/reconstruct_kernels.cuf | 0 .../src_fortran/solution/Makefile | 0 .../src_fortran/solution/reconstruct.cuf | 0 .../solution/reconstruct_kernels.cuf | 0 .../cuda-optimise/src_fortran/submit.sh | 0 .../exercises}/cuda-reduce/Makefile | 0 .../exercises}/cuda-reduce/README.md | 0 .../exercises}/cuda-reduce/solution/Makefile | 0 .../exercises}/cuda-reduce/solution/submit.sh | 0 .../cuda-reduce/solution/vector-product.cu | 0 .../exercises}/cuda-reduce/submit.sh | 0 .../exercises}/cuda-reduce/vector-product.cu | 0 .../exercises}/kokkos/.gitignore | 0 .../exercises}/kokkos/1/01_Exercise.mk | 0 .../exercises}/kokkos/1/Makefile | 0 .../exercises}/kokkos/1/OpenMP.mk | 0 .../exercises}/kokkos/1/exercise_1_begin.cpp | 0 .../kokkos/1/solution/01_Exercise.mk | 0 .../exercises}/kokkos/1/solution/Makefile | 0 .../exercises}/kokkos/1/solution/OpenMP.mk | 0 .../kokkos/1/solution/exercise_1_solution.cpp | 0 .../exercises}/kokkos/1/solution/submit.sh | 0 .../exercises}/kokkos/1/submit.sh | 0 .../exercises}/kokkos/2/02_Exercise.mk | 0 .../exercises}/kokkos/2/CudaUVM.mk | 0 .../exercises}/kokkos/2/Makefile | 0 .../exercises}/kokkos/2/OpenMP.mk | 0 .../exercises}/kokkos/2/exercise_2_begin.cpp | 0 .../kokkos/2/solution/02_Exercise.mk | 0 .../exercises}/kokkos/2/solution/CudaUVM.mk | 0 .../exercises}/kokkos/2/solution/Makefile | 0 .../exercises}/kokkos/2/solution/OpenMP.mk | 0 .../kokkos/2/solution/exercise_2_solution.cpp | 0 .../exercises}/kokkos/2/solution/submit.sh | 0 .../exercises}/kokkos/2/submit.sh | 0 .../exercises}/kokkos/3/03_Exercise.mk | 0 .../exercises}/kokkos/3/Cuda.mk | 0 .../exercises}/kokkos/3/Makefile | 0 .../exercises}/kokkos/3/OpenMP.mk | 0 .../exercises}/kokkos/3/exercise_3_begin.cpp | 0 .../kokkos/3/solution/03_Exercise.mk | 0 .../exercises}/kokkos/3/solution/Cuda.mk | 0 .../exercises}/kokkos/3/solution/Makefile | 0 .../exercises}/kokkos/3/solution/OpenMP.mk | 0 .../kokkos/3/solution/exercise_3_solution.cpp | 0 .../exercises}/kokkos/3/solution/submit.sh | 0 .../exercises}/kokkos/3/submit.sh | 0 .../exercises}/kokkos/4/04_Exercise.mk | 0 .../exercises}/kokkos/4/Any.mk | 0 .../exercises}/kokkos/4/Makefile | 0 .../exercises}/kokkos/4/exercise_4_begin.cpp | 0 .../kokkos/4/solution/04_Exercise.mk | 0 .../exercises}/kokkos/4/solution/Any.mk | 0 .../exercises}/kokkos/4/solution/Makefile | 0 .../kokkos/4/solution/exercise_4_solution.cpp | 0 .../exercises}/kokkos/4/solution/submit.sh | 0 .../exercises}/kokkos/4/submit.sh | 0 .../exercises}/kokkos/README.md | 0 .../exercises}/kokkos/kokkos.ipynb | 0 .../exercises}/openacc-optimise/README.md | 0 .../images/EDINB00034_2048x2048.jpg | Bin .../openacc-optimise/images/input.jpeg | Bin .../openacc-optimise/images/output10M.jpeg | Bin .../openacc-optimise/openacc-optimise.ipynb | 0 .../openacc-optimise/src_c/Makefile | 0 .../exercises}/openacc-optimise/src_c/cio.c | 0 .../openacc-optimise/src_c/edge2048x2048.dat | 0 .../openacc-optimise/src_c/reconstruct.c | 0 .../openacc-optimise/src_c/solution/Makefile | 0 .../openacc-optimise/src_c/solution/cio.c | 0 .../src_c/solution/edge2048x2048.dat | 0 .../src_c/solution/reconstruct.c | 0 .../openacc-optimise/src_c/submit.sh | 0 .../openacc-optimise/src_fortran/Makefile | 0 .../src_fortran/edge2048x2048.dat | 0 .../openacc-optimise/src_fortran/fio.f90 | 0 .../src_fortran/reconstruct.f90 | 0 .../src_fortran/solution/Makefile | 0 .../src_fortran/solution/edge2048x2048.dat | 0 .../src_fortran/solution/fio.f90 | 0 .../src_fortran/solution/reconstruct.f90 | 0 .../openacc-optimise/src_fortran/submit.sh | 0 .../exercises}/opencl-intro/Makefile | 0 .../exercises}/opencl-intro/README.md | 0 .../exercises}/opencl-intro/intro.c | 0 .../exercises}/opencl-intro/kernel.c | 0 .../opencl-intro/opencl-intro.ipynb | 0 .../exercises}/opencl-intro/solution/Makefile | 0 .../exercises}/opencl-intro/solution/intro.c | 0 .../exercises}/opencl-intro/solution/kernel.c | 0 .../exercises}/opencl-intro/submit.sh | 0 .../exercises}/opencl-optimise/Makefile | 0 .../exercises}/opencl-optimise/README.md | 0 .../opencl-optimise/edge2048x2048.dat | 0 .../exercises}/opencl-optimise/kernels.c | 0 .../opencl-optimise/opencl-optimise.ipynb | 0 .../exercises}/opencl-optimise/reverse.c | 0 .../opencl-optimise/solution/Makefile | 0 .../solution/edge2048x2048.dat | 0 .../opencl-optimise/solution/kernels.c | 0 .../opencl-optimise/solution/reverse.c | 0 .../exercises}/opencl-optimise/submit.sh | 0 gulpfile.js => one-day/gulpfile.js | 0 {img => one-day/img}/.DS_Store | Bin {img => one-day/img}/ARCHER_logo.png | Bin {img => one-day/img}/archer_cabs.png | Bin {img => one-day/img}/archer_panels.png | Bin {img => one-day/img}/cc_licence.png | Bin {img => one-day/img}/cirrus_cabs.png | Bin {img => one-day/img}/cray-logo.png | Bin {img => one-day/img}/epcc_logo.png | Bin {img => one-day/img}/epsrc-highres.jpg | Bin {img => one-day/img}/ks-cpudb-2017.jpg | Bin {img => one-day/img}/nerc-logo-large.jpg | Bin {img => one-day/img}/tier2-map.png | Bin {img => one-day/img}/tier2_logo.jpg | Bin {img => one-day/img}/tier2_logos.png | Bin index.html => one-day/index.html | 0 {lib => one-day/lib}/css/vs.css | 0 {lib => one-day/lib}/css/zenburn.css | 0 .../lib}/font/league-gothic/LICENSE | 0 .../lib}/font/league-gothic/league-gothic.css | 0 .../lib}/font/league-gothic/league-gothic.eot | Bin .../lib}/font/league-gothic/league-gothic.ttf | Bin .../font/league-gothic/league-gothic.woff | Bin .../lib}/font/source-sans-pro/LICENSE | 0 .../source-sans-pro-italic.eot | Bin .../source-sans-pro-italic.ttf | Bin .../source-sans-pro-italic.woff | Bin .../source-sans-pro-regular.eot | Bin .../source-sans-pro-regular.ttf | Bin .../source-sans-pro-regular.woff | Bin .../source-sans-pro-semibold.eot | Bin .../source-sans-pro-semibold.ttf | Bin .../source-sans-pro-semibold.woff | Bin .../source-sans-pro-semibolditalic.eot | Bin .../source-sans-pro-semibolditalic.ttf | Bin .../source-sans-pro-semibolditalic.woff | Bin .../font/source-sans-pro/source-sans-pro.css | 0 {lib => one-day/lib}/js/classList.js | 0 {lib => one-day/lib}/js/html5shiv.js | 0 .../package-lock.json | 0 package.json => one-day/package.json | 0 .../plugin}/highlight/highlight.esm.js | 0 .../plugin}/highlight/highlight.js | 0 .../plugin}/highlight/monokai.css | 0 .../plugin}/highlight/plugin.js | 0 {plugin => one-day/plugin}/highlight/vs.css | 0 .../plugin}/highlight/zenburn.css | 0 .../plugin}/markdown/example.html | 0 .../plugin}/markdown/example.md | 0 .../plugin}/markdown/markdown.esm.js | 0 .../plugin}/markdown/markdown.js | 0 {plugin => one-day/plugin}/markdown/marked.js | 0 {plugin => one-day/plugin}/markdown/plugin.js | 0 {plugin => one-day/plugin}/math/katex.js | 0 {plugin => one-day/plugin}/math/math.esm.js | 0 {plugin => one-day/plugin}/math/math.js | 0 {plugin => one-day/plugin}/math/mathjax2.js | 0 {plugin => one-day/plugin}/math/mathjax3.js | 0 {plugin => one-day/plugin}/math/plugin.js | 0 .../plugin}/multiplex/client.js | 0 {plugin => one-day/plugin}/multiplex/index.js | 0 .../plugin}/multiplex/master.js | 0 .../plugin}/multiplex/package.json | 0 .../plugin}/notes-server/client.js | 0 .../plugin}/notes-server/index.js | 0 .../plugin}/notes-server/notes.html | 0 {plugin => one-day/plugin}/notes/notes.esm.js | 0 {plugin => one-day/plugin}/notes/notes.html | 0 {plugin => one-day/plugin}/notes/notes.js | 0 {plugin => one-day/plugin}/notes/plugin.js | 0 .../plugin}/notes/speaker-view.html | 0 .../plugin}/print-pdf/print-pdf.js | 0 {plugin => one-day/plugin}/search/plugin.js | 0 .../plugin}/search/search.esm.js | 0 {plugin => one-day/plugin}/search/search.js | 0 {plugin => one-day/plugin}/zoom-js/zoom.js | 0 {plugin => one-day/plugin}/zoom/plugin.js | 0 {plugin => one-day/plugin}/zoom/zoom.esm.js | 0 {plugin => one-day/plugin}/zoom/zoom.js | 0 .../src}/ag-schematic-4factors.png | Bin .../src}/ag-schematic-host-device.png | Bin {src => one-day/src}/ag-schematic-sm.png | Bin {src => one-day/src}/architectures.html | 0 {src => one-day/src}/cuda-memory.html | 0 {src => one-day/src}/cuda-programming.html | 0 {src => one-day/src}/directives.html | 0 {src => one-day/src}/intel-knl-die.jpg | Bin .../src}/intel-sandybridge-e-3960X-die.jpg | Bin .../src}/jp-schematic-opencl-work.png | Bin {src => one-day/src}/kokkos.html | 0 .../src}/ks-schematic-4factors.svg | 0 {src => one-day/src}/ks-schematic-block.svg | 0 {src => one-day/src}/ks-schematic-grid.svg | 0 .../src}/ks-schematic-host-device.svg | 0 .../src}/nvidia-gpc-block-diagram.png | Bin .../src}/nvidia-sm-block-diagram.png | Bin .../src}/nvidia-x86-performance.png | Bin {src => one-day/src}/opencl.html | 0 {src => one-day/src}/optimisation.html | 0 {src => one-day/src}/right-left.png | Bin {src => one-day/src}/right.png | Bin {src => one-day/src}/timetable.html | 0 .../section-1.01 => section-1.01}/README.md | 0 .../section-1.02 => section-1.02}/README.md | 0 .../section-2.01 => section-2.01}/README.md | 0 .../exercise_dscal.cu | 0 .../section-2.01 => section-2.01}/submit.sh | 0 .../section-2.02 => section-2.02}/README.md | 0 .../exercise_dscal.cu | 0 .../section-2.02 => section-2.02}/submit.sh | 0 .../section-2.03 => section-2.03}/README.md | 0 .../exercise_dger.cu | 0 .../section-2.03 => section-2.03}/submit.sh | 0 .../section-2.04 => section-2.04}/README.md | 0 .../exercise_dger.cu | 0 .../section-2.04 => section-2.04}/submit.sh | 0 .../section-2.05 => section-2.05}/README.md | 0 .../exercise_ddot.cu | 0 .../section-2.05 => section-2.05}/submit.sh | 0 .../section-2.06 => section-2.06}/README.md | 0 .../section-3.01 => section-3.01}/README.md | 0 .../section-4.01 => section-4.01}/README.md | 0 .../exercise_dger.cu | 0 .../section-4.01 => section-4.01}/submit.sh | 0 .../section-4.02 => section-4.02}/README.md | 0 .../exercise_dger.cu | 0 .../section-4.02 => section-4.02}/submit.sh | 0 334 files changed, 155 insertions(+), 155 deletions(-) delete mode 100644 applications-two-day/README.md rename {applications-two-day/images => images}/archer2_logo.png (100%) rename {applications-two-day/images => images}/epcc_logo.jpg (100%) rename {applications-two-day/images => images}/ks-schematic-host-device.svg (100%) rename {applications-two-day/images => images}/ks-schematic-memory-transfer.svg (100%) rename {applications-two-day/images => images}/ks-schematic-simple.svg (100%) rename {applications-two-day/images => images}/ks-threads-blocks-grids.jpeg (100%) rename {applications-two-day/images => images}/ks-threads-blocks.jpeg (100%) rename {applications-two-day/images => images}/ks-threads.jpeg (100%) create mode 100644 one-day/README.md rename {css => one-day/css}/local.css (100%) rename {css => one-day/css}/print/paper.css (100%) rename {css => one-day/css}/print/pdf.css (100%) rename {css => one-day/css}/reveal.scss (100%) rename {css => one-day/css}/theme/README.md (100%) rename {css => one-day/css}/theme/beige.css (100%) rename {css => one-day/css}/theme/black.css (100%) rename {css => one-day/css}/theme/blood.css (100%) rename {css => one-day/css}/theme/league.css (100%) rename {css => one-day/css}/theme/moon.css (100%) rename {css => one-day/css}/theme/night.css (100%) rename {css => one-day/css}/theme/serif.css (100%) rename {css => one-day/css}/theme/simple.css (100%) rename {css => one-day/css}/theme/sky.css (100%) rename {css => one-day/css}/theme/solarized.css (100%) rename {css => one-day/css}/theme/source/beige.scss (100%) rename {css => one-day/css}/theme/source/black.scss (100%) rename {css => one-day/css}/theme/source/blood.scss (100%) rename {css => one-day/css}/theme/source/league.scss (100%) rename {css => one-day/css}/theme/source/moon.scss (100%) rename {css => one-day/css}/theme/source/night.scss (100%) rename {css => one-day/css}/theme/source/serif.scss (100%) rename {css => one-day/css}/theme/source/simple.scss (100%) rename {css => one-day/css}/theme/source/sky.scss (100%) rename {css => one-day/css}/theme/source/solarized.scss (100%) rename {css => one-day/css}/theme/source/white.scss (100%) rename {css => one-day/css}/theme/template/mixins.scss (100%) rename {css => one-day/css}/theme/template/settings.scss (100%) rename {css => one-day/css}/theme/template/theme.scss (100%) rename {dist => one-day/dist}/reset.css (100%) rename {dist => one-day/dist}/reveal.css (100%) rename {dist => one-day/dist}/reveal.esm.js (100%) rename {dist => one-day/dist}/reveal.esm.js.map (100%) rename {dist => one-day/dist}/reveal.js (100%) rename {dist => one-day/dist}/reveal.js.map (100%) rename {dist => one-day/dist}/theme/white.css (100%) rename {exercises => one-day/exercises}/cuda-intro/README.md (100%) rename {exercises => one-day/exercises}/cuda-intro/intro.ipynb (100%) rename {exercises => one-day/exercises}/cuda-intro/src_c/Makefile (100%) rename {exercises => one-day/exercises}/cuda-intro/src_c/intro.cu (100%) rename {exercises => one-day/exercises}/cuda-intro/src_c/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-intro/src_c/solution/intro.cu (100%) rename {exercises => one-day/exercises}/cuda-intro/src_c/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/Makefile (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/gpu_utils.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/intro.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/scale_vector.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/solution/gpu_utils.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/solution/intro.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/solution/scale_vector.cuf (100%) rename {exercises => one-day/exercises}/cuda-intro/src_fortran/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-intro/src_py/intro.py (100%) rename {exercises => one-day/exercises}/cuda-intro/src_py/solution/intro.py (100%) rename {exercises => one-day/exercises}/cuda-intro/src_py/solution/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-intro/src_py/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-memory/Makefile (100%) rename {exercises => one-day/exercises}/cuda-memory/README.md (100%) rename {exercises => one-day/exercises}/cuda-memory/cuda-memory-shared.ipynb (100%) rename {exercises => one-day/exercises}/cuda-memory/src_c/Makefile (100%) rename {exercises => one-day/exercises}/cuda-memory/src_c/reverse.cu (100%) rename {exercises => one-day/exercises}/cuda-memory/src_c/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-memory/src_c/solution/reverse.cu (100%) rename {exercises => one-day/exercises}/cuda-memory/src_c/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/Makefile (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/gpu_utils.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/reverse.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/reverse_kernel.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/solution/gpu_utils.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/solution/reverse.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/solution/reverse_kernel.cuf (100%) rename {exercises => one-day/exercises}/cuda-memory/src_fortran/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-optimise/README.md (100%) rename {exercises => one-day/exercises}/cuda-optimise/images/EDINB00034_2048x2048.jpg (100%) rename {exercises => one-day/exercises}/cuda-optimise/images/input.jpeg (100%) rename {exercises => one-day/exercises}/cuda-optimise/images/output10M.jpeg (100%) rename {exercises => one-day/exercises}/cuda-optimise/reconstruct.ipynb (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/Makefile (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/reconstruct.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/reconstruct.h (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/reconstruct_kernels.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/reconstruct.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/reconstruct.h (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/reconstruct_kernels.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/solution/utilities.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_c/utilities.cu (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/Makefile (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/reconstruct.cuf (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/reconstruct_kernels.cuf (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/solution/reconstruct.cuf (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/solution/reconstruct_kernels.cuf (100%) rename {exercises => one-day/exercises}/cuda-optimise/src_fortran/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-reduce/Makefile (100%) rename {exercises => one-day/exercises}/cuda-reduce/README.md (100%) rename {exercises => one-day/exercises}/cuda-reduce/solution/Makefile (100%) rename {exercises => one-day/exercises}/cuda-reduce/solution/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-reduce/solution/vector-product.cu (100%) rename {exercises => one-day/exercises}/cuda-reduce/submit.sh (100%) rename {exercises => one-day/exercises}/cuda-reduce/vector-product.cu (100%) rename {exercises => one-day/exercises}/kokkos/.gitignore (100%) rename {exercises => one-day/exercises}/kokkos/1/01_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/1/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/1/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/1/exercise_1_begin.cpp (100%) rename {exercises => one-day/exercises}/kokkos/1/solution/01_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/1/solution/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/1/solution/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/1/solution/exercise_1_solution.cpp (100%) rename {exercises => one-day/exercises}/kokkos/1/solution/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/1/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/2/02_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/CudaUVM.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/2/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/exercise_2_begin.cpp (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/02_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/CudaUVM.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/exercise_2_solution.cpp (100%) rename {exercises => one-day/exercises}/kokkos/2/solution/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/2/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/3/03_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/Cuda.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/3/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/exercise_3_begin.cpp (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/03_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/Cuda.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/OpenMP.mk (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/exercise_3_solution.cpp (100%) rename {exercises => one-day/exercises}/kokkos/3/solution/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/3/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/4/04_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/4/Any.mk (100%) rename {exercises => one-day/exercises}/kokkos/4/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/4/exercise_4_begin.cpp (100%) rename {exercises => one-day/exercises}/kokkos/4/solution/04_Exercise.mk (100%) rename {exercises => one-day/exercises}/kokkos/4/solution/Any.mk (100%) rename {exercises => one-day/exercises}/kokkos/4/solution/Makefile (100%) rename {exercises => one-day/exercises}/kokkos/4/solution/exercise_4_solution.cpp (100%) rename {exercises => one-day/exercises}/kokkos/4/solution/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/4/submit.sh (100%) rename {exercises => one-day/exercises}/kokkos/README.md (100%) rename {exercises => one-day/exercises}/kokkos/kokkos.ipynb (100%) rename {exercises => one-day/exercises}/openacc-optimise/README.md (100%) rename {exercises => one-day/exercises}/openacc-optimise/images/EDINB00034_2048x2048.jpg (100%) rename {exercises => one-day/exercises}/openacc-optimise/images/input.jpeg (100%) rename {exercises => one-day/exercises}/openacc-optimise/images/output10M.jpeg (100%) rename {exercises => one-day/exercises}/openacc-optimise/openacc-optimise.ipynb (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/Makefile (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/cio.c (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/reconstruct.c (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/solution/Makefile (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/solution/cio.c (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/solution/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/solution/reconstruct.c (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_c/submit.sh (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/Makefile (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/fio.f90 (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/reconstruct.f90 (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/solution/Makefile (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/solution/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/solution/fio.f90 (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/solution/reconstruct.f90 (100%) rename {exercises => one-day/exercises}/openacc-optimise/src_fortran/submit.sh (100%) rename {exercises => one-day/exercises}/opencl-intro/Makefile (100%) rename {exercises => one-day/exercises}/opencl-intro/README.md (100%) rename {exercises => one-day/exercises}/opencl-intro/intro.c (100%) rename {exercises => one-day/exercises}/opencl-intro/kernel.c (100%) rename {exercises => one-day/exercises}/opencl-intro/opencl-intro.ipynb (100%) rename {exercises => one-day/exercises}/opencl-intro/solution/Makefile (100%) rename {exercises => one-day/exercises}/opencl-intro/solution/intro.c (100%) rename {exercises => one-day/exercises}/opencl-intro/solution/kernel.c (100%) rename {exercises => one-day/exercises}/opencl-intro/submit.sh (100%) rename {exercises => one-day/exercises}/opencl-optimise/Makefile (100%) rename {exercises => one-day/exercises}/opencl-optimise/README.md (100%) rename {exercises => one-day/exercises}/opencl-optimise/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/opencl-optimise/kernels.c (100%) rename {exercises => one-day/exercises}/opencl-optimise/opencl-optimise.ipynb (100%) rename {exercises => one-day/exercises}/opencl-optimise/reverse.c (100%) rename {exercises => one-day/exercises}/opencl-optimise/solution/Makefile (100%) rename {exercises => one-day/exercises}/opencl-optimise/solution/edge2048x2048.dat (100%) rename {exercises => one-day/exercises}/opencl-optimise/solution/kernels.c (100%) rename {exercises => one-day/exercises}/opencl-optimise/solution/reverse.c (100%) rename {exercises => one-day/exercises}/opencl-optimise/submit.sh (100%) rename gulpfile.js => one-day/gulpfile.js (100%) rename {img => one-day/img}/.DS_Store (100%) rename {img => one-day/img}/ARCHER_logo.png (100%) rename {img => one-day/img}/archer_cabs.png (100%) rename {img => one-day/img}/archer_panels.png (100%) rename {img => one-day/img}/cc_licence.png (100%) rename {img => one-day/img}/cirrus_cabs.png (100%) rename {img => one-day/img}/cray-logo.png (100%) rename {img => one-day/img}/epcc_logo.png (100%) rename {img => one-day/img}/epsrc-highres.jpg (100%) rename {img => one-day/img}/ks-cpudb-2017.jpg (100%) rename {img => one-day/img}/nerc-logo-large.jpg (100%) rename {img => one-day/img}/tier2-map.png (100%) rename {img => one-day/img}/tier2_logo.jpg (100%) rename {img => one-day/img}/tier2_logos.png (100%) rename index.html => one-day/index.html (100%) rename {lib => one-day/lib}/css/vs.css (100%) rename {lib => one-day/lib}/css/zenburn.css (100%) rename {lib => one-day/lib}/font/league-gothic/LICENSE (100%) rename {lib => one-day/lib}/font/league-gothic/league-gothic.css (100%) rename {lib => one-day/lib}/font/league-gothic/league-gothic.eot (100%) rename {lib => one-day/lib}/font/league-gothic/league-gothic.ttf (100%) rename {lib => one-day/lib}/font/league-gothic/league-gothic.woff (100%) rename {lib => one-day/lib}/font/source-sans-pro/LICENSE (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-italic.eot (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-italic.ttf (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-italic.woff (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-regular.eot (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-regular.ttf (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-regular.woff (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibold.eot (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibold.ttf (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibold.woff (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibolditalic.eot (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibolditalic.ttf (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro-semibolditalic.woff (100%) rename {lib => one-day/lib}/font/source-sans-pro/source-sans-pro.css (100%) rename {lib => one-day/lib}/js/classList.js (100%) rename {lib => one-day/lib}/js/html5shiv.js (100%) rename package-lock.json => one-day/package-lock.json (100%) rename package.json => one-day/package.json (100%) rename {plugin => one-day/plugin}/highlight/highlight.esm.js (100%) rename {plugin => one-day/plugin}/highlight/highlight.js (100%) rename {plugin => one-day/plugin}/highlight/monokai.css (100%) rename {plugin => one-day/plugin}/highlight/plugin.js (100%) rename {plugin => one-day/plugin}/highlight/vs.css (100%) rename {plugin => one-day/plugin}/highlight/zenburn.css (100%) rename {plugin => one-day/plugin}/markdown/example.html (100%) rename {plugin => one-day/plugin}/markdown/example.md (100%) rename {plugin => one-day/plugin}/markdown/markdown.esm.js (100%) rename {plugin => one-day/plugin}/markdown/markdown.js (100%) rename {plugin => one-day/plugin}/markdown/marked.js (100%) rename {plugin => one-day/plugin}/markdown/plugin.js (100%) rename {plugin => one-day/plugin}/math/katex.js (100%) rename {plugin => one-day/plugin}/math/math.esm.js (100%) rename {plugin => one-day/plugin}/math/math.js (100%) rename {plugin => one-day/plugin}/math/mathjax2.js (100%) rename {plugin => one-day/plugin}/math/mathjax3.js (100%) rename {plugin => one-day/plugin}/math/plugin.js (100%) rename {plugin => one-day/plugin}/multiplex/client.js (100%) rename {plugin => one-day/plugin}/multiplex/index.js (100%) rename {plugin => one-day/plugin}/multiplex/master.js (100%) rename {plugin => one-day/plugin}/multiplex/package.json (100%) rename {plugin => one-day/plugin}/notes-server/client.js (100%) rename {plugin => one-day/plugin}/notes-server/index.js (100%) rename {plugin => one-day/plugin}/notes-server/notes.html (100%) rename {plugin => one-day/plugin}/notes/notes.esm.js (100%) rename {plugin => one-day/plugin}/notes/notes.html (100%) rename {plugin => one-day/plugin}/notes/notes.js (100%) rename {plugin => one-day/plugin}/notes/plugin.js (100%) rename {plugin => one-day/plugin}/notes/speaker-view.html (100%) rename {plugin => one-day/plugin}/print-pdf/print-pdf.js (100%) rename {plugin => one-day/plugin}/search/plugin.js (100%) rename {plugin => one-day/plugin}/search/search.esm.js (100%) rename {plugin => one-day/plugin}/search/search.js (100%) rename {plugin => one-day/plugin}/zoom-js/zoom.js (100%) rename {plugin => one-day/plugin}/zoom/plugin.js (100%) rename {plugin => one-day/plugin}/zoom/zoom.esm.js (100%) rename {plugin => one-day/plugin}/zoom/zoom.js (100%) rename {src => one-day/src}/ag-schematic-4factors.png (100%) rename {src => one-day/src}/ag-schematic-host-device.png (100%) rename {src => one-day/src}/ag-schematic-sm.png (100%) rename {src => one-day/src}/architectures.html (100%) rename {src => one-day/src}/cuda-memory.html (100%) rename {src => one-day/src}/cuda-programming.html (100%) rename {src => one-day/src}/directives.html (100%) rename {src => one-day/src}/intel-knl-die.jpg (100%) rename {src => one-day/src}/intel-sandybridge-e-3960X-die.jpg (100%) rename {src => one-day/src}/jp-schematic-opencl-work.png (100%) rename {src => one-day/src}/kokkos.html (100%) rename {src => one-day/src}/ks-schematic-4factors.svg (100%) rename {src => one-day/src}/ks-schematic-block.svg (100%) rename {src => one-day/src}/ks-schematic-grid.svg (100%) rename {src => one-day/src}/ks-schematic-host-device.svg (100%) rename {src => one-day/src}/nvidia-gpc-block-diagram.png (100%) rename {src => one-day/src}/nvidia-sm-block-diagram.png (100%) rename {src => one-day/src}/nvidia-x86-performance.png (100%) rename {src => one-day/src}/opencl.html (100%) rename {src => one-day/src}/optimisation.html (100%) rename {src => one-day/src}/right-left.png (100%) rename {src => one-day/src}/right.png (100%) rename {src => one-day/src}/timetable.html (100%) rename {applications-two-day/section-1.01 => section-1.01}/README.md (100%) rename {applications-two-day/section-1.02 => section-1.02}/README.md (100%) rename {applications-two-day/section-2.01 => section-2.01}/README.md (100%) rename {applications-two-day/section-2.01 => section-2.01}/exercise_dscal.cu (100%) rename {applications-two-day/section-2.01 => section-2.01}/submit.sh (100%) rename {applications-two-day/section-2.02 => section-2.02}/README.md (100%) rename {applications-two-day/section-2.02 => section-2.02}/exercise_dscal.cu (100%) rename {applications-two-day/section-2.02 => section-2.02}/submit.sh (100%) rename {applications-two-day/section-2.03 => section-2.03}/README.md (100%) rename {applications-two-day/section-2.03 => section-2.03}/exercise_dger.cu (100%) rename {applications-two-day/section-2.03 => section-2.03}/submit.sh (100%) rename {applications-two-day/section-2.04 => section-2.04}/README.md (100%) rename {applications-two-day/section-2.04 => section-2.04}/exercise_dger.cu (100%) rename {applications-two-day/section-2.04 => section-2.04}/submit.sh (100%) rename {applications-two-day/section-2.05 => section-2.05}/README.md (100%) rename {applications-two-day/section-2.05 => section-2.05}/exercise_ddot.cu (100%) rename {applications-two-day/section-2.05 => section-2.05}/submit.sh (100%) rename {applications-two-day/section-2.06 => section-2.06}/README.md (100%) rename {applications-two-day/section-3.01 => section-3.01}/README.md (100%) rename {applications-two-day/section-4.01 => section-4.01}/README.md (100%) rename {applications-two-day/section-4.01 => section-4.01}/exercise_dger.cu (100%) rename {applications-two-day/section-4.01 => section-4.01}/submit.sh (100%) rename {applications-two-day/section-4.02 => section-4.02}/README.md (100%) rename {applications-two-day/section-4.02 => section-4.02}/exercise_dger.cu (100%) rename {applications-two-day/section-4.02 => section-4.02}/submit.sh (100%) diff --git a/README.md b/README.md index 24ad4ea..6509994 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,139 @@ -# ARCHER Introduction to GPU Programming -This repository contains both the slides and the exercise material -for ARCHER and Cirrus Introdution to GPU Programming Course. + + -ARCHER is the United Kingdom National Supercomputing service -http://www.archer.ac.uk/ +



-Cirrus is a United Kingdom Tier2 service https://www.cirrus.ac.uk +# Introduction to GPU programming with CUDA/HIP -The latest slides for the lecture content are available at: +[![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] -https://epcced.github.io/archer-gpu-course/ +This short course will provide an introduction to GPU computing with CUDA +aimed at scientific application programmers wishing to develop their own +software. The course will give a background on the difference between CPU +and GPU architectures as a prelude to introductory exercises in CUDA +programming. The course will discuss the execution of kernels, memory +management, and shared memory operations. Common performance issues are +discussed and their solution addressed. Profiling will be introduced via +the current NVIDIA tools. -The slides are built using [reveal.js](https://github.com/hakimel/reveal.js). +The course will go on to consider execution of independent streams, and +the execution of work composed as a collection of dependent tasks expressed +as a graph. Device management and details of device to device data transfer +will be covered for situations where more than one GPU device is available. +CUDA-aware MPI will be covered. -If you would like to save a pdf copy of the slides, please follow the -instructions at https://github.com/hakimel/reveal.js/#pdf-export +The course will not discuss programming with compiler directives, but does +provide a concrete basis of understanding of the underlying principles of +the CUDA model which is useful for programmers ultimately wishing to make +use of OpenMP or OpenACC (or indeed other models). The course will not +consider graphics programming, nor will it consider machine learning +packages. +Note that the course is also appropriate for those wishing to use AMD GPUs +via the HIP API, although we will not specifically use HIP. -#### License +Attendees must be able to program in C or C++ (course examples and +exercises will limit themselves to C). A familiarity with threaded +programming models would be useful, but no previous knowledge of GPU +programming is required. -Slides are available under a Creative Commons license. +## Installation -Other material is Copyright (c) EPCC, The University of Edinburgh, unless -otherwise stated. +For details of how to log into a Cirrus account, see +https://cirrus.readthedocs.io/en/main/user-guide/connecting.html -Kokkos exercises are based on Tutorial material by Sandia and are (c) Sandia. +Check out the git repository to your Cirrus account. +``` +$ cd ${HOME/home/work} +$ https://github.com/EPCCed/archer-gpu-course.git +$ cd archer-gpu-course +``` +For the examples and exercises in the course, we will use the +NVIDIA compiler driver `nvcc`. To access this +``` +$ module load nvidia/nvhpc +``` +Check you can compile and run a very simple program +and submit the associated script to the queue system. +``` +$ cd section-2.01 +$ nvcc -arch=sm_70 exercise_dscal.cu +$ sbatch submit.sh +``` +The result should appear in a file `slurm-123456.out` in the working +directory. + +Each section of the course is associated with a different directory, each +of which contains a number of example programs and exercise templates. +Answers to exercises generally re-appear as templates to later exercises. +Miscellaneous solutions also appear in the solutions directory. + + +## Timetable + +The timetable may shift slightly in terms of content, but we will stick to +the advertised start and finish times, and the break times. + + +### Day one + +| Time | Content | Section | +|-------|------------------------------------------|------------------------------| +| 09:30 | Logistics, login, modules, local details | See above | +| 10:00 | Introduction | | +| | Performance model; Graphics processors | [section-1.01](section-1.01) | +| 10:30 | The CUDA/HIP programming model | | +| | Abstraction; host code and device code | [section-1.02](section-1.02) | +| 11:00 | Break | | +| 11:30 | CUDA/HIP programming | | +| | Memory management, exercise | [section-2.01](section-2.01) | +| 12:15 | CUDA/HIP programming (cont.) | | +| | Kernels, exercise | [section-2.02](section-2.02) | +| 13:00 | Lunch | | +| 14:00 | Some performance considerations | | +| | Exercise on matrix operation | [section-2.03](section-2.03) | +| 15:00 | Break | | +| 15:20 | More on memory: managed memory | | +| | Exercise on managed memory | [section-2.04](section-2.04) | +| 15:50 | More on memory: shared memory | | +| 16:10 | Exercise on vector product | [section-2.05](section-2.05) | +| 16:30 | All together: matrix-vector product | [][] | +| 17:00 | Close | | + + +### Day two + + +| Time | Content | Section | +|-------|------------------------------------------|------------------------------| +| 09:00 | Detour: visual profiler | | +| 09:10 | Exercise: nsight systems and compute | [section-3.01](section-3.01) | +| 09:30 | Streams | | +| | Using `cudaMempcyAsync()` etc | [section-4.01](section-4.01) | +| 10:00 | Graph API | | +| | Using `cudaGraphLaunch()` etc | [section-4.02](section-4.02) | +| 11:00 | Break | | +| 11:30 | Device management: more then one GPU | | +| | `cudaMemcpy()` again | [section-5.01](section-5.01) | +| 12:15 | Special topic: GPU-aware MPI | | +| | Exercise | [section-5.02](section-5.02) | +| 13:00 | Lunch | | +| 14:00 | Putting it all together | | +| | Conjugate gradient exercise | [section-6.01](section-6.01) | +| 15:00 | Break | | +| 15:20 | Exercises | | +| 15:50 | Miscellaneous comments | [section-7.01](section-7.01) | +| 16:00 | Close | | + + + +--- +This work is licensed under a +[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa]. + +[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/ +[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png +[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg + +[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] diff --git a/applications-two-day/README.md b/applications-two-day/README.md deleted file mode 100644 index 6509994..0000000 --- a/applications-two-day/README.md +++ /dev/null @@ -1,139 +0,0 @@ - - - - -



- -# Introduction to GPU programming with CUDA/HIP - -[![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] - -This short course will provide an introduction to GPU computing with CUDA -aimed at scientific application programmers wishing to develop their own -software. The course will give a background on the difference between CPU -and GPU architectures as a prelude to introductory exercises in CUDA -programming. The course will discuss the execution of kernels, memory -management, and shared memory operations. Common performance issues are -discussed and their solution addressed. Profiling will be introduced via -the current NVIDIA tools. - -The course will go on to consider execution of independent streams, and -the execution of work composed as a collection of dependent tasks expressed -as a graph. Device management and details of device to device data transfer -will be covered for situations where more than one GPU device is available. -CUDA-aware MPI will be covered. - -The course will not discuss programming with compiler directives, but does -provide a concrete basis of understanding of the underlying principles of -the CUDA model which is useful for programmers ultimately wishing to make -use of OpenMP or OpenACC (or indeed other models). The course will not -consider graphics programming, nor will it consider machine learning -packages. - -Note that the course is also appropriate for those wishing to use AMD GPUs -via the HIP API, although we will not specifically use HIP. - -Attendees must be able to program in C or C++ (course examples and -exercises will limit themselves to C). A familiarity with threaded -programming models would be useful, but no previous knowledge of GPU -programming is required. - -## Installation - -For details of how to log into a Cirrus account, see -https://cirrus.readthedocs.io/en/main/user-guide/connecting.html - -Check out the git repository to your Cirrus account. -``` -$ cd ${HOME/home/work} -$ https://github.com/EPCCed/archer-gpu-course.git -$ cd archer-gpu-course -``` -For the examples and exercises in the course, we will use the -NVIDIA compiler driver `nvcc`. To access this -``` -$ module load nvidia/nvhpc -``` -Check you can compile and run a very simple program -and submit the associated script to the queue system. -``` -$ cd section-2.01 -$ nvcc -arch=sm_70 exercise_dscal.cu -$ sbatch submit.sh -``` -The result should appear in a file `slurm-123456.out` in the working -directory. - -Each section of the course is associated with a different directory, each -of which contains a number of example programs and exercise templates. -Answers to exercises generally re-appear as templates to later exercises. -Miscellaneous solutions also appear in the solutions directory. - - -## Timetable - -The timetable may shift slightly in terms of content, but we will stick to -the advertised start and finish times, and the break times. - - -### Day one - -| Time | Content | Section | -|-------|------------------------------------------|------------------------------| -| 09:30 | Logistics, login, modules, local details | See above | -| 10:00 | Introduction | | -| | Performance model; Graphics processors | [section-1.01](section-1.01) | -| 10:30 | The CUDA/HIP programming model | | -| | Abstraction; host code and device code | [section-1.02](section-1.02) | -| 11:00 | Break | | -| 11:30 | CUDA/HIP programming | | -| | Memory management, exercise | [section-2.01](section-2.01) | -| 12:15 | CUDA/HIP programming (cont.) | | -| | Kernels, exercise | [section-2.02](section-2.02) | -| 13:00 | Lunch | | -| 14:00 | Some performance considerations | | -| | Exercise on matrix operation | [section-2.03](section-2.03) | -| 15:00 | Break | | -| 15:20 | More on memory: managed memory | | -| | Exercise on managed memory | [section-2.04](section-2.04) | -| 15:50 | More on memory: shared memory | | -| 16:10 | Exercise on vector product | [section-2.05](section-2.05) | -| 16:30 | All together: matrix-vector product | [][] | -| 17:00 | Close | | - - -### Day two - - -| Time | Content | Section | -|-------|------------------------------------------|------------------------------| -| 09:00 | Detour: visual profiler | | -| 09:10 | Exercise: nsight systems and compute | [section-3.01](section-3.01) | -| 09:30 | Streams | | -| | Using `cudaMempcyAsync()` etc | [section-4.01](section-4.01) | -| 10:00 | Graph API | | -| | Using `cudaGraphLaunch()` etc | [section-4.02](section-4.02) | -| 11:00 | Break | | -| 11:30 | Device management: more then one GPU | | -| | `cudaMemcpy()` again | [section-5.01](section-5.01) | -| 12:15 | Special topic: GPU-aware MPI | | -| | Exercise | [section-5.02](section-5.02) | -| 13:00 | Lunch | | -| 14:00 | Putting it all together | | -| | Conjugate gradient exercise | [section-6.01](section-6.01) | -| 15:00 | Break | | -| 15:20 | Exercises | | -| 15:50 | Miscellaneous comments | [section-7.01](section-7.01) | -| 16:00 | Close | | - - - ---- -This work is licensed under a -[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa]. - -[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/ -[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png -[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg - -[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] diff --git a/applications-two-day/images/archer2_logo.png b/images/archer2_logo.png similarity index 100% rename from applications-two-day/images/archer2_logo.png rename to images/archer2_logo.png diff --git a/applications-two-day/images/epcc_logo.jpg b/images/epcc_logo.jpg similarity index 100% rename from applications-two-day/images/epcc_logo.jpg rename to images/epcc_logo.jpg diff --git a/applications-two-day/images/ks-schematic-host-device.svg b/images/ks-schematic-host-device.svg similarity index 100% rename from applications-two-day/images/ks-schematic-host-device.svg rename to images/ks-schematic-host-device.svg diff --git a/applications-two-day/images/ks-schematic-memory-transfer.svg b/images/ks-schematic-memory-transfer.svg similarity index 100% rename from applications-two-day/images/ks-schematic-memory-transfer.svg rename to images/ks-schematic-memory-transfer.svg diff --git a/applications-two-day/images/ks-schematic-simple.svg b/images/ks-schematic-simple.svg similarity index 100% rename from applications-two-day/images/ks-schematic-simple.svg rename to images/ks-schematic-simple.svg diff --git a/applications-two-day/images/ks-threads-blocks-grids.jpeg b/images/ks-threads-blocks-grids.jpeg similarity index 100% rename from applications-two-day/images/ks-threads-blocks-grids.jpeg rename to images/ks-threads-blocks-grids.jpeg diff --git a/applications-two-day/images/ks-threads-blocks.jpeg b/images/ks-threads-blocks.jpeg similarity index 100% rename from applications-two-day/images/ks-threads-blocks.jpeg rename to images/ks-threads-blocks.jpeg diff --git a/applications-two-day/images/ks-threads.jpeg b/images/ks-threads.jpeg similarity index 100% rename from applications-two-day/images/ks-threads.jpeg rename to images/ks-threads.jpeg diff --git a/one-day/README.md b/one-day/README.md new file mode 100644 index 0000000..24ad4ea --- /dev/null +++ b/one-day/README.md @@ -0,0 +1,28 @@ +# ARCHER Introduction to GPU Programming + +This repository contains both the slides and the exercise material +for ARCHER and Cirrus Introdution to GPU Programming Course. + +ARCHER is the United Kingdom National Supercomputing service +http://www.archer.ac.uk/ + +Cirrus is a United Kingdom Tier2 service https://www.cirrus.ac.uk + +The latest slides for the lecture content are available at: + +https://epcced.github.io/archer-gpu-course/ + +The slides are built using [reveal.js](https://github.com/hakimel/reveal.js). + +If you would like to save a pdf copy of the slides, please follow the +instructions at https://github.com/hakimel/reveal.js/#pdf-export + + +#### License + +Slides are available under a Creative Commons license. + +Other material is Copyright (c) EPCC, The University of Edinburgh, unless +otherwise stated. + +Kokkos exercises are based on Tutorial material by Sandia and are (c) Sandia. diff --git a/css/local.css b/one-day/css/local.css similarity index 100% rename from css/local.css rename to one-day/css/local.css diff --git a/css/print/paper.css b/one-day/css/print/paper.css similarity index 100% rename from css/print/paper.css rename to one-day/css/print/paper.css diff --git a/css/print/pdf.css b/one-day/css/print/pdf.css similarity index 100% rename from css/print/pdf.css rename to one-day/css/print/pdf.css diff --git a/css/reveal.scss b/one-day/css/reveal.scss similarity index 100% rename from css/reveal.scss rename to one-day/css/reveal.scss diff --git a/css/theme/README.md b/one-day/css/theme/README.md similarity index 100% rename from css/theme/README.md rename to one-day/css/theme/README.md diff --git a/css/theme/beige.css b/one-day/css/theme/beige.css similarity index 100% rename from css/theme/beige.css rename to one-day/css/theme/beige.css diff --git a/css/theme/black.css b/one-day/css/theme/black.css similarity index 100% rename from css/theme/black.css rename to one-day/css/theme/black.css diff --git a/css/theme/blood.css b/one-day/css/theme/blood.css similarity index 100% rename from css/theme/blood.css rename to one-day/css/theme/blood.css diff --git a/css/theme/league.css b/one-day/css/theme/league.css similarity index 100% rename from css/theme/league.css rename to one-day/css/theme/league.css diff --git a/css/theme/moon.css b/one-day/css/theme/moon.css similarity index 100% rename from css/theme/moon.css rename to one-day/css/theme/moon.css diff --git a/css/theme/night.css b/one-day/css/theme/night.css similarity index 100% rename from css/theme/night.css rename to one-day/css/theme/night.css diff --git a/css/theme/serif.css b/one-day/css/theme/serif.css similarity index 100% rename from css/theme/serif.css rename to one-day/css/theme/serif.css diff --git a/css/theme/simple.css b/one-day/css/theme/simple.css similarity index 100% rename from css/theme/simple.css rename to one-day/css/theme/simple.css diff --git a/css/theme/sky.css b/one-day/css/theme/sky.css similarity index 100% rename from css/theme/sky.css rename to one-day/css/theme/sky.css diff --git a/css/theme/solarized.css b/one-day/css/theme/solarized.css similarity index 100% rename from css/theme/solarized.css rename to one-day/css/theme/solarized.css diff --git a/css/theme/source/beige.scss b/one-day/css/theme/source/beige.scss similarity index 100% rename from css/theme/source/beige.scss rename to one-day/css/theme/source/beige.scss diff --git a/css/theme/source/black.scss b/one-day/css/theme/source/black.scss similarity index 100% rename from css/theme/source/black.scss rename to one-day/css/theme/source/black.scss diff --git a/css/theme/source/blood.scss b/one-day/css/theme/source/blood.scss similarity index 100% rename from css/theme/source/blood.scss rename to one-day/css/theme/source/blood.scss diff --git a/css/theme/source/league.scss b/one-day/css/theme/source/league.scss similarity index 100% rename from css/theme/source/league.scss rename to one-day/css/theme/source/league.scss diff --git a/css/theme/source/moon.scss b/one-day/css/theme/source/moon.scss similarity index 100% rename from css/theme/source/moon.scss rename to one-day/css/theme/source/moon.scss diff --git a/css/theme/source/night.scss b/one-day/css/theme/source/night.scss similarity index 100% rename from css/theme/source/night.scss rename to one-day/css/theme/source/night.scss diff --git a/css/theme/source/serif.scss b/one-day/css/theme/source/serif.scss similarity index 100% rename from css/theme/source/serif.scss rename to one-day/css/theme/source/serif.scss diff --git a/css/theme/source/simple.scss b/one-day/css/theme/source/simple.scss similarity index 100% rename from css/theme/source/simple.scss rename to one-day/css/theme/source/simple.scss diff --git a/css/theme/source/sky.scss b/one-day/css/theme/source/sky.scss similarity index 100% rename from css/theme/source/sky.scss rename to one-day/css/theme/source/sky.scss diff --git a/css/theme/source/solarized.scss b/one-day/css/theme/source/solarized.scss similarity index 100% rename from css/theme/source/solarized.scss rename to one-day/css/theme/source/solarized.scss diff --git a/css/theme/source/white.scss b/one-day/css/theme/source/white.scss similarity index 100% rename from css/theme/source/white.scss rename to one-day/css/theme/source/white.scss diff --git a/css/theme/template/mixins.scss b/one-day/css/theme/template/mixins.scss similarity index 100% rename from css/theme/template/mixins.scss rename to one-day/css/theme/template/mixins.scss diff --git a/css/theme/template/settings.scss b/one-day/css/theme/template/settings.scss similarity index 100% rename from css/theme/template/settings.scss rename to one-day/css/theme/template/settings.scss diff --git a/css/theme/template/theme.scss b/one-day/css/theme/template/theme.scss similarity index 100% rename from css/theme/template/theme.scss rename to one-day/css/theme/template/theme.scss diff --git a/dist/reset.css b/one-day/dist/reset.css similarity index 100% rename from dist/reset.css rename to one-day/dist/reset.css diff --git a/dist/reveal.css b/one-day/dist/reveal.css similarity index 100% rename from dist/reveal.css rename to one-day/dist/reveal.css diff --git a/dist/reveal.esm.js b/one-day/dist/reveal.esm.js similarity index 100% rename from dist/reveal.esm.js rename to one-day/dist/reveal.esm.js diff --git a/dist/reveal.esm.js.map b/one-day/dist/reveal.esm.js.map similarity index 100% rename from dist/reveal.esm.js.map rename to one-day/dist/reveal.esm.js.map diff --git a/dist/reveal.js b/one-day/dist/reveal.js similarity index 100% rename from dist/reveal.js rename to one-day/dist/reveal.js diff --git a/dist/reveal.js.map b/one-day/dist/reveal.js.map similarity index 100% rename from dist/reveal.js.map rename to one-day/dist/reveal.js.map diff --git a/dist/theme/white.css b/one-day/dist/theme/white.css similarity index 100% rename from dist/theme/white.css rename to one-day/dist/theme/white.css diff --git a/exercises/cuda-intro/README.md b/one-day/exercises/cuda-intro/README.md similarity index 100% rename from exercises/cuda-intro/README.md rename to one-day/exercises/cuda-intro/README.md diff --git a/exercises/cuda-intro/intro.ipynb b/one-day/exercises/cuda-intro/intro.ipynb similarity index 100% rename from exercises/cuda-intro/intro.ipynb rename to one-day/exercises/cuda-intro/intro.ipynb diff --git a/exercises/cuda-intro/src_c/Makefile b/one-day/exercises/cuda-intro/src_c/Makefile similarity index 100% rename from exercises/cuda-intro/src_c/Makefile rename to one-day/exercises/cuda-intro/src_c/Makefile diff --git a/exercises/cuda-intro/src_c/intro.cu b/one-day/exercises/cuda-intro/src_c/intro.cu similarity index 100% rename from exercises/cuda-intro/src_c/intro.cu rename to one-day/exercises/cuda-intro/src_c/intro.cu diff --git a/exercises/cuda-intro/src_c/solution/Makefile b/one-day/exercises/cuda-intro/src_c/solution/Makefile similarity index 100% rename from exercises/cuda-intro/src_c/solution/Makefile rename to one-day/exercises/cuda-intro/src_c/solution/Makefile diff --git a/exercises/cuda-intro/src_c/solution/intro.cu b/one-day/exercises/cuda-intro/src_c/solution/intro.cu similarity index 100% rename from exercises/cuda-intro/src_c/solution/intro.cu rename to one-day/exercises/cuda-intro/src_c/solution/intro.cu diff --git a/exercises/cuda-intro/src_c/submit.sh b/one-day/exercises/cuda-intro/src_c/submit.sh similarity index 100% rename from exercises/cuda-intro/src_c/submit.sh rename to one-day/exercises/cuda-intro/src_c/submit.sh diff --git a/exercises/cuda-intro/src_fortran/Makefile b/one-day/exercises/cuda-intro/src_fortran/Makefile similarity index 100% rename from exercises/cuda-intro/src_fortran/Makefile rename to one-day/exercises/cuda-intro/src_fortran/Makefile diff --git a/exercises/cuda-intro/src_fortran/gpu_utils.cuf b/one-day/exercises/cuda-intro/src_fortran/gpu_utils.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/gpu_utils.cuf rename to one-day/exercises/cuda-intro/src_fortran/gpu_utils.cuf diff --git a/exercises/cuda-intro/src_fortran/intro.cuf b/one-day/exercises/cuda-intro/src_fortran/intro.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/intro.cuf rename to one-day/exercises/cuda-intro/src_fortran/intro.cuf diff --git a/exercises/cuda-intro/src_fortran/scale_vector.cuf b/one-day/exercises/cuda-intro/src_fortran/scale_vector.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/scale_vector.cuf rename to one-day/exercises/cuda-intro/src_fortran/scale_vector.cuf diff --git a/exercises/cuda-intro/src_fortran/solution/Makefile b/one-day/exercises/cuda-intro/src_fortran/solution/Makefile similarity index 100% rename from exercises/cuda-intro/src_fortran/solution/Makefile rename to one-day/exercises/cuda-intro/src_fortran/solution/Makefile diff --git a/exercises/cuda-intro/src_fortran/solution/gpu_utils.cuf b/one-day/exercises/cuda-intro/src_fortran/solution/gpu_utils.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/solution/gpu_utils.cuf rename to one-day/exercises/cuda-intro/src_fortran/solution/gpu_utils.cuf diff --git a/exercises/cuda-intro/src_fortran/solution/intro.cuf b/one-day/exercises/cuda-intro/src_fortran/solution/intro.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/solution/intro.cuf rename to one-day/exercises/cuda-intro/src_fortran/solution/intro.cuf diff --git a/exercises/cuda-intro/src_fortran/solution/scale_vector.cuf b/one-day/exercises/cuda-intro/src_fortran/solution/scale_vector.cuf similarity index 100% rename from exercises/cuda-intro/src_fortran/solution/scale_vector.cuf rename to one-day/exercises/cuda-intro/src_fortran/solution/scale_vector.cuf diff --git a/exercises/cuda-intro/src_fortran/submit.sh b/one-day/exercises/cuda-intro/src_fortran/submit.sh similarity index 100% rename from exercises/cuda-intro/src_fortran/submit.sh rename to one-day/exercises/cuda-intro/src_fortran/submit.sh diff --git a/exercises/cuda-intro/src_py/intro.py b/one-day/exercises/cuda-intro/src_py/intro.py similarity index 100% rename from exercises/cuda-intro/src_py/intro.py rename to one-day/exercises/cuda-intro/src_py/intro.py diff --git a/exercises/cuda-intro/src_py/solution/intro.py b/one-day/exercises/cuda-intro/src_py/solution/intro.py similarity index 100% rename from exercises/cuda-intro/src_py/solution/intro.py rename to one-day/exercises/cuda-intro/src_py/solution/intro.py diff --git a/exercises/cuda-intro/src_py/solution/submit.sh b/one-day/exercises/cuda-intro/src_py/solution/submit.sh similarity index 100% rename from exercises/cuda-intro/src_py/solution/submit.sh rename to one-day/exercises/cuda-intro/src_py/solution/submit.sh diff --git a/exercises/cuda-intro/src_py/submit.sh b/one-day/exercises/cuda-intro/src_py/submit.sh similarity index 100% rename from exercises/cuda-intro/src_py/submit.sh rename to one-day/exercises/cuda-intro/src_py/submit.sh diff --git a/exercises/cuda-memory/Makefile b/one-day/exercises/cuda-memory/Makefile similarity index 100% rename from exercises/cuda-memory/Makefile rename to one-day/exercises/cuda-memory/Makefile diff --git a/exercises/cuda-memory/README.md b/one-day/exercises/cuda-memory/README.md similarity index 100% rename from exercises/cuda-memory/README.md rename to one-day/exercises/cuda-memory/README.md diff --git a/exercises/cuda-memory/cuda-memory-shared.ipynb b/one-day/exercises/cuda-memory/cuda-memory-shared.ipynb similarity index 100% rename from exercises/cuda-memory/cuda-memory-shared.ipynb rename to one-day/exercises/cuda-memory/cuda-memory-shared.ipynb diff --git a/exercises/cuda-memory/src_c/Makefile b/one-day/exercises/cuda-memory/src_c/Makefile similarity index 100% rename from exercises/cuda-memory/src_c/Makefile rename to one-day/exercises/cuda-memory/src_c/Makefile diff --git a/exercises/cuda-memory/src_c/reverse.cu b/one-day/exercises/cuda-memory/src_c/reverse.cu similarity index 100% rename from exercises/cuda-memory/src_c/reverse.cu rename to one-day/exercises/cuda-memory/src_c/reverse.cu diff --git a/exercises/cuda-memory/src_c/solution/Makefile b/one-day/exercises/cuda-memory/src_c/solution/Makefile similarity index 100% rename from exercises/cuda-memory/src_c/solution/Makefile rename to one-day/exercises/cuda-memory/src_c/solution/Makefile diff --git a/exercises/cuda-memory/src_c/solution/reverse.cu b/one-day/exercises/cuda-memory/src_c/solution/reverse.cu similarity index 100% rename from exercises/cuda-memory/src_c/solution/reverse.cu rename to one-day/exercises/cuda-memory/src_c/solution/reverse.cu diff --git a/exercises/cuda-memory/src_c/submit.sh b/one-day/exercises/cuda-memory/src_c/submit.sh similarity index 100% rename from exercises/cuda-memory/src_c/submit.sh rename to one-day/exercises/cuda-memory/src_c/submit.sh diff --git a/exercises/cuda-memory/src_fortran/Makefile b/one-day/exercises/cuda-memory/src_fortran/Makefile similarity index 100% rename from exercises/cuda-memory/src_fortran/Makefile rename to one-day/exercises/cuda-memory/src_fortran/Makefile diff --git a/exercises/cuda-memory/src_fortran/gpu_utils.cuf b/one-day/exercises/cuda-memory/src_fortran/gpu_utils.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/gpu_utils.cuf rename to one-day/exercises/cuda-memory/src_fortran/gpu_utils.cuf diff --git a/exercises/cuda-memory/src_fortran/reverse.cuf b/one-day/exercises/cuda-memory/src_fortran/reverse.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/reverse.cuf rename to one-day/exercises/cuda-memory/src_fortran/reverse.cuf diff --git a/exercises/cuda-memory/src_fortran/reverse_kernel.cuf b/one-day/exercises/cuda-memory/src_fortran/reverse_kernel.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/reverse_kernel.cuf rename to one-day/exercises/cuda-memory/src_fortran/reverse_kernel.cuf diff --git a/exercises/cuda-memory/src_fortran/solution/Makefile b/one-day/exercises/cuda-memory/src_fortran/solution/Makefile similarity index 100% rename from exercises/cuda-memory/src_fortran/solution/Makefile rename to one-day/exercises/cuda-memory/src_fortran/solution/Makefile diff --git a/exercises/cuda-memory/src_fortran/solution/gpu_utils.cuf b/one-day/exercises/cuda-memory/src_fortran/solution/gpu_utils.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/solution/gpu_utils.cuf rename to one-day/exercises/cuda-memory/src_fortran/solution/gpu_utils.cuf diff --git a/exercises/cuda-memory/src_fortran/solution/reverse.cuf b/one-day/exercises/cuda-memory/src_fortran/solution/reverse.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/solution/reverse.cuf rename to one-day/exercises/cuda-memory/src_fortran/solution/reverse.cuf diff --git a/exercises/cuda-memory/src_fortran/solution/reverse_kernel.cuf b/one-day/exercises/cuda-memory/src_fortran/solution/reverse_kernel.cuf similarity index 100% rename from exercises/cuda-memory/src_fortran/solution/reverse_kernel.cuf rename to one-day/exercises/cuda-memory/src_fortran/solution/reverse_kernel.cuf diff --git a/exercises/cuda-memory/src_fortran/submit.sh b/one-day/exercises/cuda-memory/src_fortran/submit.sh similarity index 100% rename from exercises/cuda-memory/src_fortran/submit.sh rename to one-day/exercises/cuda-memory/src_fortran/submit.sh diff --git a/exercises/cuda-optimise/README.md b/one-day/exercises/cuda-optimise/README.md similarity index 100% rename from exercises/cuda-optimise/README.md rename to one-day/exercises/cuda-optimise/README.md diff --git a/exercises/cuda-optimise/images/EDINB00034_2048x2048.jpg b/one-day/exercises/cuda-optimise/images/EDINB00034_2048x2048.jpg similarity index 100% rename from exercises/cuda-optimise/images/EDINB00034_2048x2048.jpg rename to one-day/exercises/cuda-optimise/images/EDINB00034_2048x2048.jpg diff --git a/exercises/cuda-optimise/images/input.jpeg b/one-day/exercises/cuda-optimise/images/input.jpeg similarity index 100% rename from exercises/cuda-optimise/images/input.jpeg rename to one-day/exercises/cuda-optimise/images/input.jpeg diff --git a/exercises/cuda-optimise/images/output10M.jpeg b/one-day/exercises/cuda-optimise/images/output10M.jpeg similarity index 100% rename from exercises/cuda-optimise/images/output10M.jpeg rename to one-day/exercises/cuda-optimise/images/output10M.jpeg diff --git a/exercises/cuda-optimise/reconstruct.ipynb b/one-day/exercises/cuda-optimise/reconstruct.ipynb similarity index 100% rename from exercises/cuda-optimise/reconstruct.ipynb rename to one-day/exercises/cuda-optimise/reconstruct.ipynb diff --git a/exercises/cuda-optimise/src_c/Makefile b/one-day/exercises/cuda-optimise/src_c/Makefile similarity index 100% rename from exercises/cuda-optimise/src_c/Makefile rename to one-day/exercises/cuda-optimise/src_c/Makefile diff --git a/exercises/cuda-optimise/src_c/edge2048x2048.dat b/one-day/exercises/cuda-optimise/src_c/edge2048x2048.dat similarity index 100% rename from exercises/cuda-optimise/src_c/edge2048x2048.dat rename to one-day/exercises/cuda-optimise/src_c/edge2048x2048.dat diff --git a/exercises/cuda-optimise/src_c/reconstruct.cu b/one-day/exercises/cuda-optimise/src_c/reconstruct.cu similarity index 100% rename from exercises/cuda-optimise/src_c/reconstruct.cu rename to one-day/exercises/cuda-optimise/src_c/reconstruct.cu diff --git a/exercises/cuda-optimise/src_c/reconstruct.h b/one-day/exercises/cuda-optimise/src_c/reconstruct.h similarity index 100% rename from exercises/cuda-optimise/src_c/reconstruct.h rename to one-day/exercises/cuda-optimise/src_c/reconstruct.h diff --git a/exercises/cuda-optimise/src_c/reconstruct_kernels.cu b/one-day/exercises/cuda-optimise/src_c/reconstruct_kernels.cu similarity index 100% rename from exercises/cuda-optimise/src_c/reconstruct_kernels.cu rename to one-day/exercises/cuda-optimise/src_c/reconstruct_kernels.cu diff --git a/exercises/cuda-optimise/src_c/solution/Makefile b/one-day/exercises/cuda-optimise/src_c/solution/Makefile similarity index 100% rename from exercises/cuda-optimise/src_c/solution/Makefile rename to one-day/exercises/cuda-optimise/src_c/solution/Makefile diff --git a/exercises/cuda-optimise/src_c/solution/edge2048x2048.dat b/one-day/exercises/cuda-optimise/src_c/solution/edge2048x2048.dat similarity index 100% rename from exercises/cuda-optimise/src_c/solution/edge2048x2048.dat rename to one-day/exercises/cuda-optimise/src_c/solution/edge2048x2048.dat diff --git a/exercises/cuda-optimise/src_c/solution/reconstruct.cu b/one-day/exercises/cuda-optimise/src_c/solution/reconstruct.cu similarity index 100% rename from exercises/cuda-optimise/src_c/solution/reconstruct.cu rename to one-day/exercises/cuda-optimise/src_c/solution/reconstruct.cu diff --git a/exercises/cuda-optimise/src_c/solution/reconstruct.h b/one-day/exercises/cuda-optimise/src_c/solution/reconstruct.h similarity index 100% rename from exercises/cuda-optimise/src_c/solution/reconstruct.h rename to one-day/exercises/cuda-optimise/src_c/solution/reconstruct.h diff --git a/exercises/cuda-optimise/src_c/solution/reconstruct_kernels.cu b/one-day/exercises/cuda-optimise/src_c/solution/reconstruct_kernels.cu similarity index 100% rename from exercises/cuda-optimise/src_c/solution/reconstruct_kernels.cu rename to one-day/exercises/cuda-optimise/src_c/solution/reconstruct_kernels.cu diff --git a/exercises/cuda-optimise/src_c/solution/utilities.cu b/one-day/exercises/cuda-optimise/src_c/solution/utilities.cu similarity index 100% rename from exercises/cuda-optimise/src_c/solution/utilities.cu rename to one-day/exercises/cuda-optimise/src_c/solution/utilities.cu diff --git a/exercises/cuda-optimise/src_c/submit.sh b/one-day/exercises/cuda-optimise/src_c/submit.sh similarity index 100% rename from exercises/cuda-optimise/src_c/submit.sh rename to one-day/exercises/cuda-optimise/src_c/submit.sh diff --git a/exercises/cuda-optimise/src_c/utilities.cu b/one-day/exercises/cuda-optimise/src_c/utilities.cu similarity index 100% rename from exercises/cuda-optimise/src_c/utilities.cu rename to one-day/exercises/cuda-optimise/src_c/utilities.cu diff --git a/exercises/cuda-optimise/src_fortran/Makefile b/one-day/exercises/cuda-optimise/src_fortran/Makefile similarity index 100% rename from exercises/cuda-optimise/src_fortran/Makefile rename to one-day/exercises/cuda-optimise/src_fortran/Makefile diff --git a/exercises/cuda-optimise/src_fortran/edge2048x2048.dat b/one-day/exercises/cuda-optimise/src_fortran/edge2048x2048.dat similarity index 100% rename from exercises/cuda-optimise/src_fortran/edge2048x2048.dat rename to one-day/exercises/cuda-optimise/src_fortran/edge2048x2048.dat diff --git a/exercises/cuda-optimise/src_fortran/reconstruct.cuf b/one-day/exercises/cuda-optimise/src_fortran/reconstruct.cuf similarity index 100% rename from exercises/cuda-optimise/src_fortran/reconstruct.cuf rename to one-day/exercises/cuda-optimise/src_fortran/reconstruct.cuf diff --git a/exercises/cuda-optimise/src_fortran/reconstruct_kernels.cuf b/one-day/exercises/cuda-optimise/src_fortran/reconstruct_kernels.cuf similarity index 100% rename from exercises/cuda-optimise/src_fortran/reconstruct_kernels.cuf rename to one-day/exercises/cuda-optimise/src_fortran/reconstruct_kernels.cuf diff --git a/exercises/cuda-optimise/src_fortran/solution/Makefile b/one-day/exercises/cuda-optimise/src_fortran/solution/Makefile similarity index 100% rename from exercises/cuda-optimise/src_fortran/solution/Makefile rename to one-day/exercises/cuda-optimise/src_fortran/solution/Makefile diff --git a/exercises/cuda-optimise/src_fortran/solution/reconstruct.cuf b/one-day/exercises/cuda-optimise/src_fortran/solution/reconstruct.cuf similarity index 100% rename from exercises/cuda-optimise/src_fortran/solution/reconstruct.cuf rename to one-day/exercises/cuda-optimise/src_fortran/solution/reconstruct.cuf diff --git a/exercises/cuda-optimise/src_fortran/solution/reconstruct_kernels.cuf b/one-day/exercises/cuda-optimise/src_fortran/solution/reconstruct_kernels.cuf similarity index 100% rename from exercises/cuda-optimise/src_fortran/solution/reconstruct_kernels.cuf rename to one-day/exercises/cuda-optimise/src_fortran/solution/reconstruct_kernels.cuf diff --git a/exercises/cuda-optimise/src_fortran/submit.sh b/one-day/exercises/cuda-optimise/src_fortran/submit.sh similarity index 100% rename from exercises/cuda-optimise/src_fortran/submit.sh rename to one-day/exercises/cuda-optimise/src_fortran/submit.sh diff --git a/exercises/cuda-reduce/Makefile b/one-day/exercises/cuda-reduce/Makefile similarity index 100% rename from exercises/cuda-reduce/Makefile rename to one-day/exercises/cuda-reduce/Makefile diff --git a/exercises/cuda-reduce/README.md b/one-day/exercises/cuda-reduce/README.md similarity index 100% rename from exercises/cuda-reduce/README.md rename to one-day/exercises/cuda-reduce/README.md diff --git a/exercises/cuda-reduce/solution/Makefile b/one-day/exercises/cuda-reduce/solution/Makefile similarity index 100% rename from exercises/cuda-reduce/solution/Makefile rename to one-day/exercises/cuda-reduce/solution/Makefile diff --git a/exercises/cuda-reduce/solution/submit.sh b/one-day/exercises/cuda-reduce/solution/submit.sh similarity index 100% rename from exercises/cuda-reduce/solution/submit.sh rename to one-day/exercises/cuda-reduce/solution/submit.sh diff --git a/exercises/cuda-reduce/solution/vector-product.cu b/one-day/exercises/cuda-reduce/solution/vector-product.cu similarity index 100% rename from exercises/cuda-reduce/solution/vector-product.cu rename to one-day/exercises/cuda-reduce/solution/vector-product.cu diff --git a/exercises/cuda-reduce/submit.sh b/one-day/exercises/cuda-reduce/submit.sh similarity index 100% rename from exercises/cuda-reduce/submit.sh rename to one-day/exercises/cuda-reduce/submit.sh diff --git a/exercises/cuda-reduce/vector-product.cu b/one-day/exercises/cuda-reduce/vector-product.cu similarity index 100% rename from exercises/cuda-reduce/vector-product.cu rename to one-day/exercises/cuda-reduce/vector-product.cu diff --git a/exercises/kokkos/.gitignore b/one-day/exercises/kokkos/.gitignore similarity index 100% rename from exercises/kokkos/.gitignore rename to one-day/exercises/kokkos/.gitignore diff --git a/exercises/kokkos/1/01_Exercise.mk b/one-day/exercises/kokkos/1/01_Exercise.mk similarity index 100% rename from exercises/kokkos/1/01_Exercise.mk rename to one-day/exercises/kokkos/1/01_Exercise.mk diff --git a/exercises/kokkos/1/Makefile b/one-day/exercises/kokkos/1/Makefile similarity index 100% rename from exercises/kokkos/1/Makefile rename to one-day/exercises/kokkos/1/Makefile diff --git a/exercises/kokkos/1/OpenMP.mk b/one-day/exercises/kokkos/1/OpenMP.mk similarity index 100% rename from exercises/kokkos/1/OpenMP.mk rename to one-day/exercises/kokkos/1/OpenMP.mk diff --git a/exercises/kokkos/1/exercise_1_begin.cpp b/one-day/exercises/kokkos/1/exercise_1_begin.cpp similarity index 100% rename from exercises/kokkos/1/exercise_1_begin.cpp rename to one-day/exercises/kokkos/1/exercise_1_begin.cpp diff --git a/exercises/kokkos/1/solution/01_Exercise.mk b/one-day/exercises/kokkos/1/solution/01_Exercise.mk similarity index 100% rename from exercises/kokkos/1/solution/01_Exercise.mk rename to one-day/exercises/kokkos/1/solution/01_Exercise.mk diff --git a/exercises/kokkos/1/solution/Makefile b/one-day/exercises/kokkos/1/solution/Makefile similarity index 100% rename from exercises/kokkos/1/solution/Makefile rename to one-day/exercises/kokkos/1/solution/Makefile diff --git a/exercises/kokkos/1/solution/OpenMP.mk b/one-day/exercises/kokkos/1/solution/OpenMP.mk similarity index 100% rename from exercises/kokkos/1/solution/OpenMP.mk rename to one-day/exercises/kokkos/1/solution/OpenMP.mk diff --git a/exercises/kokkos/1/solution/exercise_1_solution.cpp b/one-day/exercises/kokkos/1/solution/exercise_1_solution.cpp similarity index 100% rename from exercises/kokkos/1/solution/exercise_1_solution.cpp rename to one-day/exercises/kokkos/1/solution/exercise_1_solution.cpp diff --git a/exercises/kokkos/1/solution/submit.sh b/one-day/exercises/kokkos/1/solution/submit.sh similarity index 100% rename from exercises/kokkos/1/solution/submit.sh rename to one-day/exercises/kokkos/1/solution/submit.sh diff --git a/exercises/kokkos/1/submit.sh b/one-day/exercises/kokkos/1/submit.sh similarity index 100% rename from exercises/kokkos/1/submit.sh rename to one-day/exercises/kokkos/1/submit.sh diff --git a/exercises/kokkos/2/02_Exercise.mk b/one-day/exercises/kokkos/2/02_Exercise.mk similarity index 100% rename from exercises/kokkos/2/02_Exercise.mk rename to one-day/exercises/kokkos/2/02_Exercise.mk diff --git a/exercises/kokkos/2/CudaUVM.mk b/one-day/exercises/kokkos/2/CudaUVM.mk similarity index 100% rename from exercises/kokkos/2/CudaUVM.mk rename to one-day/exercises/kokkos/2/CudaUVM.mk diff --git a/exercises/kokkos/2/Makefile b/one-day/exercises/kokkos/2/Makefile similarity index 100% rename from exercises/kokkos/2/Makefile rename to one-day/exercises/kokkos/2/Makefile diff --git a/exercises/kokkos/2/OpenMP.mk b/one-day/exercises/kokkos/2/OpenMP.mk similarity index 100% rename from exercises/kokkos/2/OpenMP.mk rename to one-day/exercises/kokkos/2/OpenMP.mk diff --git a/exercises/kokkos/2/exercise_2_begin.cpp b/one-day/exercises/kokkos/2/exercise_2_begin.cpp similarity index 100% rename from exercises/kokkos/2/exercise_2_begin.cpp rename to one-day/exercises/kokkos/2/exercise_2_begin.cpp diff --git a/exercises/kokkos/2/solution/02_Exercise.mk b/one-day/exercises/kokkos/2/solution/02_Exercise.mk similarity index 100% rename from exercises/kokkos/2/solution/02_Exercise.mk rename to one-day/exercises/kokkos/2/solution/02_Exercise.mk diff --git a/exercises/kokkos/2/solution/CudaUVM.mk b/one-day/exercises/kokkos/2/solution/CudaUVM.mk similarity index 100% rename from exercises/kokkos/2/solution/CudaUVM.mk rename to one-day/exercises/kokkos/2/solution/CudaUVM.mk diff --git a/exercises/kokkos/2/solution/Makefile b/one-day/exercises/kokkos/2/solution/Makefile similarity index 100% rename from exercises/kokkos/2/solution/Makefile rename to one-day/exercises/kokkos/2/solution/Makefile diff --git a/exercises/kokkos/2/solution/OpenMP.mk b/one-day/exercises/kokkos/2/solution/OpenMP.mk similarity index 100% rename from exercises/kokkos/2/solution/OpenMP.mk rename to one-day/exercises/kokkos/2/solution/OpenMP.mk diff --git a/exercises/kokkos/2/solution/exercise_2_solution.cpp b/one-day/exercises/kokkos/2/solution/exercise_2_solution.cpp similarity index 100% rename from exercises/kokkos/2/solution/exercise_2_solution.cpp rename to one-day/exercises/kokkos/2/solution/exercise_2_solution.cpp diff --git a/exercises/kokkos/2/solution/submit.sh b/one-day/exercises/kokkos/2/solution/submit.sh similarity index 100% rename from exercises/kokkos/2/solution/submit.sh rename to one-day/exercises/kokkos/2/solution/submit.sh diff --git a/exercises/kokkos/2/submit.sh b/one-day/exercises/kokkos/2/submit.sh similarity index 100% rename from exercises/kokkos/2/submit.sh rename to one-day/exercises/kokkos/2/submit.sh diff --git a/exercises/kokkos/3/03_Exercise.mk b/one-day/exercises/kokkos/3/03_Exercise.mk similarity index 100% rename from exercises/kokkos/3/03_Exercise.mk rename to one-day/exercises/kokkos/3/03_Exercise.mk diff --git a/exercises/kokkos/3/Cuda.mk b/one-day/exercises/kokkos/3/Cuda.mk similarity index 100% rename from exercises/kokkos/3/Cuda.mk rename to one-day/exercises/kokkos/3/Cuda.mk diff --git a/exercises/kokkos/3/Makefile b/one-day/exercises/kokkos/3/Makefile similarity index 100% rename from exercises/kokkos/3/Makefile rename to one-day/exercises/kokkos/3/Makefile diff --git a/exercises/kokkos/3/OpenMP.mk b/one-day/exercises/kokkos/3/OpenMP.mk similarity index 100% rename from exercises/kokkos/3/OpenMP.mk rename to one-day/exercises/kokkos/3/OpenMP.mk diff --git a/exercises/kokkos/3/exercise_3_begin.cpp b/one-day/exercises/kokkos/3/exercise_3_begin.cpp similarity index 100% rename from exercises/kokkos/3/exercise_3_begin.cpp rename to one-day/exercises/kokkos/3/exercise_3_begin.cpp diff --git a/exercises/kokkos/3/solution/03_Exercise.mk b/one-day/exercises/kokkos/3/solution/03_Exercise.mk similarity index 100% rename from exercises/kokkos/3/solution/03_Exercise.mk rename to one-day/exercises/kokkos/3/solution/03_Exercise.mk diff --git a/exercises/kokkos/3/solution/Cuda.mk b/one-day/exercises/kokkos/3/solution/Cuda.mk similarity index 100% rename from exercises/kokkos/3/solution/Cuda.mk rename to one-day/exercises/kokkos/3/solution/Cuda.mk diff --git a/exercises/kokkos/3/solution/Makefile b/one-day/exercises/kokkos/3/solution/Makefile similarity index 100% rename from exercises/kokkos/3/solution/Makefile rename to one-day/exercises/kokkos/3/solution/Makefile diff --git a/exercises/kokkos/3/solution/OpenMP.mk b/one-day/exercises/kokkos/3/solution/OpenMP.mk similarity index 100% rename from exercises/kokkos/3/solution/OpenMP.mk rename to one-day/exercises/kokkos/3/solution/OpenMP.mk diff --git a/exercises/kokkos/3/solution/exercise_3_solution.cpp b/one-day/exercises/kokkos/3/solution/exercise_3_solution.cpp similarity index 100% rename from exercises/kokkos/3/solution/exercise_3_solution.cpp rename to one-day/exercises/kokkos/3/solution/exercise_3_solution.cpp diff --git a/exercises/kokkos/3/solution/submit.sh b/one-day/exercises/kokkos/3/solution/submit.sh similarity index 100% rename from exercises/kokkos/3/solution/submit.sh rename to one-day/exercises/kokkos/3/solution/submit.sh diff --git a/exercises/kokkos/3/submit.sh b/one-day/exercises/kokkos/3/submit.sh similarity index 100% rename from exercises/kokkos/3/submit.sh rename to one-day/exercises/kokkos/3/submit.sh diff --git a/exercises/kokkos/4/04_Exercise.mk b/one-day/exercises/kokkos/4/04_Exercise.mk similarity index 100% rename from exercises/kokkos/4/04_Exercise.mk rename to one-day/exercises/kokkos/4/04_Exercise.mk diff --git a/exercises/kokkos/4/Any.mk b/one-day/exercises/kokkos/4/Any.mk similarity index 100% rename from exercises/kokkos/4/Any.mk rename to one-day/exercises/kokkos/4/Any.mk diff --git a/exercises/kokkos/4/Makefile b/one-day/exercises/kokkos/4/Makefile similarity index 100% rename from exercises/kokkos/4/Makefile rename to one-day/exercises/kokkos/4/Makefile diff --git a/exercises/kokkos/4/exercise_4_begin.cpp b/one-day/exercises/kokkos/4/exercise_4_begin.cpp similarity index 100% rename from exercises/kokkos/4/exercise_4_begin.cpp rename to one-day/exercises/kokkos/4/exercise_4_begin.cpp diff --git a/exercises/kokkos/4/solution/04_Exercise.mk b/one-day/exercises/kokkos/4/solution/04_Exercise.mk similarity index 100% rename from exercises/kokkos/4/solution/04_Exercise.mk rename to one-day/exercises/kokkos/4/solution/04_Exercise.mk diff --git a/exercises/kokkos/4/solution/Any.mk b/one-day/exercises/kokkos/4/solution/Any.mk similarity index 100% rename from exercises/kokkos/4/solution/Any.mk rename to one-day/exercises/kokkos/4/solution/Any.mk diff --git a/exercises/kokkos/4/solution/Makefile b/one-day/exercises/kokkos/4/solution/Makefile similarity index 100% rename from exercises/kokkos/4/solution/Makefile rename to one-day/exercises/kokkos/4/solution/Makefile diff --git a/exercises/kokkos/4/solution/exercise_4_solution.cpp b/one-day/exercises/kokkos/4/solution/exercise_4_solution.cpp similarity index 100% rename from exercises/kokkos/4/solution/exercise_4_solution.cpp rename to one-day/exercises/kokkos/4/solution/exercise_4_solution.cpp diff --git a/exercises/kokkos/4/solution/submit.sh b/one-day/exercises/kokkos/4/solution/submit.sh similarity index 100% rename from exercises/kokkos/4/solution/submit.sh rename to one-day/exercises/kokkos/4/solution/submit.sh diff --git a/exercises/kokkos/4/submit.sh b/one-day/exercises/kokkos/4/submit.sh similarity index 100% rename from exercises/kokkos/4/submit.sh rename to one-day/exercises/kokkos/4/submit.sh diff --git a/exercises/kokkos/README.md b/one-day/exercises/kokkos/README.md similarity index 100% rename from exercises/kokkos/README.md rename to one-day/exercises/kokkos/README.md diff --git a/exercises/kokkos/kokkos.ipynb b/one-day/exercises/kokkos/kokkos.ipynb similarity index 100% rename from exercises/kokkos/kokkos.ipynb rename to one-day/exercises/kokkos/kokkos.ipynb diff --git a/exercises/openacc-optimise/README.md b/one-day/exercises/openacc-optimise/README.md similarity index 100% rename from exercises/openacc-optimise/README.md rename to one-day/exercises/openacc-optimise/README.md diff --git a/exercises/openacc-optimise/images/EDINB00034_2048x2048.jpg b/one-day/exercises/openacc-optimise/images/EDINB00034_2048x2048.jpg similarity index 100% rename from exercises/openacc-optimise/images/EDINB00034_2048x2048.jpg rename to one-day/exercises/openacc-optimise/images/EDINB00034_2048x2048.jpg diff --git a/exercises/openacc-optimise/images/input.jpeg b/one-day/exercises/openacc-optimise/images/input.jpeg similarity index 100% rename from exercises/openacc-optimise/images/input.jpeg rename to one-day/exercises/openacc-optimise/images/input.jpeg diff --git a/exercises/openacc-optimise/images/output10M.jpeg b/one-day/exercises/openacc-optimise/images/output10M.jpeg similarity index 100% rename from exercises/openacc-optimise/images/output10M.jpeg rename to one-day/exercises/openacc-optimise/images/output10M.jpeg diff --git a/exercises/openacc-optimise/openacc-optimise.ipynb b/one-day/exercises/openacc-optimise/openacc-optimise.ipynb similarity index 100% rename from exercises/openacc-optimise/openacc-optimise.ipynb rename to one-day/exercises/openacc-optimise/openacc-optimise.ipynb diff --git a/exercises/openacc-optimise/src_c/Makefile b/one-day/exercises/openacc-optimise/src_c/Makefile similarity index 100% rename from exercises/openacc-optimise/src_c/Makefile rename to one-day/exercises/openacc-optimise/src_c/Makefile diff --git a/exercises/openacc-optimise/src_c/cio.c b/one-day/exercises/openacc-optimise/src_c/cio.c similarity index 100% rename from exercises/openacc-optimise/src_c/cio.c rename to one-day/exercises/openacc-optimise/src_c/cio.c diff --git a/exercises/openacc-optimise/src_c/edge2048x2048.dat b/one-day/exercises/openacc-optimise/src_c/edge2048x2048.dat similarity index 100% rename from exercises/openacc-optimise/src_c/edge2048x2048.dat rename to one-day/exercises/openacc-optimise/src_c/edge2048x2048.dat diff --git a/exercises/openacc-optimise/src_c/reconstruct.c b/one-day/exercises/openacc-optimise/src_c/reconstruct.c similarity index 100% rename from exercises/openacc-optimise/src_c/reconstruct.c rename to one-day/exercises/openacc-optimise/src_c/reconstruct.c diff --git a/exercises/openacc-optimise/src_c/solution/Makefile b/one-day/exercises/openacc-optimise/src_c/solution/Makefile similarity index 100% rename from exercises/openacc-optimise/src_c/solution/Makefile rename to one-day/exercises/openacc-optimise/src_c/solution/Makefile diff --git a/exercises/openacc-optimise/src_c/solution/cio.c b/one-day/exercises/openacc-optimise/src_c/solution/cio.c similarity index 100% rename from exercises/openacc-optimise/src_c/solution/cio.c rename to one-day/exercises/openacc-optimise/src_c/solution/cio.c diff --git a/exercises/openacc-optimise/src_c/solution/edge2048x2048.dat b/one-day/exercises/openacc-optimise/src_c/solution/edge2048x2048.dat similarity index 100% rename from exercises/openacc-optimise/src_c/solution/edge2048x2048.dat rename to one-day/exercises/openacc-optimise/src_c/solution/edge2048x2048.dat diff --git a/exercises/openacc-optimise/src_c/solution/reconstruct.c b/one-day/exercises/openacc-optimise/src_c/solution/reconstruct.c similarity index 100% rename from exercises/openacc-optimise/src_c/solution/reconstruct.c rename to one-day/exercises/openacc-optimise/src_c/solution/reconstruct.c diff --git a/exercises/openacc-optimise/src_c/submit.sh b/one-day/exercises/openacc-optimise/src_c/submit.sh similarity index 100% rename from exercises/openacc-optimise/src_c/submit.sh rename to one-day/exercises/openacc-optimise/src_c/submit.sh diff --git a/exercises/openacc-optimise/src_fortran/Makefile b/one-day/exercises/openacc-optimise/src_fortran/Makefile similarity index 100% rename from exercises/openacc-optimise/src_fortran/Makefile rename to one-day/exercises/openacc-optimise/src_fortran/Makefile diff --git a/exercises/openacc-optimise/src_fortran/edge2048x2048.dat b/one-day/exercises/openacc-optimise/src_fortran/edge2048x2048.dat similarity index 100% rename from exercises/openacc-optimise/src_fortran/edge2048x2048.dat rename to one-day/exercises/openacc-optimise/src_fortran/edge2048x2048.dat diff --git a/exercises/openacc-optimise/src_fortran/fio.f90 b/one-day/exercises/openacc-optimise/src_fortran/fio.f90 similarity index 100% rename from exercises/openacc-optimise/src_fortran/fio.f90 rename to one-day/exercises/openacc-optimise/src_fortran/fio.f90 diff --git a/exercises/openacc-optimise/src_fortran/reconstruct.f90 b/one-day/exercises/openacc-optimise/src_fortran/reconstruct.f90 similarity index 100% rename from exercises/openacc-optimise/src_fortran/reconstruct.f90 rename to one-day/exercises/openacc-optimise/src_fortran/reconstruct.f90 diff --git a/exercises/openacc-optimise/src_fortran/solution/Makefile b/one-day/exercises/openacc-optimise/src_fortran/solution/Makefile similarity index 100% rename from exercises/openacc-optimise/src_fortran/solution/Makefile rename to one-day/exercises/openacc-optimise/src_fortran/solution/Makefile diff --git a/exercises/openacc-optimise/src_fortran/solution/edge2048x2048.dat b/one-day/exercises/openacc-optimise/src_fortran/solution/edge2048x2048.dat similarity index 100% rename from exercises/openacc-optimise/src_fortran/solution/edge2048x2048.dat rename to one-day/exercises/openacc-optimise/src_fortran/solution/edge2048x2048.dat diff --git a/exercises/openacc-optimise/src_fortran/solution/fio.f90 b/one-day/exercises/openacc-optimise/src_fortran/solution/fio.f90 similarity index 100% rename from exercises/openacc-optimise/src_fortran/solution/fio.f90 rename to one-day/exercises/openacc-optimise/src_fortran/solution/fio.f90 diff --git a/exercises/openacc-optimise/src_fortran/solution/reconstruct.f90 b/one-day/exercises/openacc-optimise/src_fortran/solution/reconstruct.f90 similarity index 100% rename from exercises/openacc-optimise/src_fortran/solution/reconstruct.f90 rename to one-day/exercises/openacc-optimise/src_fortran/solution/reconstruct.f90 diff --git a/exercises/openacc-optimise/src_fortran/submit.sh b/one-day/exercises/openacc-optimise/src_fortran/submit.sh similarity index 100% rename from exercises/openacc-optimise/src_fortran/submit.sh rename to one-day/exercises/openacc-optimise/src_fortran/submit.sh diff --git a/exercises/opencl-intro/Makefile b/one-day/exercises/opencl-intro/Makefile similarity index 100% rename from exercises/opencl-intro/Makefile rename to one-day/exercises/opencl-intro/Makefile diff --git a/exercises/opencl-intro/README.md b/one-day/exercises/opencl-intro/README.md similarity index 100% rename from exercises/opencl-intro/README.md rename to one-day/exercises/opencl-intro/README.md diff --git a/exercises/opencl-intro/intro.c b/one-day/exercises/opencl-intro/intro.c similarity index 100% rename from exercises/opencl-intro/intro.c rename to one-day/exercises/opencl-intro/intro.c diff --git a/exercises/opencl-intro/kernel.c b/one-day/exercises/opencl-intro/kernel.c similarity index 100% rename from exercises/opencl-intro/kernel.c rename to one-day/exercises/opencl-intro/kernel.c diff --git a/exercises/opencl-intro/opencl-intro.ipynb b/one-day/exercises/opencl-intro/opencl-intro.ipynb similarity index 100% rename from exercises/opencl-intro/opencl-intro.ipynb rename to one-day/exercises/opencl-intro/opencl-intro.ipynb diff --git a/exercises/opencl-intro/solution/Makefile b/one-day/exercises/opencl-intro/solution/Makefile similarity index 100% rename from exercises/opencl-intro/solution/Makefile rename to one-day/exercises/opencl-intro/solution/Makefile diff --git a/exercises/opencl-intro/solution/intro.c b/one-day/exercises/opencl-intro/solution/intro.c similarity index 100% rename from exercises/opencl-intro/solution/intro.c rename to one-day/exercises/opencl-intro/solution/intro.c diff --git a/exercises/opencl-intro/solution/kernel.c b/one-day/exercises/opencl-intro/solution/kernel.c similarity index 100% rename from exercises/opencl-intro/solution/kernel.c rename to one-day/exercises/opencl-intro/solution/kernel.c diff --git a/exercises/opencl-intro/submit.sh b/one-day/exercises/opencl-intro/submit.sh similarity index 100% rename from exercises/opencl-intro/submit.sh rename to one-day/exercises/opencl-intro/submit.sh diff --git a/exercises/opencl-optimise/Makefile b/one-day/exercises/opencl-optimise/Makefile similarity index 100% rename from exercises/opencl-optimise/Makefile rename to one-day/exercises/opencl-optimise/Makefile diff --git a/exercises/opencl-optimise/README.md b/one-day/exercises/opencl-optimise/README.md similarity index 100% rename from exercises/opencl-optimise/README.md rename to one-day/exercises/opencl-optimise/README.md diff --git a/exercises/opencl-optimise/edge2048x2048.dat b/one-day/exercises/opencl-optimise/edge2048x2048.dat similarity index 100% rename from exercises/opencl-optimise/edge2048x2048.dat rename to one-day/exercises/opencl-optimise/edge2048x2048.dat diff --git a/exercises/opencl-optimise/kernels.c b/one-day/exercises/opencl-optimise/kernels.c similarity index 100% rename from exercises/opencl-optimise/kernels.c rename to one-day/exercises/opencl-optimise/kernels.c diff --git a/exercises/opencl-optimise/opencl-optimise.ipynb b/one-day/exercises/opencl-optimise/opencl-optimise.ipynb similarity index 100% rename from exercises/opencl-optimise/opencl-optimise.ipynb rename to one-day/exercises/opencl-optimise/opencl-optimise.ipynb diff --git a/exercises/opencl-optimise/reverse.c b/one-day/exercises/opencl-optimise/reverse.c similarity index 100% rename from exercises/opencl-optimise/reverse.c rename to one-day/exercises/opencl-optimise/reverse.c diff --git a/exercises/opencl-optimise/solution/Makefile b/one-day/exercises/opencl-optimise/solution/Makefile similarity index 100% rename from exercises/opencl-optimise/solution/Makefile rename to one-day/exercises/opencl-optimise/solution/Makefile diff --git a/exercises/opencl-optimise/solution/edge2048x2048.dat b/one-day/exercises/opencl-optimise/solution/edge2048x2048.dat similarity index 100% rename from exercises/opencl-optimise/solution/edge2048x2048.dat rename to one-day/exercises/opencl-optimise/solution/edge2048x2048.dat diff --git a/exercises/opencl-optimise/solution/kernels.c b/one-day/exercises/opencl-optimise/solution/kernels.c similarity index 100% rename from exercises/opencl-optimise/solution/kernels.c rename to one-day/exercises/opencl-optimise/solution/kernels.c diff --git a/exercises/opencl-optimise/solution/reverse.c b/one-day/exercises/opencl-optimise/solution/reverse.c similarity index 100% rename from exercises/opencl-optimise/solution/reverse.c rename to one-day/exercises/opencl-optimise/solution/reverse.c diff --git a/exercises/opencl-optimise/submit.sh b/one-day/exercises/opencl-optimise/submit.sh similarity index 100% rename from exercises/opencl-optimise/submit.sh rename to one-day/exercises/opencl-optimise/submit.sh diff --git a/gulpfile.js b/one-day/gulpfile.js similarity index 100% rename from gulpfile.js rename to one-day/gulpfile.js diff --git a/img/.DS_Store b/one-day/img/.DS_Store similarity index 100% rename from img/.DS_Store rename to one-day/img/.DS_Store diff --git a/img/ARCHER_logo.png b/one-day/img/ARCHER_logo.png similarity index 100% rename from img/ARCHER_logo.png rename to one-day/img/ARCHER_logo.png diff --git a/img/archer_cabs.png b/one-day/img/archer_cabs.png similarity index 100% rename from img/archer_cabs.png rename to one-day/img/archer_cabs.png diff --git a/img/archer_panels.png b/one-day/img/archer_panels.png similarity index 100% rename from img/archer_panels.png rename to one-day/img/archer_panels.png diff --git a/img/cc_licence.png b/one-day/img/cc_licence.png similarity index 100% rename from img/cc_licence.png rename to one-day/img/cc_licence.png diff --git a/img/cirrus_cabs.png b/one-day/img/cirrus_cabs.png similarity index 100% rename from img/cirrus_cabs.png rename to one-day/img/cirrus_cabs.png diff --git a/img/cray-logo.png b/one-day/img/cray-logo.png similarity index 100% rename from img/cray-logo.png rename to one-day/img/cray-logo.png diff --git a/img/epcc_logo.png b/one-day/img/epcc_logo.png similarity index 100% rename from img/epcc_logo.png rename to one-day/img/epcc_logo.png diff --git a/img/epsrc-highres.jpg b/one-day/img/epsrc-highres.jpg similarity index 100% rename from img/epsrc-highres.jpg rename to one-day/img/epsrc-highres.jpg diff --git a/img/ks-cpudb-2017.jpg b/one-day/img/ks-cpudb-2017.jpg similarity index 100% rename from img/ks-cpudb-2017.jpg rename to one-day/img/ks-cpudb-2017.jpg diff --git a/img/nerc-logo-large.jpg b/one-day/img/nerc-logo-large.jpg similarity index 100% rename from img/nerc-logo-large.jpg rename to one-day/img/nerc-logo-large.jpg diff --git a/img/tier2-map.png b/one-day/img/tier2-map.png similarity index 100% rename from img/tier2-map.png rename to one-day/img/tier2-map.png diff --git a/img/tier2_logo.jpg b/one-day/img/tier2_logo.jpg similarity index 100% rename from img/tier2_logo.jpg rename to one-day/img/tier2_logo.jpg diff --git a/img/tier2_logos.png b/one-day/img/tier2_logos.png similarity index 100% rename from img/tier2_logos.png rename to one-day/img/tier2_logos.png diff --git a/index.html b/one-day/index.html similarity index 100% rename from index.html rename to one-day/index.html diff --git a/lib/css/vs.css b/one-day/lib/css/vs.css similarity index 100% rename from lib/css/vs.css rename to one-day/lib/css/vs.css diff --git a/lib/css/zenburn.css b/one-day/lib/css/zenburn.css similarity index 100% rename from lib/css/zenburn.css rename to one-day/lib/css/zenburn.css diff --git a/lib/font/league-gothic/LICENSE b/one-day/lib/font/league-gothic/LICENSE similarity index 100% rename from lib/font/league-gothic/LICENSE rename to one-day/lib/font/league-gothic/LICENSE diff --git a/lib/font/league-gothic/league-gothic.css b/one-day/lib/font/league-gothic/league-gothic.css similarity index 100% rename from lib/font/league-gothic/league-gothic.css rename to one-day/lib/font/league-gothic/league-gothic.css diff --git a/lib/font/league-gothic/league-gothic.eot b/one-day/lib/font/league-gothic/league-gothic.eot similarity index 100% rename from lib/font/league-gothic/league-gothic.eot rename to one-day/lib/font/league-gothic/league-gothic.eot diff --git a/lib/font/league-gothic/league-gothic.ttf b/one-day/lib/font/league-gothic/league-gothic.ttf similarity index 100% rename from lib/font/league-gothic/league-gothic.ttf rename to one-day/lib/font/league-gothic/league-gothic.ttf diff --git a/lib/font/league-gothic/league-gothic.woff b/one-day/lib/font/league-gothic/league-gothic.woff similarity index 100% rename from lib/font/league-gothic/league-gothic.woff rename to one-day/lib/font/league-gothic/league-gothic.woff diff --git a/lib/font/source-sans-pro/LICENSE b/one-day/lib/font/source-sans-pro/LICENSE similarity index 100% rename from lib/font/source-sans-pro/LICENSE rename to one-day/lib/font/source-sans-pro/LICENSE diff --git a/lib/font/source-sans-pro/source-sans-pro-italic.eot b/one-day/lib/font/source-sans-pro/source-sans-pro-italic.eot similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-italic.eot rename to one-day/lib/font/source-sans-pro/source-sans-pro-italic.eot diff --git a/lib/font/source-sans-pro/source-sans-pro-italic.ttf b/one-day/lib/font/source-sans-pro/source-sans-pro-italic.ttf similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-italic.ttf rename to one-day/lib/font/source-sans-pro/source-sans-pro-italic.ttf diff --git a/lib/font/source-sans-pro/source-sans-pro-italic.woff b/one-day/lib/font/source-sans-pro/source-sans-pro-italic.woff similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-italic.woff rename to one-day/lib/font/source-sans-pro/source-sans-pro-italic.woff diff --git a/lib/font/source-sans-pro/source-sans-pro-regular.eot b/one-day/lib/font/source-sans-pro/source-sans-pro-regular.eot similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-regular.eot rename to one-day/lib/font/source-sans-pro/source-sans-pro-regular.eot diff --git a/lib/font/source-sans-pro/source-sans-pro-regular.ttf b/one-day/lib/font/source-sans-pro/source-sans-pro-regular.ttf similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-regular.ttf rename to one-day/lib/font/source-sans-pro/source-sans-pro-regular.ttf diff --git a/lib/font/source-sans-pro/source-sans-pro-regular.woff b/one-day/lib/font/source-sans-pro/source-sans-pro-regular.woff similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-regular.woff rename to one-day/lib/font/source-sans-pro/source-sans-pro-regular.woff diff --git a/lib/font/source-sans-pro/source-sans-pro-semibold.eot b/one-day/lib/font/source-sans-pro/source-sans-pro-semibold.eot similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibold.eot rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibold.eot diff --git a/lib/font/source-sans-pro/source-sans-pro-semibold.ttf b/one-day/lib/font/source-sans-pro/source-sans-pro-semibold.ttf similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibold.ttf rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibold.ttf diff --git a/lib/font/source-sans-pro/source-sans-pro-semibold.woff b/one-day/lib/font/source-sans-pro/source-sans-pro-semibold.woff similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibold.woff rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibold.woff diff --git a/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot b/one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot diff --git a/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf b/one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf diff --git a/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff b/one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff rename to one-day/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff diff --git a/lib/font/source-sans-pro/source-sans-pro.css b/one-day/lib/font/source-sans-pro/source-sans-pro.css similarity index 100% rename from lib/font/source-sans-pro/source-sans-pro.css rename to one-day/lib/font/source-sans-pro/source-sans-pro.css diff --git a/lib/js/classList.js b/one-day/lib/js/classList.js similarity index 100% rename from lib/js/classList.js rename to one-day/lib/js/classList.js diff --git a/lib/js/html5shiv.js b/one-day/lib/js/html5shiv.js similarity index 100% rename from lib/js/html5shiv.js rename to one-day/lib/js/html5shiv.js diff --git a/package-lock.json b/one-day/package-lock.json similarity index 100% rename from package-lock.json rename to one-day/package-lock.json diff --git a/package.json b/one-day/package.json similarity index 100% rename from package.json rename to one-day/package.json diff --git a/plugin/highlight/highlight.esm.js b/one-day/plugin/highlight/highlight.esm.js similarity index 100% rename from plugin/highlight/highlight.esm.js rename to one-day/plugin/highlight/highlight.esm.js diff --git a/plugin/highlight/highlight.js b/one-day/plugin/highlight/highlight.js similarity index 100% rename from plugin/highlight/highlight.js rename to one-day/plugin/highlight/highlight.js diff --git a/plugin/highlight/monokai.css b/one-day/plugin/highlight/monokai.css similarity index 100% rename from plugin/highlight/monokai.css rename to one-day/plugin/highlight/monokai.css diff --git a/plugin/highlight/plugin.js b/one-day/plugin/highlight/plugin.js similarity index 100% rename from plugin/highlight/plugin.js rename to one-day/plugin/highlight/plugin.js diff --git a/plugin/highlight/vs.css b/one-day/plugin/highlight/vs.css similarity index 100% rename from plugin/highlight/vs.css rename to one-day/plugin/highlight/vs.css diff --git a/plugin/highlight/zenburn.css b/one-day/plugin/highlight/zenburn.css similarity index 100% rename from plugin/highlight/zenburn.css rename to one-day/plugin/highlight/zenburn.css diff --git a/plugin/markdown/example.html b/one-day/plugin/markdown/example.html similarity index 100% rename from plugin/markdown/example.html rename to one-day/plugin/markdown/example.html diff --git a/plugin/markdown/example.md b/one-day/plugin/markdown/example.md similarity index 100% rename from plugin/markdown/example.md rename to one-day/plugin/markdown/example.md diff --git a/plugin/markdown/markdown.esm.js b/one-day/plugin/markdown/markdown.esm.js similarity index 100% rename from plugin/markdown/markdown.esm.js rename to one-day/plugin/markdown/markdown.esm.js diff --git a/plugin/markdown/markdown.js b/one-day/plugin/markdown/markdown.js similarity index 100% rename from plugin/markdown/markdown.js rename to one-day/plugin/markdown/markdown.js diff --git a/plugin/markdown/marked.js b/one-day/plugin/markdown/marked.js similarity index 100% rename from plugin/markdown/marked.js rename to one-day/plugin/markdown/marked.js diff --git a/plugin/markdown/plugin.js b/one-day/plugin/markdown/plugin.js similarity index 100% rename from plugin/markdown/plugin.js rename to one-day/plugin/markdown/plugin.js diff --git a/plugin/math/katex.js b/one-day/plugin/math/katex.js similarity index 100% rename from plugin/math/katex.js rename to one-day/plugin/math/katex.js diff --git a/plugin/math/math.esm.js b/one-day/plugin/math/math.esm.js similarity index 100% rename from plugin/math/math.esm.js rename to one-day/plugin/math/math.esm.js diff --git a/plugin/math/math.js b/one-day/plugin/math/math.js similarity index 100% rename from plugin/math/math.js rename to one-day/plugin/math/math.js diff --git a/plugin/math/mathjax2.js b/one-day/plugin/math/mathjax2.js similarity index 100% rename from plugin/math/mathjax2.js rename to one-day/plugin/math/mathjax2.js diff --git a/plugin/math/mathjax3.js b/one-day/plugin/math/mathjax3.js similarity index 100% rename from plugin/math/mathjax3.js rename to one-day/plugin/math/mathjax3.js diff --git a/plugin/math/plugin.js b/one-day/plugin/math/plugin.js similarity index 100% rename from plugin/math/plugin.js rename to one-day/plugin/math/plugin.js diff --git a/plugin/multiplex/client.js b/one-day/plugin/multiplex/client.js similarity index 100% rename from plugin/multiplex/client.js rename to one-day/plugin/multiplex/client.js diff --git a/plugin/multiplex/index.js b/one-day/plugin/multiplex/index.js similarity index 100% rename from plugin/multiplex/index.js rename to one-day/plugin/multiplex/index.js diff --git a/plugin/multiplex/master.js b/one-day/plugin/multiplex/master.js similarity index 100% rename from plugin/multiplex/master.js rename to one-day/plugin/multiplex/master.js diff --git a/plugin/multiplex/package.json b/one-day/plugin/multiplex/package.json similarity index 100% rename from plugin/multiplex/package.json rename to one-day/plugin/multiplex/package.json diff --git a/plugin/notes-server/client.js b/one-day/plugin/notes-server/client.js similarity index 100% rename from plugin/notes-server/client.js rename to one-day/plugin/notes-server/client.js diff --git a/plugin/notes-server/index.js b/one-day/plugin/notes-server/index.js similarity index 100% rename from plugin/notes-server/index.js rename to one-day/plugin/notes-server/index.js diff --git a/plugin/notes-server/notes.html b/one-day/plugin/notes-server/notes.html similarity index 100% rename from plugin/notes-server/notes.html rename to one-day/plugin/notes-server/notes.html diff --git a/plugin/notes/notes.esm.js b/one-day/plugin/notes/notes.esm.js similarity index 100% rename from plugin/notes/notes.esm.js rename to one-day/plugin/notes/notes.esm.js diff --git a/plugin/notes/notes.html b/one-day/plugin/notes/notes.html similarity index 100% rename from plugin/notes/notes.html rename to one-day/plugin/notes/notes.html diff --git a/plugin/notes/notes.js b/one-day/plugin/notes/notes.js similarity index 100% rename from plugin/notes/notes.js rename to one-day/plugin/notes/notes.js diff --git a/plugin/notes/plugin.js b/one-day/plugin/notes/plugin.js similarity index 100% rename from plugin/notes/plugin.js rename to one-day/plugin/notes/plugin.js diff --git a/plugin/notes/speaker-view.html b/one-day/plugin/notes/speaker-view.html similarity index 100% rename from plugin/notes/speaker-view.html rename to one-day/plugin/notes/speaker-view.html diff --git a/plugin/print-pdf/print-pdf.js b/one-day/plugin/print-pdf/print-pdf.js similarity index 100% rename from plugin/print-pdf/print-pdf.js rename to one-day/plugin/print-pdf/print-pdf.js diff --git a/plugin/search/plugin.js b/one-day/plugin/search/plugin.js similarity index 100% rename from plugin/search/plugin.js rename to one-day/plugin/search/plugin.js diff --git a/plugin/search/search.esm.js b/one-day/plugin/search/search.esm.js similarity index 100% rename from plugin/search/search.esm.js rename to one-day/plugin/search/search.esm.js diff --git a/plugin/search/search.js b/one-day/plugin/search/search.js similarity index 100% rename from plugin/search/search.js rename to one-day/plugin/search/search.js diff --git a/plugin/zoom-js/zoom.js b/one-day/plugin/zoom-js/zoom.js similarity index 100% rename from plugin/zoom-js/zoom.js rename to one-day/plugin/zoom-js/zoom.js diff --git a/plugin/zoom/plugin.js b/one-day/plugin/zoom/plugin.js similarity index 100% rename from plugin/zoom/plugin.js rename to one-day/plugin/zoom/plugin.js diff --git a/plugin/zoom/zoom.esm.js b/one-day/plugin/zoom/zoom.esm.js similarity index 100% rename from plugin/zoom/zoom.esm.js rename to one-day/plugin/zoom/zoom.esm.js diff --git a/plugin/zoom/zoom.js b/one-day/plugin/zoom/zoom.js similarity index 100% rename from plugin/zoom/zoom.js rename to one-day/plugin/zoom/zoom.js diff --git a/src/ag-schematic-4factors.png b/one-day/src/ag-schematic-4factors.png similarity index 100% rename from src/ag-schematic-4factors.png rename to one-day/src/ag-schematic-4factors.png diff --git a/src/ag-schematic-host-device.png b/one-day/src/ag-schematic-host-device.png similarity index 100% rename from src/ag-schematic-host-device.png rename to one-day/src/ag-schematic-host-device.png diff --git a/src/ag-schematic-sm.png b/one-day/src/ag-schematic-sm.png similarity index 100% rename from src/ag-schematic-sm.png rename to one-day/src/ag-schematic-sm.png diff --git a/src/architectures.html b/one-day/src/architectures.html similarity index 100% rename from src/architectures.html rename to one-day/src/architectures.html diff --git a/src/cuda-memory.html b/one-day/src/cuda-memory.html similarity index 100% rename from src/cuda-memory.html rename to one-day/src/cuda-memory.html diff --git a/src/cuda-programming.html b/one-day/src/cuda-programming.html similarity index 100% rename from src/cuda-programming.html rename to one-day/src/cuda-programming.html diff --git a/src/directives.html b/one-day/src/directives.html similarity index 100% rename from src/directives.html rename to one-day/src/directives.html diff --git a/src/intel-knl-die.jpg b/one-day/src/intel-knl-die.jpg similarity index 100% rename from src/intel-knl-die.jpg rename to one-day/src/intel-knl-die.jpg diff --git a/src/intel-sandybridge-e-3960X-die.jpg b/one-day/src/intel-sandybridge-e-3960X-die.jpg similarity index 100% rename from src/intel-sandybridge-e-3960X-die.jpg rename to one-day/src/intel-sandybridge-e-3960X-die.jpg diff --git a/src/jp-schematic-opencl-work.png b/one-day/src/jp-schematic-opencl-work.png similarity index 100% rename from src/jp-schematic-opencl-work.png rename to one-day/src/jp-schematic-opencl-work.png diff --git a/src/kokkos.html b/one-day/src/kokkos.html similarity index 100% rename from src/kokkos.html rename to one-day/src/kokkos.html diff --git a/src/ks-schematic-4factors.svg b/one-day/src/ks-schematic-4factors.svg similarity index 100% rename from src/ks-schematic-4factors.svg rename to one-day/src/ks-schematic-4factors.svg diff --git a/src/ks-schematic-block.svg b/one-day/src/ks-schematic-block.svg similarity index 100% rename from src/ks-schematic-block.svg rename to one-day/src/ks-schematic-block.svg diff --git a/src/ks-schematic-grid.svg b/one-day/src/ks-schematic-grid.svg similarity index 100% rename from src/ks-schematic-grid.svg rename to one-day/src/ks-schematic-grid.svg diff --git a/src/ks-schematic-host-device.svg b/one-day/src/ks-schematic-host-device.svg similarity index 100% rename from src/ks-schematic-host-device.svg rename to one-day/src/ks-schematic-host-device.svg diff --git a/src/nvidia-gpc-block-diagram.png b/one-day/src/nvidia-gpc-block-diagram.png similarity index 100% rename from src/nvidia-gpc-block-diagram.png rename to one-day/src/nvidia-gpc-block-diagram.png diff --git a/src/nvidia-sm-block-diagram.png b/one-day/src/nvidia-sm-block-diagram.png similarity index 100% rename from src/nvidia-sm-block-diagram.png rename to one-day/src/nvidia-sm-block-diagram.png diff --git a/src/nvidia-x86-performance.png b/one-day/src/nvidia-x86-performance.png similarity index 100% rename from src/nvidia-x86-performance.png rename to one-day/src/nvidia-x86-performance.png diff --git a/src/opencl.html b/one-day/src/opencl.html similarity index 100% rename from src/opencl.html rename to one-day/src/opencl.html diff --git a/src/optimisation.html b/one-day/src/optimisation.html similarity index 100% rename from src/optimisation.html rename to one-day/src/optimisation.html diff --git a/src/right-left.png b/one-day/src/right-left.png similarity index 100% rename from src/right-left.png rename to one-day/src/right-left.png diff --git a/src/right.png b/one-day/src/right.png similarity index 100% rename from src/right.png rename to one-day/src/right.png diff --git a/src/timetable.html b/one-day/src/timetable.html similarity index 100% rename from src/timetable.html rename to one-day/src/timetable.html diff --git a/applications-two-day/section-1.01/README.md b/section-1.01/README.md similarity index 100% rename from applications-two-day/section-1.01/README.md rename to section-1.01/README.md diff --git a/applications-two-day/section-1.02/README.md b/section-1.02/README.md similarity index 100% rename from applications-two-day/section-1.02/README.md rename to section-1.02/README.md diff --git a/applications-two-day/section-2.01/README.md b/section-2.01/README.md similarity index 100% rename from applications-two-day/section-2.01/README.md rename to section-2.01/README.md diff --git a/applications-two-day/section-2.01/exercise_dscal.cu b/section-2.01/exercise_dscal.cu similarity index 100% rename from applications-two-day/section-2.01/exercise_dscal.cu rename to section-2.01/exercise_dscal.cu diff --git a/applications-two-day/section-2.01/submit.sh b/section-2.01/submit.sh similarity index 100% rename from applications-two-day/section-2.01/submit.sh rename to section-2.01/submit.sh diff --git a/applications-two-day/section-2.02/README.md b/section-2.02/README.md similarity index 100% rename from applications-two-day/section-2.02/README.md rename to section-2.02/README.md diff --git a/applications-two-day/section-2.02/exercise_dscal.cu b/section-2.02/exercise_dscal.cu similarity index 100% rename from applications-two-day/section-2.02/exercise_dscal.cu rename to section-2.02/exercise_dscal.cu diff --git a/applications-two-day/section-2.02/submit.sh b/section-2.02/submit.sh similarity index 100% rename from applications-two-day/section-2.02/submit.sh rename to section-2.02/submit.sh diff --git a/applications-two-day/section-2.03/README.md b/section-2.03/README.md similarity index 100% rename from applications-two-day/section-2.03/README.md rename to section-2.03/README.md diff --git a/applications-two-day/section-2.03/exercise_dger.cu b/section-2.03/exercise_dger.cu similarity index 100% rename from applications-two-day/section-2.03/exercise_dger.cu rename to section-2.03/exercise_dger.cu diff --git a/applications-two-day/section-2.03/submit.sh b/section-2.03/submit.sh similarity index 100% rename from applications-two-day/section-2.03/submit.sh rename to section-2.03/submit.sh diff --git a/applications-two-day/section-2.04/README.md b/section-2.04/README.md similarity index 100% rename from applications-two-day/section-2.04/README.md rename to section-2.04/README.md diff --git a/applications-two-day/section-2.04/exercise_dger.cu b/section-2.04/exercise_dger.cu similarity index 100% rename from applications-two-day/section-2.04/exercise_dger.cu rename to section-2.04/exercise_dger.cu diff --git a/applications-two-day/section-2.04/submit.sh b/section-2.04/submit.sh similarity index 100% rename from applications-two-day/section-2.04/submit.sh rename to section-2.04/submit.sh diff --git a/applications-two-day/section-2.05/README.md b/section-2.05/README.md similarity index 100% rename from applications-two-day/section-2.05/README.md rename to section-2.05/README.md diff --git a/applications-two-day/section-2.05/exercise_ddot.cu b/section-2.05/exercise_ddot.cu similarity index 100% rename from applications-two-day/section-2.05/exercise_ddot.cu rename to section-2.05/exercise_ddot.cu diff --git a/applications-two-day/section-2.05/submit.sh b/section-2.05/submit.sh similarity index 100% rename from applications-two-day/section-2.05/submit.sh rename to section-2.05/submit.sh diff --git a/applications-two-day/section-2.06/README.md b/section-2.06/README.md similarity index 100% rename from applications-two-day/section-2.06/README.md rename to section-2.06/README.md diff --git a/applications-two-day/section-3.01/README.md b/section-3.01/README.md similarity index 100% rename from applications-two-day/section-3.01/README.md rename to section-3.01/README.md diff --git a/applications-two-day/section-4.01/README.md b/section-4.01/README.md similarity index 100% rename from applications-two-day/section-4.01/README.md rename to section-4.01/README.md diff --git a/applications-two-day/section-4.01/exercise_dger.cu b/section-4.01/exercise_dger.cu similarity index 100% rename from applications-two-day/section-4.01/exercise_dger.cu rename to section-4.01/exercise_dger.cu diff --git a/applications-two-day/section-4.01/submit.sh b/section-4.01/submit.sh similarity index 100% rename from applications-two-day/section-4.01/submit.sh rename to section-4.01/submit.sh diff --git a/applications-two-day/section-4.02/README.md b/section-4.02/README.md similarity index 100% rename from applications-two-day/section-4.02/README.md rename to section-4.02/README.md diff --git a/applications-two-day/section-4.02/exercise_dger.cu b/section-4.02/exercise_dger.cu similarity index 100% rename from applications-two-day/section-4.02/exercise_dger.cu rename to section-4.02/exercise_dger.cu diff --git a/applications-two-day/section-4.02/submit.sh b/section-4.02/submit.sh similarity index 100% rename from applications-two-day/section-4.02/submit.sh rename to section-4.02/submit.sh