From 3a4d680daae775a6479a6331c00c5fd2e8bbe479 Mon Sep 17 00:00:00 2001 From: Rupert Nash Date: Sun, 10 Mar 2024 15:51:13 +0000 Subject: [PATCH] import --- README.md | 29 + exercises/README.md | 13 + exercises/algorithm/Makefile | 4 + exercises/algorithm/README.md | 12 + exercises/algorithm/ex.cpp | 91 + exercises/complex/Makefile | 15 + exercises/complex/README.md | 3 + exercises/complex/complex.cpp | 44 + exercises/complex/complex.hpp | 43 + exercises/complex/instructions.md | 32 + exercises/complex/instructions.pdf | Bin 0 -> 123088 bytes exercises/complex/test.cpp | 95 ++ exercises/containers/Makefile | 10 + exercises/containers/README.md | 3 + exercises/containers/instructions.md | 22 + exercises/containers/instructions.pdf | Bin 0 -> 78318 bytes exercises/containers/test.cpp | 77 + exercises/containers/vector_ex.cpp | 8 + exercises/containers/vector_ex.hpp | 18 + exercises/eigen/Makefile | 15 + exercises/eigen/README.md | 6 + exercises/eigen/explicit.cpp | 45 + exercises/eigen/implicit.cpp | 42 + exercises/eigen/modules.sh | 11 + exercises/eigen/sparse.cpp | 42 + exercises/include/catch.hpp | 0 exercises/kokkos/1/01_Exercise.mk | 30 + exercises/kokkos/1/Makefile | 10 + exercises/kokkos/1/OpenMP.mk | 3 + exercises/kokkos/1/exercise_1_begin.cpp | 219 +++ exercises/kokkos/1/submit.sh | 27 + exercises/kokkos/2/02_Exercise.mk | 26 + exercises/kokkos/2/CudaUVM.mk | 4 + exercises/kokkos/2/Makefile | 13 + exercises/kokkos/2/OpenMP.mk | 3 + exercises/kokkos/2/exercise_2_begin.cpp | 235 +++ exercises/kokkos/2/submit.sh | 31 + exercises/kokkos/3/03_Exercise.mk | 30 + exercises/kokkos/3/Cuda.mk | 4 + exercises/kokkos/3/Makefile | 13 + exercises/kokkos/3/OpenMP.mk | 3 + exercises/kokkos/3/exercise_3_begin.cpp | 226 +++ exercises/kokkos/3/submit.sh | 31 + exercises/kokkos/4/04_Exercise.mk | 30 + exercises/kokkos/4/Any.mk | 3 + exercises/kokkos/4/Makefile | 5 + exercises/kokkos/4/exercise_4_begin.cpp | 254 +++ exercises/kokkos/4/submit.sh | 31 + exercises/kokkos/README.md | 3 + exercises/kokkos/dot_prod.png | Bin 0 -> 24798 bytes exercises/kokkos/instructions.md | 152 ++ exercises/kokkos/instructions.pdf | Bin 0 -> 152639 bytes exercises/kokkos/plot.ipynb | 102 ++ exercises/kokkos/run_nb_server.sh | 12 + exercises/morton-order/Makefile | 7 + exercises/morton-order/README.md | 3 + exercises/morton-order/bits.hpp | 71 + exercises/morton-order/config.mk | 2 + exercises/morton-order/instructions.md | 138 ++ exercises/morton-order/instructions.pdf | Bin 0 -> 109115 bytes exercises/morton-order/mortonorder.png | Bin 0 -> 8547 bytes exercises/morton-order/range.hpp | 133 ++ exercises/morton-order/step1/Makefile | 12 + exercises/morton-order/step1/matrix.cpp | 55 + exercises/morton-order/step1/matrix.hpp | 65 + .../morton-order/step1/test_matrix_base.cpp | 112 ++ exercises/morton-order/step2/Makefile | 13 + exercises/morton-order/step2/matrix.cpp | 94 ++ exercises/morton-order/step2/matrix.hpp | 130 ++ .../morton-order/step2/test_matrix_base.cpp | 1 + .../morton-order/step2/test_matrix_iter.cpp | 79 + exercises/morton-order/step3/Makefile | 13 + exercises/morton-order/step3/matrix.hpp | 129 ++ .../morton-order/step3/test_matrix_base.cpp | 113 ++ .../morton-order/step3/test_matrix_iter.cpp | 80 + exercises/morton-order/step4/Makefile | 13 + exercises/morton-order/step4/matrix.hpp | 188 +++ .../morton-order/step4/test_matrix_base.cpp | 113 ++ .../morton-order/step4/test_matrix_iter.cpp | 88 + exercises/morton-order/test.hpp | 23 + exercises/morton-order/test_bits.cpp | 92 + exercises/threads/Makefile | 28 + exercises/threads/README.md | 3 + exercises/threads/area.cpp | 49 + exercises/threads/instructions.md | 32 + exercises/threads/instructions.pdf | Bin 0 -> 80342 bytes lectures/README.md | 11 + lectures/algorithms-lambdas/README.md | 416 +++++ lectures/algorithms-lambdas/index.html | 31 + .../algorithms-lambdas/looptests/opt0.svg | 1489 +++++++++++++++++ .../algorithms-lambdas/looptests/opt2.svg | 1401 ++++++++++++++++ lectures/classes/README.md | 818 +++++++++ lectures/classes/index.html | 31 + lectures/cpp-intro/README.md | 580 +++++++ lectures/cpp-intro/frank_mon.jpg | Bin 0 -> 63997 bytes lectures/cpp-intro/hello/hello.cpp | 5 + lectures/cpp-intro/index.html | 22 + lectures/cpp-intro/octodog.jpg | Bin 0 -> 26343 bytes lectures/cpp-intro/sak.jpg | Bin 0 -> 31179 bytes lectures/eigen/README.md | 178 ++ lectures/eigen/index.html | 30 + lectures/frameworks-kokkos/RAJA-MD-perf.png | Bin 0 -> 171762 bytes lectures/frameworks-kokkos/README.md | 456 +++++ lectures/frameworks-kokkos/RamsesKokkos.png | Bin 0 -> 237386 bytes lectures/frameworks-kokkos/index.html | 22 + lectures/frameworks-kokkos/lammps_lj.png | Bin 0 -> 4232 bytes lectures/frameworks-kokkos/lammps_sw.png | Bin 0 -> 4199 bytes lectures/frameworks-kokkos/mortonorder.png | Bin 0 -> 227979 bytes lectures/loops-containers/README.md | 482 ++++++ lectures/loops-containers/domain_decomp.png | Bin 0 -> 159766 bytes lectures/loops-containers/index.html | 22 + lectures/resources/README.md | 781 +++++++++ lectures/resources/index.html | 22 + lectures/resources/mem_layout.jpg | Bin 0 -> 29477 bytes lectures/resources/sample/Makefile | 14 + lectures/resources/sample/arr1.cpp | 23 + lectures/resources/sample/arr2.cpp | 38 + lectures/resources/sample/arr3.cpp | 57 + lectures/resources/sample/shared.cpp | 26 + lectures/template/cpptheme.js | 10 + lectures/template/style.css | 21 + lectures/template/thumbs_up.png | Bin 0 -> 2315 bytes lectures/templates/README.md | 392 +++++ lectures/templates/index.html | 22 + lectures/threads-1/README.md | 264 +++ lectures/threads-1/index.html | 23 + lectures/threads-2/README.md | 234 +++ lectures/threads-2/index.html | 23 + lectures/threads-2/omp-v-thread.png | Bin 0 -> 38928 bytes 129 files changed, 12003 insertions(+) create mode 100644 README.md create mode 100644 exercises/README.md create mode 100644 exercises/algorithm/Makefile create mode 100644 exercises/algorithm/README.md create mode 100644 exercises/algorithm/ex.cpp create mode 100644 exercises/complex/Makefile create mode 100644 exercises/complex/README.md create mode 100644 exercises/complex/complex.cpp create mode 100644 exercises/complex/complex.hpp create mode 100644 exercises/complex/instructions.md create mode 100644 exercises/complex/instructions.pdf create mode 100644 exercises/complex/test.cpp create mode 100644 exercises/containers/Makefile create mode 100644 exercises/containers/README.md create mode 100644 exercises/containers/instructions.md create mode 100644 exercises/containers/instructions.pdf create mode 100644 exercises/containers/test.cpp create mode 100644 exercises/containers/vector_ex.cpp create mode 100644 exercises/containers/vector_ex.hpp create mode 100644 exercises/eigen/Makefile create mode 100644 exercises/eigen/README.md create mode 100644 exercises/eigen/explicit.cpp create mode 100644 exercises/eigen/implicit.cpp create mode 100644 exercises/eigen/modules.sh create mode 100644 exercises/eigen/sparse.cpp create mode 100644 exercises/include/catch.hpp create mode 100644 exercises/kokkos/1/01_Exercise.mk create mode 100644 exercises/kokkos/1/Makefile create mode 100644 exercises/kokkos/1/OpenMP.mk create mode 100644 exercises/kokkos/1/exercise_1_begin.cpp create mode 100644 exercises/kokkos/1/submit.sh create mode 100644 exercises/kokkos/2/02_Exercise.mk create mode 100644 exercises/kokkos/2/CudaUVM.mk create mode 100644 exercises/kokkos/2/Makefile create mode 100644 exercises/kokkos/2/OpenMP.mk create mode 100644 exercises/kokkos/2/exercise_2_begin.cpp create mode 100644 exercises/kokkos/2/submit.sh create mode 100644 exercises/kokkos/3/03_Exercise.mk create mode 100644 exercises/kokkos/3/Cuda.mk create mode 100644 exercises/kokkos/3/Makefile create mode 100644 exercises/kokkos/3/OpenMP.mk create mode 100644 exercises/kokkos/3/exercise_3_begin.cpp create mode 100644 exercises/kokkos/3/submit.sh create mode 100644 exercises/kokkos/4/04_Exercise.mk create mode 100644 exercises/kokkos/4/Any.mk create mode 100644 exercises/kokkos/4/Makefile create mode 100644 exercises/kokkos/4/exercise_4_begin.cpp create mode 100644 exercises/kokkos/4/submit.sh create mode 100644 exercises/kokkos/README.md create mode 100644 exercises/kokkos/dot_prod.png create mode 100644 exercises/kokkos/instructions.md create mode 100644 exercises/kokkos/instructions.pdf create mode 100644 exercises/kokkos/plot.ipynb create mode 100755 exercises/kokkos/run_nb_server.sh create mode 100644 exercises/morton-order/Makefile create mode 100644 exercises/morton-order/README.md create mode 100644 exercises/morton-order/bits.hpp create mode 100644 exercises/morton-order/config.mk create mode 100644 exercises/morton-order/instructions.md create mode 100644 exercises/morton-order/instructions.pdf create mode 100644 exercises/morton-order/mortonorder.png create mode 100644 exercises/morton-order/range.hpp create mode 100644 exercises/morton-order/step1/Makefile create mode 100644 exercises/morton-order/step1/matrix.cpp create mode 100644 exercises/morton-order/step1/matrix.hpp create mode 100644 exercises/morton-order/step1/test_matrix_base.cpp create mode 100644 exercises/morton-order/step2/Makefile create mode 100644 exercises/morton-order/step2/matrix.cpp create mode 100644 exercises/morton-order/step2/matrix.hpp create mode 120000 exercises/morton-order/step2/test_matrix_base.cpp create mode 100644 exercises/morton-order/step2/test_matrix_iter.cpp create mode 100644 exercises/morton-order/step3/Makefile create mode 100644 exercises/morton-order/step3/matrix.hpp create mode 100644 exercises/morton-order/step3/test_matrix_base.cpp create mode 100644 exercises/morton-order/step3/test_matrix_iter.cpp create mode 100644 exercises/morton-order/step4/Makefile create mode 100644 exercises/morton-order/step4/matrix.hpp create mode 100644 exercises/morton-order/step4/test_matrix_base.cpp create mode 100644 exercises/morton-order/step4/test_matrix_iter.cpp create mode 100644 exercises/morton-order/test.hpp create mode 100644 exercises/morton-order/test_bits.cpp create mode 100644 exercises/threads/Makefile create mode 100644 exercises/threads/README.md create mode 100644 exercises/threads/area.cpp create mode 100644 exercises/threads/instructions.md create mode 100644 exercises/threads/instructions.pdf create mode 100644 lectures/README.md create mode 100644 lectures/algorithms-lambdas/README.md create mode 100644 lectures/algorithms-lambdas/index.html create mode 100644 lectures/algorithms-lambdas/looptests/opt0.svg create mode 100644 lectures/algorithms-lambdas/looptests/opt2.svg create mode 100644 lectures/classes/README.md create mode 100644 lectures/classes/index.html create mode 100644 lectures/cpp-intro/README.md create mode 100644 lectures/cpp-intro/frank_mon.jpg create mode 100644 lectures/cpp-intro/hello/hello.cpp create mode 100644 lectures/cpp-intro/index.html create mode 100644 lectures/cpp-intro/octodog.jpg create mode 100644 lectures/cpp-intro/sak.jpg create mode 100644 lectures/eigen/README.md create mode 100644 lectures/eigen/index.html create mode 100644 lectures/frameworks-kokkos/RAJA-MD-perf.png create mode 100644 lectures/frameworks-kokkos/README.md create mode 100644 lectures/frameworks-kokkos/RamsesKokkos.png create mode 100644 lectures/frameworks-kokkos/index.html create mode 100644 lectures/frameworks-kokkos/lammps_lj.png create mode 100644 lectures/frameworks-kokkos/lammps_sw.png create mode 100644 lectures/frameworks-kokkos/mortonorder.png create mode 100644 lectures/loops-containers/README.md create mode 100644 lectures/loops-containers/domain_decomp.png create mode 100644 lectures/loops-containers/index.html create mode 100644 lectures/resources/README.md create mode 100644 lectures/resources/index.html create mode 100644 lectures/resources/mem_layout.jpg create mode 100644 lectures/resources/sample/Makefile create mode 100644 lectures/resources/sample/arr1.cpp create mode 100644 lectures/resources/sample/arr2.cpp create mode 100644 lectures/resources/sample/arr3.cpp create mode 100644 lectures/resources/sample/shared.cpp create mode 100644 lectures/template/cpptheme.js create mode 100644 lectures/template/style.css create mode 100644 lectures/template/thumbs_up.png create mode 100644 lectures/templates/README.md create mode 100644 lectures/templates/index.html create mode 100644 lectures/threads-1/README.md create mode 100644 lectures/threads-1/index.html create mode 100644 lectures/threads-2/README.md create mode 100644 lectures/threads-2/index.html create mode 100644 lectures/threads-2/omp-v-thread.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..e43e72f --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# Modern C++ for Computational Scientists + +Repository view: + +Pages view: + +Since the 2011 revision to the C++ language and standard library, the +ways it is now being used are quite different. Used well, these +features enable the programmer to write elegant, reusable and portable +code that runs efficiently on a variety of architectures. + +However it is still a very large and complex tool. This set of +lectures and practical exercises, will cover a minimal set of features +to allow an experienced non-C++ programmer to get to grips with +language. These include: +* defining your own types +* overloading +* templates +* containers +* iterators +* lambdas +* standard algorithms +* threading + +It concludes with a brief discussion of modern frameworks for portable +parallel performance which are commonly implemented in C++. + +* [Lectures](lectures/) +* [Practical exercises](exercises/) diff --git a/exercises/README.md b/exercises/README.md new file mode 100644 index 0000000..3961f8f --- /dev/null +++ b/exercises/README.md @@ -0,0 +1,13 @@ +# C++ exercise + +Practical exercises for C++ course + +See each subdirectory for further instructions + +* [Complex numbers](complex/) +* [Containers](containers/) +* [Morton-order matrix class template](morton-order/) +* [Using algorithms](algorithm/) +* [Eigen](eigen/) +* [Simple use of threads](threads/) +* [Portable performance with Kokkos](kokkos/) diff --git a/exercises/algorithm/Makefile b/exercises/algorithm/Makefile new file mode 100644 index 0000000..89717a5 --- /dev/null +++ b/exercises/algorithm/Makefile @@ -0,0 +1,4 @@ +CXXFLAGS = --std=c++17 +CC = $(CXX) + +ex : ex.o diff --git a/exercises/algorithm/README.md b/exercises/algorithm/README.md new file mode 100644 index 0000000..278cb79 --- /dev/null +++ b/exercises/algorithm/README.md @@ -0,0 +1,12 @@ +# Algorithm use exercise + +In the file `ex.cpp` there is an incomplete program which, by +following the instructions in the comments, you can finish. + +You will likely want to refer to the documentation of the standard +library algorithms, which, for reasons, are split across two headers: + +- + +- + diff --git a/exercises/algorithm/ex.cpp b/exercises/algorithm/ex.cpp new file mode 100644 index 0000000..02848ee --- /dev/null +++ b/exercises/algorithm/ex.cpp @@ -0,0 +1,91 @@ +#include +#include +#include +#include +#include +#include + +void print_vec(std::vector &vec) { + for (auto &el : vec) { + std::cout << el << " "; + } + std::cout << std::endl << std::endl; +} + +int main(int argc, char* argv[]) { + // First, a warmup of basic algorithm usage + auto nums = std::vector(50); + + // let's initalize our vector with some random numbers + for (int i = 0; i < 50; ++i) { + nums[i] = std::rand() % 100; + } + + // Bonus: can we do this using the algorithms library? Hint - std::generate + // and use the following lambda + auto gen = []() { return std::rand() % 100; }; + + // Your code here.... + + // Now, sort nums. + + // Your code here.... + + std::cout << "Sorted nums: "; + print_vec(nums); + // Reverse sort nums, using (a) sort on its own and (b) using sort and another + // algorithm function + + // Your code here.... + + std::cout << "Reverse sorted nums (a): "; + print_vec(nums); + + // Your code here.... + + std::cout << "Reverse sorted nums (b): "; + print_vec(nums); + + // Now, lets look at a more involved example. We'll be working through Project + // Euler No.2 (https://projecteuler.net/problem=2) "By considering the terms in + // the Fibonacci sequence whose values do not exceed four million, find the sum + // of the even-valued terms" + + // First lets get the fist 47 fibonacci numbers + // BONUS: use std::transform + + auto fibs = std::vector(47); + + // Your code here.... + + + print_vec(fibs); + + // Next, get all that are less than or equal to 4 million, and store them in + // fibs_less HINT: use std::copy_if and std::back_inserter + + auto fibs_less = std::vector(); + + // Your code here.... + + std::cout << "fibs <= 4000000: "; + print_vec(fibs_less); + + // Now, get the evens. Use the same approach as above + auto evens = std::vector(); + + // Your code here.... + + + std::cout << "Evens: "; + print_vec(evens); + + // Finally, let's sum them (hint: std::accumulate) + + int sum = 0; + + std::cout << "Sum of even fibonacci numbers not greater than 4 million: " + << sum << std::endl; + + return 0; +} diff --git a/exercises/complex/Makefile b/exercises/complex/Makefile new file mode 100644 index 0000000..da851f6 --- /dev/null +++ b/exercises/complex/Makefile @@ -0,0 +1,15 @@ +CXXFLAGS = --std=c++17 -I../include + +test : complex.o test.o + $(CXX) $^ -o $@ + +test.o : catch.hpp + +catch.hpp : + wget https://github.com/catchorg/Catch2/releases/download/v2.13.6/catch.hpp + +run : test + ./test + +clean : + rm -rf *.o test diff --git a/exercises/complex/README.md b/exercises/complex/README.md new file mode 100644 index 0000000..f8a502d --- /dev/null +++ b/exercises/complex/README.md @@ -0,0 +1,3 @@ +This document is available in multiple formats: +* [PDF](instructions.pdf) +* [Markdown](instructions.md) diff --git a/exercises/complex/complex.cpp b/exercises/complex/complex.cpp new file mode 100644 index 0000000..a27600a --- /dev/null +++ b/exercises/complex/complex.cpp @@ -0,0 +1,44 @@ +#include "complex.hpp" +#include + + + +double const& Complex::real() { + return re; +} + +double Complex::imag() const { + return im; +} + +Complex Complex::conj() const { + return Complex{re, -im}; +} + +double Complex::norm() const { + return std::sqrt(norm2()); +} + +double Complex::norm2() const { + return re*re + im*im; +} + +bool operator==(Complex const& a, Complex const& b) { + return (a.re == b.re) && (a.im == b.re); +} +bool operator!=(Complex const& a, Complex const& b) { + return !(a == b); +} + +Complex operator+(Complex const& a, Complex const& b) { + return Complex{a.re + b.re, a.im + b.im}; +} + + +Complex operator*(Complex const& a, Complex const& b) { + // (a + ib)*(c + id) == (a*c - b*d) + i(b*c + a*d) +} + +Complex operator-(Complex const& a) { + return Complex{-a.re, -a.im}; +} diff --git a/exercises/complex/complex.hpp b/exercises/complex/complex.hpp new file mode 100644 index 0000000..c623b28 --- /dev/null +++ b/exercises/complex/complex.hpp @@ -0,0 +1,43 @@ +#ifndef CPPEX_COMPLEX_COMPLEX_HPP +#define CPPEX_COMPLEX_COMPLEX_HPP + +// Simple complex number class +class Complex { +public: + // Default value is zero + Complex() = default; + // Construct purely real complex + // Construct from real and imaginary parts + + // Access components + double real() const; + double imag() const; + + // Compute the complex conjugate + Complex conj(); + + // Compute the magnitude and squared magnitude + double norm() const; + double norm2() const; + + // Declare comparisons + friend bool operator==(Complex const& a, Complex const& b); + friend bool operator!=(Complex const& a, Complex const& b); + + // Declare binary arithmetic operators + friend Complex operator+(Complex const& a, Complex const& b); + friend Complex operator-(Complex const& a, Complex const& b); + friend Complex operator*(Complex const& a, Complex const& b); + friend Complex operator/(Complex const& a, Complex const& b); + // Question: how would you declare multiplication and division by a real number? + + // Unary negation + friend Complex operator-(Complex const& a); + +private: + double re = 0.0; + double im = 0.0; +}; + + +#endif diff --git a/exercises/complex/instructions.md b/exercises/complex/instructions.md new file mode 100644 index 0000000..b56090b --- /dev/null +++ b/exercises/complex/instructions.md @@ -0,0 +1,32 @@ +# Introductory C++ exercises +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +The files for this are on [Github](https://github.com/EPCCed/APT-CPP). + +To check out the repository run: + +```bash +git clone https://github.com/EPCCed/APT-CPP +cd APT-CPP/exercises/complex +``` + +## Task + +You have been provided with a simple, *partial* implementation of a complex number class and an associated test program. Your task is to alter the complex.cpp/complex.hpp files until the tests compile and run correctly! (Please don't edit the test.cpp program!). To compile, you need a C++17 capable compiler - on Cirrus the default `gcc` module is fine - then just use `make`. + +This initial program fails: + +```bash +$ module load gcc +$ make +c++ --std=c++17 -I../include -c -o complex.o complex.cpp +complex.cpp:6:24: error: out-of-line definition of 'real' does not match any declaration in 'Complex' +double const& Complex::real() { + ^~~~ +./complex.hpp:13:10: note: member declaration does not match because it is const qualified + double real() const; + +``` + +You need to start tracking down the bugs and fixing them. diff --git a/exercises/complex/instructions.pdf b/exercises/complex/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9b2ee9ce24709a69a0e140d737d20fffa5851a7e GIT binary patch literal 123088 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ő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%0Dwv% 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

YU@dC(t;23{10r*+SG{-s2qjtm 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 H%7p&`WtVf! literal 0 HcmV?d00001 diff --git a/exercises/complex/test.cpp b/exercises/complex/test.cpp new file mode 100644 index 0000000..60d8077 --- /dev/null +++ b/exercises/complex/test.cpp @@ -0,0 +1,95 @@ +// Catch2 is a unit testing library +// Here we let it create a main() function for us +#define CATCH_CONFIG_MAIN +#include "catch.hpp" + +#include "complex.hpp" + +TEST_CASE("Complex numbers are constructed real/imag parts readable") { + const Complex zero; + REQUIRE(zero.real() == 0.0); + REQUIRE(zero.imag() == 0.0); + + const Complex one{1.0}; + REQUIRE(one.real() == 1.0); + REQUIRE(one.imag() == 0.0); + + const Complex i{0, 1}; + REQUIRE(i.real() == 0.0); + REQUIRE(i.imag() == 1.0); + + const Complex z1{1, -83}; + const Complex z2 = z1; + REQUIRE(i.real() == 0.0); + REQUIRE(i.imag() == 1.0); +} + +TEST_CASE("Complex numbers can be compared") { + const Complex zero; + const Complex one{1.0}; + const Complex i{0, 1}; + REQUIRE(zero == zero); + REQUIRE(one == one); + REQUIRE(i == i); + REQUIRE(zero != one); + REQUIRE(one != i); +} + +TEST_CASE("Complex numbers can have magnitude computed") { + REQUIRE(Complex{}.norm2() == 0.0); + REQUIRE(Complex{3,4}.norm2() == 25.0); +} + +// Pure real => z == z* +void CheckConjReal(double x) { + Complex z{x}; + REQUIRE(z == z.conj()); +} +// Pure imaginary => z* == -z +void CheckConjImag(double y) { + Complex z{0.0, y}; + + REQUIRE(z == -z.conj()); +} + +TEST_CASE("Complex numbers be conjugated") { + CheckConjReal(0); + CheckConjReal(1); + CheckConjReal(-3.14); + CheckConjReal(1.876e6); + + CheckConjImag(0); + CheckConjImag(1); + CheckConjImag(-3.14); + CheckConjImag(1.876e6); +} + +void CheckZplusZeq2Z(const Complex& z) { + REQUIRE(z + z == Complex{2*z.real(), 2*z.imag()}); +} +void CheckZminusZeq0(const Complex& z) { + REQUIRE(z - z == Complex{}); +} + +TEST_CASE("Complex number can be added and subtracted") { + CheckZplusZeq2Z(1); + CheckZplusZeq2Z(0); + CheckZplusZeq2Z(-1); + + CheckZminusZeq0(1); + CheckZminusZeq0(0); + CheckZminusZeq0(-1); + CheckZminusZeq0(Complex{1,2}); + CheckZminusZeq0(Complex{-42, 1e-3}); +} + +TEST_CASE("Complex numbers can be multiplied") { + const Complex i{0, 1}; + Complex z{1}; + z = z*i; + REQUIRE(z == i); + z = z*i; + REQUIRE(z == Complex{-1}); + z = z*i; + REQUIRE(z == -i); +} diff --git a/exercises/containers/Makefile b/exercises/containers/Makefile new file mode 100644 index 0000000..e1cfa1b --- /dev/null +++ b/exercises/containers/Makefile @@ -0,0 +1,10 @@ +CXXFLAGS = --std=c++17 -I../include + +test : vector_ex.o map_ex.o test.o + $(CXX) $^ -o $@ + +run : test + ./test + +clean : + rm -rf *.o test diff --git a/exercises/containers/README.md b/exercises/containers/README.md new file mode 100644 index 0000000..f8a502d --- /dev/null +++ b/exercises/containers/README.md @@ -0,0 +1,3 @@ +This document is available in multiple formats: +* [PDF](instructions.pdf) +* [Markdown](instructions.md) diff --git a/exercises/containers/instructions.md b/exercises/containers/instructions.md new file mode 100644 index 0000000..8f60e0a --- /dev/null +++ b/exercises/containers/instructions.md @@ -0,0 +1,22 @@ +# Containers exercise + +In your clone of this repository, find the `containers` exercise and list +the files + +``` +$ cd APT-CPP/exercises/containers +$ ls +Makefile test.cpp vector_ex.cpp vector_ex.hpp +``` + +As before, `test.cpp` holds some basic unit tests. + +`vector_ex.cpp`/`.hpp` hold some functions that work on `std::vector` - provide the implementations + +The tests require that you implement, in a new header/implementation +pair of files, a function to add a string to a `std::map` as the key, +the value being the length of the string. + +You will want to find the documentatation for `map` on https://en.cppreference.com/ + +You can compile with `make` as before. diff --git a/exercises/containers/instructions.pdf b/exercises/containers/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3865e71cbbe7cb6e54c7d13a220dae6e35c8999d GIT binary patch literal 78318 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

wp+B3&5k{$td_opYWQK?Q7yzjR>nU3|n!3#e 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

k(G1Svk9VqrCF357-{ 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 YI6AvIzPplxgNqG>Kt&}cFOKj(04~3p-2eap literal 0 HcmV?d00001 diff --git a/exercises/containers/test.cpp b/exercises/containers/test.cpp new file mode 100644 index 0000000..71d414b --- /dev/null +++ b/exercises/containers/test.cpp @@ -0,0 +1,77 @@ +// Catch2 is a unit testing library +// Here we let it create a main() function for us +#define CATCH_CONFIG_MAIN +#include "catch.hpp" + +#include "vector_ex.hpp" +#include "map_ex.hpp" +#include + +// type alias +using IV = std::vector; + +IV IntRange(int n) { + auto ans = IV(n); + for (int i = 0; i < n; ++i) + ans[i] = i; + return ans; +} + +TEST_CASE("Vector Even") { + IV const empty; + REQUIRE(empty == GetEven(empty)); + + auto const zero = IntRange(1); + // Test the testing code! + REQUIRE(zero.size() == 1); + REQUIRE(zero[0] == 0); + + REQUIRE(zero == GetEven(zero)); + + auto const zero_one = IntRange(2); + // Test the testing code! + REQUIRE(zero_one.size() == 2); + REQUIRE(zero_one[0] == 0); + REQUIRE(zero_one[1] == 1); + + REQUIRE(zero == GetEven(zero_one)); + + // edited toddler random numbers + auto const random = IV{8, 127356, 1, 29, 4376, 263478, 1537}; + auto const random_even = IV{ 8, 127356, 4376, 263478}; + REQUIRE(GetEven(random) == random_even); +} + +std::string STR(IV const& v) { + std::stringstream ss; + PrintVectorOfInt(ss, v); + return ss.str(); +} + +TEST_CASE("Vector Print") { + REQUIRE(STR(IV{}) == "[ ]"); + REQUIRE(STR(IntRange(1)) == "[ 0]"); + REQUIRE(STR(IntRange(2)) == "[ 0, 1]"); + // edited toddler random numbers + REQUIRE(STR(IV{8, 127356, 1, 29, 4376, 263478, 1537}) == "[ 8, 127356, 1, 29, 4376, 263478, 1537]"); +} + +using Word2Len = std::map; + +TEST_CASE("Map adding") { + Word2Len wlens; + + SECTION( "Adding a word works") { + bool did_insert = AddWord(wlens, "test"); + REQUIRE(did_insert); + REQUIRE(wlens.size() == 1); + REQUIRE(wlens.find("test") != wlens.end()); + + // Second time must return false + bool did_insert_second_time = AddWord(wlens, "test"); + REQUIRE(!did_insert_second_time); + REQUIRE(wlens.size() == 1); + REQUIRE(wlens.find("test") != wlens.end()); + } + +} diff --git a/exercises/containers/vector_ex.cpp b/exercises/containers/vector_ex.cpp new file mode 100644 index 0000000..00c2828 --- /dev/null +++ b/exercises/containers/vector_ex.cpp @@ -0,0 +1,8 @@ +#include "vector_ex.hpp" + +// std::vector documentation: +// https://en.cppreference.com/w/cpp/container/vector + +std::vector GetEven(std::vector const& source) { +} + diff --git a/exercises/containers/vector_ex.hpp b/exercises/containers/vector_ex.hpp new file mode 100644 index 0000000..22372c4 --- /dev/null +++ b/exercises/containers/vector_ex.hpp @@ -0,0 +1,18 @@ +#ifndef CPPEX_VECTOR_EX_HPP +#define CPPEX_VECTOR_EX_HPP + +#include +#include + +// Here we declare two functions. +// Provide implementations, in vector_ex.cpp + +// Given a vector of integers, return a new vector with only the even +// elements from our input +std::vector GetEven(std::vector const& source); + +// Given a vector of ints, print the data to the stream +// [0, 1] +void PrintVectorOfInt(std::ostream& output, std::vector const& data); + +#endif diff --git a/exercises/eigen/Makefile b/exercises/eigen/Makefile new file mode 100644 index 0000000..10bc750 --- /dev/null +++ b/exercises/eigen/Makefile @@ -0,0 +1,15 @@ +CXX=clang++ +CXX=icpc +CXX=g++ +CPPFLAGS=-O2 -std=c++11 + +all: explicit implicit sparse + +explicit: explicit.o + $(CXX) $(CPPFLAGS) -o $@ $< + +implicit: implicit.o + $(CXX) $(CPPFLAGS) -o $@ $< + +sparse: sparse.o + $(CXX) $(CPPFLAGS) -o $@ $< diff --git a/exercises/eigen/README.md b/exercises/eigen/README.md new file mode 100644 index 0000000..2159542 --- /dev/null +++ b/exercises/eigen/README.md @@ -0,0 +1,6 @@ +# Eigen Demos + +Some simple demos using the Eigen C++ library to solve 1D diffusion +problems. + +See Eigen lecture for details diff --git a/exercises/eigen/explicit.cpp b/exercises/eigen/explicit.cpp new file mode 100644 index 0000000..ba27e73 --- /dev/null +++ b/exercises/eigen/explicit.cpp @@ -0,0 +1,45 @@ +#include + +#include +#include +#include + +int main() +{ + int n = 12; + + std::vector Avec(n * n); + + Eigen::Map A(Avec.data(), n, n); + A = Eigen::MatrixXd::Identity(n, n); + + double delta = 0.4; + + for (int i = 0; i < n - 1; ++i) + { + A(i + 1, i) += delta; + A(i + 1, i + 1) += -delta; + + A(i, i) += -delta; + A(i, i + 1) += +delta; + } + + std::cout << A << std::endl << std::endl; + + Eigen::VectorXd b(n); + b.setZero(); + b.head(n / 2).array() = 1.0; + + std::ofstream f; + f.open("a.txt"); + for (int i = 0; i < 20; ++i) + { + std::cout << b.transpose() << std::endl; + f << b << std::endl << std::endl << std::endl; + b = A * b; + } + + std::cout << b.transpose() << std::endl; + + return 0; +} diff --git a/exercises/eigen/implicit.cpp b/exercises/eigen/implicit.cpp new file mode 100644 index 0000000..2ae3a1d --- /dev/null +++ b/exercises/eigen/implicit.cpp @@ -0,0 +1,42 @@ +#include + +#include +#include + +int main() +{ + int n = 12; + + Eigen::MatrixXd A(n, n); + A = Eigen::MatrixXd::Identity(n, n); + + double delta = -0.4; + + for (int i = 0; i < n - 1; ++i) + { + A(i + 1, i) += delta; + A(i + 1, i + 1) += -delta; + + A(i, i) += -delta; + A(i, i + 1) += +delta; + } + + std::cout << A << std::endl << std::endl; + + Eigen::VectorXd b(n); + b.setZero(); + + b.head(n / 2).array() = 1.0; + + std::ofstream f; + f.open("a.txt"); + for (int i = 0; i < 20; ++i) + { + std::cout << b.transpose() << std::endl; + f << b << std::endl << std::endl << std::endl; + b = A.colPivHouseholderQr().solve(b); + } + + std::cout << b.transpose() << std::endl; + return 0; +} diff --git a/exercises/eigen/modules.sh b/exercises/eigen/modules.sh new file mode 100644 index 0000000..ec998db --- /dev/null +++ b/exercises/eigen/modules.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# To avoid you having to download and install Eigen for yourself, I +# have installed it in a custom module. This `module use` command +# needs to be run once per shell. +module use /work/z04/shared/rwn/modules +module load eigen/3.4.0 + +module load gcc/10.2.0 +module load gnuplot/5.4.0 + diff --git a/exercises/eigen/sparse.cpp b/exercises/eigen/sparse.cpp new file mode 100644 index 0000000..66cded5 --- /dev/null +++ b/exercises/eigen/sparse.cpp @@ -0,0 +1,42 @@ +#include +#include + +#include + +int main() +{ + int n = 10; + + Eigen::SparseMatrix A; + A.resize(n, n); + + double delta = 0.4; + + std::vector> fill; + fill.reserve(n * 4); + + for (int i = 0; i < n - 1; ++i) + { + fill.push_back(Eigen::Triplet(i + 1, i, delta)); + fill.push_back(Eigen::Triplet(i + 1, i + 1, -delta)); + fill.push_back(Eigen::Triplet(i, i, 1.0 - delta)); + fill.push_back(Eigen::Triplet(i, i + 1, delta)); + } + fill.push_back(Eigen::Triplet(n - 1, n - 1, 1.0)); + A.setFromTriplets(fill.begin(), fill.end()); + + std::cout << A << std::endl; + + Eigen::VectorXd b(n); + b.head(n / 2).array() = 1.0; + b.tail(n / 2).array() = 0.0; + + std::cout << b.transpose() << std::endl; + + for (int i = 0; i < 100; ++i) + b = A * b; + + std::cout << b.transpose() << std::endl; + + return 0; +} diff --git a/exercises/include/catch.hpp b/exercises/include/catch.hpp new file mode 100644 index 0000000..e69de29 diff --git a/exercises/kokkos/1/01_Exercise.mk b/exercises/kokkos/1/01_Exercise.mk new file mode 100644 index 0000000..b6d680c --- /dev/null +++ b/exercises/kokkos/1/01_Exercise.mk @@ -0,0 +1,30 @@ +EXE_NAME = "01_Exercise" + +default : $(EXE) + +SRC = $(wildcard *.cpp) + +CXXFLAGS = -O3 +LINK = ${CXX} +LINKFLAGS = + +DEPFLAGS = -M + +OBJ = $(SRC:.cpp=.$(KOKKOS_DEVICES).o) +LIB = +include $(KOKKOS_PATH)/Makefile.kokkos + + +$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) + +clean: + rm -f *.o *.cuda *.host + +# Compilation rules + +%.$(KOKKOS_DEVICES).o:%.cpp $(KOKKOS_CPP_DEPENDS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $@ + +test: $(EXE) + ./$(EXE) diff --git a/exercises/kokkos/1/Makefile b/exercises/kokkos/1/Makefile new file mode 100644 index 0000000..c04643e --- /dev/null +++ b/exercises/kokkos/1/Makefile @@ -0,0 +1,10 @@ + +all: OpenMP + +OpenMP: + $(MAKE) -f $@.mk + +clean: + rm -f *.o *.OpenMP + + diff --git a/exercises/kokkos/1/OpenMP.mk b/exercises/kokkos/1/OpenMP.mk new file mode 100644 index 0000000..5da3e39 --- /dev/null +++ b/exercises/kokkos/1/OpenMP.mk @@ -0,0 +1,3 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/OpenMP +EXE = ${EXE_NAME}.OpenMP +include 01_Exercise.mk diff --git a/exercises/kokkos/1/exercise_1_begin.cpp b/exercises/kokkos/1/exercise_1_begin.cpp new file mode 100644 index 0000000..2d397c2 --- /dev/null +++ b/exercises/kokkos/1/exercise_1_begin.cpp @@ -0,0 +1,219 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 2.0 +// Copyright (2014) Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions Contact H. Carter Edwards (hcedwar@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// EXERCISE 1 Goal: +// Use Kokkos to parallelize the outer loop of using Kokkos::parallel_reduce. + +#include +#include +#include +#include +#include + +#include + +void checkSizes( int &N, int &M, int &S, int &nrepeat ); + +int main( int argc, char* argv[] ) +{ + int N = -1; // number of rows 2^12 + int M = -1; // number of columns 2^10 + int S = -1; // total size 2^22 + int nrepeat = 100; // number of repeats of the test + + // Read command line arguments. + for ( int i = 0; i < argc; i++ ) { + if ( ( strcmp( argv[ i ], "-N" ) == 0 ) || ( strcmp( argv[ i ], "-Rows" ) == 0 ) ) { + N = pow( 2, atoi( argv[ ++i ] ) ); + printf( " User N is %d\n", N ); + } + else if ( ( strcmp( argv[ i ], "-M" ) == 0 ) || ( strcmp( argv[ i ], "-Columns" ) == 0 ) ) { + M = pow( 2, atof( argv[ ++i ] ) ); + printf( " User M is %d\n", M ); + } + else if ( ( strcmp( argv[ i ], "-S" ) == 0 ) || ( strcmp( argv[ i ], "-Size" ) == 0 ) ) { + S = pow( 2, atof( argv[ ++i ] ) ); + printf( " User S is %d\n", S ); + } + else if ( strcmp( argv[ i ], "-nrepeat" ) == 0 ) { + nrepeat = atoi( argv[ ++i ] ); + } + else if ( ( strcmp( argv[ i ], "-h" ) == 0 ) || ( strcmp( argv[ i ], "-help" ) == 0 ) ) { + printf( " y^T*A*x Options:\n" ); + printf( " -Rows (-N) : exponent num, determines number of rows 2^num (default: 2^12 = 4096)\n" ); + printf( " -Columns (-M) : exponent num, determines number of columns 2^num (default: 2^10 = 1024)\n" ); + printf( " -Size (-S) : exponent num, determines total matrix size 2^num (default: 2^22 = 4096*1024 )\n" ); + printf( " -nrepeat : number of repetitions (default: 100)\n" ); + printf( " -help (-h): print this message\n\n" ); + exit( 1 ); + } + } + + // Check sizes. + checkSizes( N, M, S, nrepeat ); + + // EXERCISE: Initialize Kokkos runtime. + + // Allocate y, x vectors and Matrix A: + double * const y = new double[ N ]; + double * const x = new double[ M ]; + double * const A = new double[ N * M ]; + + // Initialize y vector. + // EXERCISE: Convert outer loop to Kokkos::parallel_for. + for ( int i = 0; i < N; ++i ) { + y[ i ] = 1; + } + + // Initialize x vector. + // EXERCISE: Convert outer loop to Kokkos::parallel_for. + for ( int i = 0; i < M; ++i ) { + x[ i ] = 1; + } + + // Initialize A matrix, note 2D indexing computation. + // EXERCISE: Convert outer loop to Kokkos::parallel_for. + for ( int j = 0; j < N; ++j ) { + for ( int i = 0; i < M; ++i ) { + A[ j * M + i ] = 1; + } + } + + // Timer products. + struct timeval begin, end; + + gettimeofday( &begin, NULL ); + + for ( int repeat = 0; repeat < nrepeat; repeat++ ) { + // Application: = y^T*A*x + double result = 0; + + // EXERCISE: Convert outer loop to Kokkos::parallel_reduce. + for ( int j = 0; j < N; ++j ) { + double temp2 = 0; + + for ( int i = 0; i < M; ++i ) { + temp2 += A[ j * M + i ] * x[ i ]; + } + + result += y[ j ] * temp2; + } + + // Output result. + if ( repeat == ( nrepeat - 1 ) ) { + printf( " Computed result for %d x %d is %lf\n", N, M, result ); + } + + const double solution = (double) N * (double) M; + + if ( result != solution ) { + printf( " Error: result( %lf ) != solution( %lf )\n", result, solution ); + } + } + + gettimeofday( &end, NULL ); + + // Calculate time. + double time = 1.0 * ( end.tv_sec - begin.tv_sec ) + + 1.0e-6 * ( end.tv_usec - begin.tv_usec ); + + // Calculate bandwidth. + // Each matrix A row (each of length M) is read once. + // The x vector (of length M) is read N times. + // The y vector (of length N) is read once. + // double Gbytes = 1.0e-9 * double( sizeof(double) * ( 2 * M * N + N ) ); + double Gbytes = 1.0e-9 * double( sizeof(double) * ( M + M * N + N ) ); + + // Print results (problem size, time and bandwidth in GB/s). + printf( " N( %d ) M( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", + N, M, nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); + + delete[] A; + delete[] y; + delete[] x; + + // EXERCISE: finalize Kokkos runtime + + return 0; +} + +void checkSizes( int &N, int &M, int &S, int &nrepeat ) { + // If S is undefined and N or M is undefined, set S to 2^22 or the bigger of N and M. + if ( S == -1 && ( N == -1 || M == -1 ) ) { + S = pow( 2, 22 ); + if ( S < N ) S = N; + if ( S < M ) S = M; + } + + // If S is undefined and both N and M are defined, set S = N * M. + if ( S == -1 ) S = N * M; + + // If both N and M are undefined, fix row length to the smaller of S and 2^10 = 1024. + if ( N == -1 && M == -1 ) { + if ( S > 1024 ) { + M = 1024; + } + else { + M = S; + } + } + + // If only M is undefined, set it. + if ( M == -1 ) M = S / N; + + // If N is undefined, set it. + if ( N == -1 ) N = S / M; + + printf( " Total size S = %d N = %d M = %d\n", S, N, M ); + + // Check sizes. + if ( ( S < 0 ) || ( N < 0 ) || ( M < 0 ) || ( nrepeat < 0 ) ) { + printf( " Sizes must be greater than 0.\n" ); + exit( 1 ); + } + + if ( ( N * M ) != S ) { + printf( " N * M != S\n" ); + exit( 1 ); + } +} diff --git a/exercises/kokkos/1/submit.sh b/exercises/kokkos/1/submit.sh new file mode 100644 index 0000000..74c6302 --- /dev/null +++ b/exercises/kokkos/1/submit.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +#PBS -N kokkos1 +#PBS -q gpu-teach +#PBS -l select=1:ncpus=10:ngpus=1 +#PBS -l walltime=0:01:00 + +# Budget: use either your default or the reservation +#PBS -A $budget + +# Load the required modules +module load gcc cuda kokkos + +cd $PBS_O_WORKDIR + +export OMP_PROC_BIND=spread +export OMP_PLACES=threads + +for threads in 1 2 4 8; do + export OMP_NUM_THREADS=$threads + echo "OMP_NUM_THREADS=$OMP_NUM_THREADS" + for NROWS in 4 6 8 10 12 14 16; do + ./01_Exercise.OpenMP -N $NROWS + done +done + + diff --git a/exercises/kokkos/2/02_Exercise.mk b/exercises/kokkos/2/02_Exercise.mk new file mode 100644 index 0000000..2b8bc6f --- /dev/null +++ b/exercises/kokkos/2/02_Exercise.mk @@ -0,0 +1,26 @@ +EXE_NAME = "02_Exercise" + +default : $(EXE) + +SRC = $(wildcard *.cpp) + +CXXFLAGS = -O3 +LINK = $(CXX) + +DEPFLAGS = -M + +OBJ = $(SRC:.cpp=.$(KOKKOS_DEVICES).o) + +include $(KOKKOS_PATH)/Makefile.kokkos + +$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(KOKKOS_LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) -o $(EXE) + +clean: + rm -f *.o *.cuda *.host + +# Compilation rules + +%.$(KOKKOS_DEVICES).o:%.cpp $(KOKKOS_CPP_DEPENDS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $@ + diff --git a/exercises/kokkos/2/CudaUVM.mk b/exercises/kokkos/2/CudaUVM.mk new file mode 100644 index 0000000..4b454cc --- /dev/null +++ b/exercises/kokkos/2/CudaUVM.mk @@ -0,0 +1,4 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/CudaUVM +EXE = ${EXE_NAME}.CudaUVM +include 02_Exercise.mk + diff --git a/exercises/kokkos/2/Makefile b/exercises/kokkos/2/Makefile new file mode 100644 index 0000000..5f267e2 --- /dev/null +++ b/exercises/kokkos/2/Makefile @@ -0,0 +1,13 @@ + +all: OpenMP CudaUVM + +OpenMP: + $(MAKE) -f $@.mk + +CudaUVM: + $(MAKE) -f $@.mk + +clean: + rm -f *.o *.CudaUVM *.OpenMP + + diff --git a/exercises/kokkos/2/OpenMP.mk b/exercises/kokkos/2/OpenMP.mk new file mode 100644 index 0000000..13d5024 --- /dev/null +++ b/exercises/kokkos/2/OpenMP.mk @@ -0,0 +1,3 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/OpenMP +EXE = ${EXE_NAME}.OpenMP +include 02_Exercise.mk diff --git a/exercises/kokkos/2/exercise_2_begin.cpp b/exercises/kokkos/2/exercise_2_begin.cpp new file mode 100644 index 0000000..8710f28 --- /dev/null +++ b/exercises/kokkos/2/exercise_2_begin.cpp @@ -0,0 +1,235 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 2.0 +// Copyright (2014) Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions Contact H. Carter Edwards (hcedwar@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// EXERCISE 2 Goal: +// Replace raw allocations with Kokkos Views. +// 1. Define device views. +// 2. Replace data access with view access operators. +// +// Note: Kokkos::parallel_for() initializations were removed to initialize on host. + +#include +#include +#include +#include +#include + +#include + +void checkSizes( int &N, int &M, int &S, int &nrepeat ); + +int main( int argc, char* argv[] ) +{ + int N = -1; // number of rows 2^12 + int M = -1; // number of columns 2^10 + int S = -1; // total size 2^22 + int nrepeat = 100; // number of repeats of the test + + // Read command line arguments. + for ( int i = 0; i < argc; i++ ) { + if ( ( strcmp( argv[ i ], "-N" ) == 0 ) || ( strcmp( argv[ i ], "-Rows" ) == 0 ) ) { + N = pow( 2, atoi( argv[ ++i ] ) ); + printf( " User N is %d\n", N ); + } + else if ( ( strcmp( argv[ i ], "-M" ) == 0 ) || ( strcmp( argv[ i ], "-Columns" ) == 0 ) ) { + M = pow( 2, atof( argv[ ++i ] ) ); + printf( " User M is %d\n", M ); + } + else if ( ( strcmp( argv[ i ], "-S" ) == 0 ) || ( strcmp( argv[ i ], "-Size" ) == 0 ) ) { + S = pow( 2, atof( argv[ ++i ] ) ); + printf( " User S is %d\n", S ); + } + else if ( strcmp( argv[ i ], "-nrepeat" ) == 0 ) { + nrepeat = atoi( argv[ ++i ] ); + } + else if ( ( strcmp( argv[ i ], "-h" ) == 0 ) || ( strcmp( argv[ i ], "-help" ) == 0 ) ) { + printf( " y^T*A*x Options:\n" ); + printf( " -Rows (-N) : exponent num, determines number of rows 2^num (default: 2^12 = 4096)\n" ); + printf( " -Columns (-M) : exponent num, determines number of columns 2^num (default: 2^10 = 1024)\n" ); + printf( " -Size (-S) : exponent num, determines total matrix size 2^num (default: 2^22 = 4096*1024 )\n" ); + printf( " -nrepeat : number of repetitions (default: 100)\n" ); + printf( " -help (-h): print this message\n\n" ); + exit( 1 ); + } + } + + // Check sizes. + checkSizes( N, M, S, nrepeat ); + + Kokkos::initialize( argc, argv ); + { + // Allocate y, x vectors and Matrix A + // + // EXERCISE: Create views of the right size. + // 1. Device Views + // Hint: If arrays are not allocated, they also do not need to be + // deallocated below + using ViewVectorType = double*; + using ViewMatrixType = double**; + double* const y = new double[ N ]; + double* const x = new double[ M ];; + double* const A = new double[ N * M ];; + + // Initialize y vector on host. + // EXERCISE: Convert y to 1D View's member access API: x(i) + for ( int i = 0; i < N; ++i ) { + y[ i ] = 1; + } + + // Initialize x vector on host. + // EXERCISE: Convert x to 1D View's member access API: x(i) + for ( int i = 0; i < M; ++i ) { + x[ i ] = 1; + } + + // Initialize A matrix on host, note 2D indexing computation. + // EXERCISE: convert 'A' to use View's member access API: A(j,i) + for ( int j = 0; j < N; ++j ) { + for ( int i = 0; i < M; ++i ) { + A[ j * M + i ] = 1; + } + } + + // Timer products. + struct timeval begin, end; + + gettimeofday( &begin, NULL ); + + for ( int repeat = 0; repeat < nrepeat; repeat++ ) { + // Application: = y^T*A*x + double result = 0; + + Kokkos::parallel_reduce( N, KOKKOS_LAMBDA ( int j, double &update ) { + double temp2 = 0; + + // EXERCISE: Replace access with view access operators. + for ( int i = 0; i < M; ++i ) { + temp2 += A[ j * M + i ] * x[ i ]; + } + + update += y[ j ] * temp2; + }, result ); + + // Ensure that all kernels are finished + Kokkos::fence(); + + // Output result. + if ( repeat == ( nrepeat - 1 ) ) { + printf( " Computed result for %d x %d is %lf\n", N, M, result ); + } + + const double solution = (double) N * (double) M; + + if ( result != solution ) { + printf( " Error: result( %lf ) != solution( %lf )\n", result, solution ); + } + } + + gettimeofday( &end, NULL ); + + // Calculate time. + double time = 1.0 * ( end.tv_sec - begin.tv_sec ) + + 1.0e-6 * ( end.tv_usec - begin.tv_usec ); + + // Calculate bandwidth. + // Each matrix A row (each of length M) is read once. + // The x vector (of length M) is read N times. + // The y vector (of length N) is read once. + // double Gbytes = 1.0e-9 * double( sizeof(double) * ( 2 * M * N + N ) ); + double Gbytes = 1.0e-9 * double( sizeof(double) * ( M + M * N + N ) ); + + // Print results (problem size, time and bandwidth in GB/s). + printf( " N( %d ) M( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", + N, M, nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); + + //EXERCISE hint... + delete [] y; + delete [] x; + delete [] A; + } + + Kokkos::finalize(); + + return 0; +} + +void checkSizes( int &N, int &M, int &S, int &nrepeat ) { + // If S is undefined and N or M is undefined, set S to 2^22 or the bigger of N and M. + if ( S == -1 && ( N == -1 || M == -1 ) ) { + S = pow( 2, 22 ); + if ( S < N ) S = N; + if ( S < M ) S = M; + } + + // If S is undefined and both N and M are defined, set S = N * M. + if ( S == -1 ) S = N * M; + + // If both N and M are undefined, fix row length to the smaller of S and 2^10 = 1024. + if ( N == -1 && M == -1 ) { + if ( S > 1024 ) { + M = 1024; + } + else { + M = S; + } + } + + // If only M is undefined, set it. + if ( M == -1 ) M = S / N; + + // If N is undefined, set it. + if ( N == -1 ) N = S / M; + + printf( " Total size S = %d N = %d M = %d\n", S, N, M ); + + // Check sizes. + if ( ( S < 0 ) || ( N < 0 ) || ( M < 0 ) || ( nrepeat < 0 ) ) { + printf( " Sizes must be greater than 0.\n" ); + exit( 1 ); + } + + if ( ( N * M ) != S ) { + printf( " N * M != S\n" ); + exit( 1 ); + } +} diff --git a/exercises/kokkos/2/submit.sh b/exercises/kokkos/2/submit.sh new file mode 100644 index 0000000..aa94596 --- /dev/null +++ b/exercises/kokkos/2/submit.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +#PBS -N kokkos2 +#PBS -q gpu-teach +#PBS -l select=1:ncpus=10:ngpus=1 +#PBS -l walltime=0:01:00 + +# Budget: use either your default or the reservation +#PBS -A $budget + +# Load the required modules +module load gcc cuda kokkos + +cd $PBS_O_WORKDIR + +export OMP_PROC_BIND=spread +export OMP_PLACES=threads +export OMP_NUM_THREADS=10 + +# Pick a random device as PBS on Cirrus not yet configured to control +# GPU visibility +r=$RANDOM; let "r %= 4"; +export CUDA_VISIBLE_DEVICES=$r + + +for NROWS in 4 6 8 10 12 14 16; do + echo "OpenMP version, OMP_NUM_THREADS=$OMP_NUM_THREADS" + ./02_Exercise.OpenMP -N $NROWS + echo "CudaUVM version" + ./02_Exercise.CudaUVM -N $NROWS +done diff --git a/exercises/kokkos/3/03_Exercise.mk b/exercises/kokkos/3/03_Exercise.mk new file mode 100644 index 0000000..c84db51 --- /dev/null +++ b/exercises/kokkos/3/03_Exercise.mk @@ -0,0 +1,30 @@ +EXE_NAME = "03_Exercise" + +default : $(EXE) + +SRC = $(wildcard *.cpp) + +CXXFLAGS = -O3 +LINK = ${CXX} +LINKFLAGS = + +DEPFLAGS = -M + +OBJ = $(SRC:.cpp=.$(KOKKOS_DEVICES).o) +LIB = +include $(KOKKOS_PATH)/Makefile.kokkos + + +$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) + +clean: + rm -f *.o *.cuda *.host + +# Compilation rules + +%.$(KOKKOS_DEVICES).o:%.cpp $(KOKKOS_CPP_DEPENDS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $@ + +test: $(EXE) + ./$(EXE) diff --git a/exercises/kokkos/3/Cuda.mk b/exercises/kokkos/3/Cuda.mk new file mode 100644 index 0000000..37ef0d4 --- /dev/null +++ b/exercises/kokkos/3/Cuda.mk @@ -0,0 +1,4 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/Cuda +EXE = ${EXE_NAME}.Cuda +include 03_Exercise.mk + diff --git a/exercises/kokkos/3/Makefile b/exercises/kokkos/3/Makefile new file mode 100644 index 0000000..3a84d4d --- /dev/null +++ b/exercises/kokkos/3/Makefile @@ -0,0 +1,13 @@ + +all: OpenMP Cuda + +OpenMP: + $(MAKE) -f $@.mk + +Cuda: + $(MAKE) -f $@.mk + +clean: + rm -f *.o *.Cuda *.OpenMP + + diff --git a/exercises/kokkos/3/OpenMP.mk b/exercises/kokkos/3/OpenMP.mk new file mode 100644 index 0000000..981f709 --- /dev/null +++ b/exercises/kokkos/3/OpenMP.mk @@ -0,0 +1,3 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/OpenMP +EXE = ${EXE_NAME}.OpenMP +include 03_Exercise.mk diff --git a/exercises/kokkos/3/exercise_3_begin.cpp b/exercises/kokkos/3/exercise_3_begin.cpp new file mode 100644 index 0000000..3b8349c --- /dev/null +++ b/exercises/kokkos/3/exercise_3_begin.cpp @@ -0,0 +1,226 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 2.0 +// Copyright (2014) Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions Contact H. Carter Edwards (hcedwar@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// EXERCISE 3 Goal: +// Manage data transfers from Host to Device manually. +// 1. Define device views. +// 2. Define host views using mirror of corresponding device views. +// 3. Initialize the host views. +// 4. Deep copy host view to device view. + +#include +#include +#include +#include +#include + +#include + +void checkSizes( int &N, int &M, int &S, int &nrepeat ); + +int main( int argc, char* argv[] ) +{ + int N = -1; // number of rows 2^12 + int M = -1; // number of columns 2^10 + int S = -1; // total size 2^22 + int nrepeat = 100; // number of repeats of the test + + // Read command line arguments. + for ( int i = 0; i < argc; i++ ) { + if ( ( strcmp( argv[ i ], "-N" ) == 0 ) || ( strcmp( argv[ i ], "-Rows" ) == 0 ) ) { + N = pow( 2, atoi( argv[ ++i ] ) ); + printf( " User N is %d\n", N ); + } + else if ( ( strcmp( argv[ i ], "-M" ) == 0 ) || ( strcmp( argv[ i ], "-Columns" ) == 0 ) ) { + M = pow( 2, atof( argv[ ++i ] ) ); + printf( " User M is %d\n", M ); + } + else if ( ( strcmp( argv[ i ], "-S" ) == 0 ) || ( strcmp( argv[ i ], "-Size" ) == 0 ) ) { + S = pow( 2, atof( argv[ ++i ] ) ); + printf( " User S is %d\n", S ); + } + else if ( strcmp( argv[ i ], "-nrepeat" ) == 0 ) { + nrepeat = atoi( argv[ ++i ] ); + } + else if ( ( strcmp( argv[ i ], "-h" ) == 0 ) || ( strcmp( argv[ i ], "-help" ) == 0 ) ) { + printf( " y^T*A*x Options:\n" ); + printf( " -Rows (-N) : exponent num, determines number of rows 2^num (default: 2^12 = 4096)\n" ); + printf( " -Columns (-M) : exponent num, determines number of columns 2^num (default: 2^10 = 1024)\n" ); + printf( " -Size (-S) : exponent num, determines total matrix size 2^num (default: 2^22 = 4096*1024 )\n" ); + printf( " -nrepeat : number of repetitions (default: 100)\n" ); + printf( " -help (-h): print this message\n\n" ); + exit( 1 ); + } + } + + // Check sizes. + checkSizes( N, M, S, nrepeat ); + + Kokkos::initialize( argc, argv ); + { + // Allocate y, x vectors and Matrix A on device. + typedef Kokkos::View ViewVectorType; + typedef Kokkos::View ViewMatrixType; + ViewVectorType y( "y", N ); + ViewVectorType x( "x", M ); + ViewMatrixType A( "A", N, M ); + + // EXERCISE: Create mirrors of the views on host. + + // Initialize y vector on host. + // EXERCISE: Use host version of y. + for ( int i = 0; i < N; ++i ) { + y( i ) = 1; + } + + // Initialize x vector on host. + // EXERCISE: Use host version of x. + for ( int i = 0; i < M; ++i ) { + x( i ) = 1; + } + + // Initialize A matrix on host. + // EXERCISE: Use host version of A. + for ( int j = 0; j < N; ++j ) { + for ( int i = 0; i < M; ++i ) { + A( j, i ) = 1; + } + } + + // EXERCISE: Perform deep copy of host views to device views. + + // Timer products. + struct timeval begin, end; + + gettimeofday( &begin, NULL ); + + for ( int repeat = 0; repeat < nrepeat; repeat++ ) { + // Application: = y^T*A*x + double result = 0; + + Kokkos::parallel_reduce( N, KOKKOS_LAMBDA ( int j, double &update ) { + double temp2 = 0; + + for ( int i = 0; i < M; ++i ) { + temp2 += A( j, i ) * x( i ); + } + + update += y( j ) * temp2; + }, result ); + + // Output result. + if ( repeat == ( nrepeat - 1 ) ) { + printf( " Computed result for %d x %d is %lf\n", N, M, result ); + } + + const double solution = (double) N * (double) M; + + if ( result != solution ) { + printf( " Error: result( %lf ) != solution( %lf )\n", result, solution ); + } + } + + gettimeofday( &end, NULL ); + + // Calculate time. + double time = 1.0 * ( end.tv_sec - begin.tv_sec ) + + 1.0e-6 * ( end.tv_usec - begin.tv_usec ); + + // Calculate bandwidth. + // Each matrix A row (each of length M) is read once. + // The x vector (of length M) is read N times. + // The y vector (of length N) is read once. + // double Gbytes = 1.0e-9 * double( sizeof(double) * ( 2 * M * N + N ) ); + double Gbytes = 1.0e-9 * double( sizeof(double) * ( M + M * N + N ) ); + + // Print results (problem size, time and bandwidth in GB/s). + printf( " N( %d ) M( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", + N, M, nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); + + } + + Kokkos::finalize(); + + return 0; +} + +void checkSizes( int &N, int &M, int &S, int &nrepeat ) { + // If S is undefined and N or M is undefined, set S to 2^22 or the bigger of N and M. + if ( S == -1 && ( N == -1 || M == -1 ) ) { + S = pow( 2, 22 ); + if ( S < N ) S = N; + if ( S < M ) S = M; + } + + // If S is undefined and both N and M are defined, set S = N * M. + if ( S == -1 ) S = N * M; + + // If both N and M are undefined, fix row length to the smaller of S and 2^10 = 1024. + if ( N == -1 && M == -1 ) { + if ( S > 1024 ) { + M = 1024; + } + else { + M = S; + } + } + + // If only M is undefined, set it. + if ( M == -1 ) M = S / N; + + // If N is undefined, set it. + if ( N == -1 ) N = S / M; + + printf( " Total size S = %d N = %d M = %d\n", S, N, M ); + + // Check sizes. + if ( ( S < 0 ) || ( N < 0 ) || ( M < 0 ) || ( nrepeat < 0 ) ) { + printf( " Sizes must be greater than 0.\n" ); + exit( 1 ); + } + + if ( ( N * M ) != S ) { + printf( " N * M != S\n" ); + exit( 1 ); + } +} diff --git a/exercises/kokkos/3/submit.sh b/exercises/kokkos/3/submit.sh new file mode 100644 index 0000000..f6e85a4 --- /dev/null +++ b/exercises/kokkos/3/submit.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +#PBS -N kokkos3 +#PBS -q gpu-teach +#PBS -l select=1:ncpus=10:ngpus=1 +#PBS -l walltime=0:01:00 + +# Budget: use either your default or the reservation +#PBS -A $budget + +# Load the required modules +module load gcc cuda kokkos + +cd $PBS_O_WORKDIR + +export OMP_PROC_BIND=spread +export OMP_PLACES=threads +export OMP_NUM_THREADS=10 + +# Pick a random device as PBS on Cirrus not yet configured to control +# GPU visibility +r=$RANDOM; let "r %= 4"; +export CUDA_VISIBLE_DEVICES=$r + + +for NROWS in 4 6 8 10 12 14 16; do + echo "OpenMP version, OMP_NUM_THREADS=$OMP_NUM_THREADS" + ./03_Exercise.OpenMP -N $NROWS + echo "CudaUVM version" + ./03_Exercise.Cuda -N $NROWS +done diff --git a/exercises/kokkos/4/04_Exercise.mk b/exercises/kokkos/4/04_Exercise.mk new file mode 100644 index 0000000..571fcac --- /dev/null +++ b/exercises/kokkos/4/04_Exercise.mk @@ -0,0 +1,30 @@ +EXE_NAME = "04_Exercise" + +default : $(EXE) + +SRC = $(wildcard *.cpp) + +CXXFLAGS = -O3 +LINK = ${CXX} +LINKFLAGS = + +DEPFLAGS = -M + +OBJ = $(SRC:.cpp=.Any.o) +LIB = +include $(KOKKOS_PATH)/Makefile.kokkos + + +$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) + +clean: + rm -f *.o *.cuda *.host + +# Compilation rules + +%.Any.o:%.cpp $(KOKKOS_CPP_DEPENDS) + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $@ + +test: $(EXE) + ./$(EXE) diff --git a/exercises/kokkos/4/Any.mk b/exercises/kokkos/4/Any.mk new file mode 100644 index 0000000..33db1e6 --- /dev/null +++ b/exercises/kokkos/4/Any.mk @@ -0,0 +1,3 @@ +KOKKOS_PATH = $(KOKKOS_DIR)/All +EXE = ${EXE_NAME}.Any +include 04_Exercise.mk diff --git a/exercises/kokkos/4/Makefile b/exercises/kokkos/4/Makefile new file mode 100644 index 0000000..a6894b4 --- /dev/null +++ b/exercises/kokkos/4/Makefile @@ -0,0 +1,5 @@ +Any: + $(MAKE) -f $@.mk + +clean: + rm -f *.o *.Any diff --git a/exercises/kokkos/4/exercise_4_begin.cpp b/exercises/kokkos/4/exercise_4_begin.cpp new file mode 100644 index 0000000..b3de495 --- /dev/null +++ b/exercises/kokkos/4/exercise_4_begin.cpp @@ -0,0 +1,254 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 2.0 +// Copyright (2014) Sandia Corporation +// +// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions Contact H. Carter Edwards (hcedwar@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// EXERCISE 4 Goals: +// Add custom Spaces, Layouts to Views. +// Add custom RangePolicy to Kokkos::parallel_*** calls. +// Experiment by changing the Layouts and Spaces; then test the effect on performance. + +#include +#include +#include +#include +#include + +#include + +void checkSizes( int &N, int &M, int &S, int &nrepeat ); + +int main( int argc, char* argv[] ) +{ + int N = -1; // number of rows 2^12 + int M = -1; // number of columns 2^10 + int S = -1; // total size 2^22 + int nrepeat = 100; // number of repeats of the test + + // Read command line arguments. + for ( int i = 0; i < argc; i++ ) { + if ( ( strcmp( argv[ i ], "-N" ) == 0 ) || ( strcmp( argv[ i ], "-Rows" ) == 0 ) ) { + N = pow( 2, atoi( argv[ ++i ] ) ); + printf( " User N is %d\n", N ); + } + else if ( ( strcmp( argv[ i ], "-M" ) == 0 ) || ( strcmp( argv[ i ], "-Columns" ) == 0 ) ) { + M = pow( 2, atof( argv[ ++i ] ) ); + printf( " User M is %d\n", M ); + } + else if ( ( strcmp( argv[ i ], "-S" ) == 0 ) || ( strcmp( argv[ i ], "-Size" ) == 0 ) ) { + S = pow( 2, atof( argv[ ++i ] ) ); + printf( " User S is %d\n", S ); + } + else if ( strcmp( argv[ i ], "-nrepeat" ) == 0 ) { + nrepeat = atoi( argv[ ++i ] ); + } + else if ( ( strcmp( argv[ i ], "-h" ) == 0 ) || ( strcmp( argv[ i ], "-help" ) == 0 ) ) { + printf( " y^T*A*x Options:\n" ); + printf( " -Rows (-N) : exponent num, determines number of rows 2^num (default: 2^12 = 4096)\n" ); + printf( " -Columns (-M) : exponent num, determines number of columns 2^num (default: 2^10 = 1024)\n" ); + printf( " -Size (-S) : exponent num, determines total matrix size 2^num (default: 2^22 = 4096*1024 )\n" ); + printf( " -nrepeat : number of repetitions (default: 100)\n" ); + printf( " -help (-h): print this message\n\n" ); + exit( 1 ); + } + } + + // Check sizes. + checkSizes( N, M, S, nrepeat ); + + Kokkos::initialize( argc, argv ); + + // EXERCISE give-away: Choose an Execution Space. + // using ExecSpace = Kokkos::Serial; + // using ExecSpace = Kokkos::Threads; + // using ExecSpace = Kokkos::OpenMP; + using ExecSpace = Kokkos::Cuda; + + // EXERCISE: Choose device memory space. + // using MemSpace = Kokkos::HostSpace; + // using MemSpace = Kokkos::OpenMP; + // using MemSpace = Kokkos::CudaSpace; + using MemSpace = Kokkos::CudaUVMSpace; + + // EXERCISE give-away: Choose a Layout. + // EXERCISE: When exercise is correctly implemented, then + // either layout will generate the correct answer. + // However, performance will be different! + // using Layout = Kokkos::LayoutLeft; + using Layout = Kokkos::LayoutRight; + + // EXERCISE give-away: Use a RangePolicy. + using range_policy = Kokkos::RangePolicy; + + // Allocate y, x vectors and Matrix A on device. + // EXERCISE: Use MemSpace and Layout. + using ViewVectorType = Kokkos::View; + using ViewMatrixType = Kokkos::View; + { + ViewVectorType y( "y", N ); + ViewVectorType x( "x", M ); + ViewMatrixType A( "A", N, M ); + + // Create host mirrors of device views. + ViewVectorType::HostMirror h_y = Kokkos::create_mirror_view( y ); + ViewVectorType::HostMirror h_x = Kokkos::create_mirror_view( x ); + ViewMatrixType::HostMirror h_A = Kokkos::create_mirror_view( A ); + + // Initialize y vector on host. + for ( int i = 0; i < N; ++i ) { + h_y( i ) = 1; + } + + // Initialize x vector on host. + for ( int i = 0; i < M; ++i ) { + h_x( i ) = 1; + } + + // Initialize A matrix on host. + for ( int j = 0; j < N; ++j ) { + for ( int i = 0; i < M; ++i ) { + h_A( j, i ) = 1; + } + } + + // Deep copy host views to device views. + Kokkos::deep_copy( y, h_y ); + Kokkos::deep_copy( x, h_x ); + Kokkos::deep_copy( A, h_A ); + + // Timer products. + struct timeval begin, end; + + gettimeofday( &begin, NULL ); + + for ( int repeat = 0; repeat < nrepeat; repeat++ ) { + // Application: = y^T*A*x + double result = 0; + + // EXERCISE: Use Kokkos::RangePolicy to execute parallel_reduce + // in the correct space. + Kokkos::parallel_reduce(N, + KOKKOS_LAMBDA ( int j, double &update ) { + double temp2 = 0; + + for ( int i = 0; i < M; ++i ) { + temp2 += A( j, i ) * x( i ); + } + + update += y( j ) * temp2; + }, result ); + Kokkos::fence(); + // Output result. + if ( repeat == ( nrepeat - 1 ) ) { + printf( " Computed result for %d x %d is %lf\n", N, M, result ); + } + + const double solution = (double) N * (double) M; + + if ( result != solution ) { + printf( " Error: result( %lf ) != solution( %lf )\n", result, solution ); + } + } + + gettimeofday( &end, NULL ); + + // Calculate time. + double time = 1.0 * ( end.tv_sec - begin.tv_sec ) + + 1.0e-6 * ( end.tv_usec - begin.tv_usec ); + + // Calculate bandwidth. + // Each matrix A row (each of length M) is read once. + // The x vector (of length M) is read N times. + // The y vector (of length N) is read once. + // double Gbytes = 1.0e-9 * double( sizeof(double) * ( 2 * M * N + N ) ); + double Gbytes = 1.0e-9 * double( sizeof(double) * ( M + M * N + N ) ); + + // Print results (problem size, time and bandwidth in GB/s). + printf( " N( %d ) M( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", + N, M, nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); + + } + + Kokkos::finalize(); + + return 0; +} + +void checkSizes( int &N, int &M, int &S, int &nrepeat ) { + // If S is undefined and N or M is undefined, set S to 2^22 or the bigger of N and M. + if ( S == -1 && ( N == -1 || M == -1 ) ) { + S = pow( 2, 22 ); + if ( S < N ) S = N; + if ( S < M ) S = M; + } + + // If S is undefined and both N and M are defined, set S = N * M. + if ( S == -1 ) S = N * M; + + // If both N and M are undefined, fix row length to the smaller of S and 2^10 = 1024. + if ( N == -1 && M == -1 ) { + if ( S > 1024 ) { + M = 1024; + } + else { + M = S; + } + } + + // If only M is undefined, set it. + if ( M == -1 ) M = S / N; + + // If N is undefined, set it. + if ( N == -1 ) N = S / M; + + printf( " Total size S = %d N = %d M = %d\n", S, N, M ); + + // Check sizes. + if ( ( S < 0 ) || ( N < 0 ) || ( M < 0 ) || ( nrepeat < 0 ) ) { + printf( " Sizes must be greater than 0.\n" ); + exit( 1 ); + } + + if ( ( N * M ) != S ) { + printf( " N * M != S\n" ); + exit( 1 ); + } +} diff --git a/exercises/kokkos/4/submit.sh b/exercises/kokkos/4/submit.sh new file mode 100644 index 0000000..7dc65fa --- /dev/null +++ b/exercises/kokkos/4/submit.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +#PBS -N kokkos4 +#PBS -q gpu-teach +#PBS -l select=1:ncpus=10:ngpus=1 +#PBS -l walltime=0:01:00 + +# Budget: use either your default or the reservation +#PBS -A $budget + +# Load the required modules +module load gcc cuda kokkos + +cd $PBS_O_WORKDIR + +export OMP_PROC_BIND=spread +export OMP_PLACES=threads +export OMP_NUM_THREADS=10 + +# Pick a random device as PBS on Cirrus not yet configured to control +# GPU visibility +r=$RANDOM; let "r %= 4"; +export CUDA_VISIBLE_DEVICES=$r + + +for NROWS in 4 6 8 10 12 14 16; do + ./04_Exercise.Any -N $NROWS +done + + + diff --git a/exercises/kokkos/README.md b/exercises/kokkos/README.md new file mode 100644 index 0000000..f8a502d --- /dev/null +++ b/exercises/kokkos/README.md @@ -0,0 +1,3 @@ +This document is available in multiple formats: +* [PDF](instructions.pdf) +* [Markdown](instructions.md) diff --git a/exercises/kokkos/dot_prod.png b/exercises/kokkos/dot_prod.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2c5df659e6e1fc8e41e256695298265b98deca GIT binary patch literal 24798 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 2**10 = 1024`). + +* `-N` - the number of rows (default = 12) +* `-M` - the number of columns (default = 10) +* `-S` - the total size (default = 22, must equal sum of M and N) + +Can also specify the number of repeats: +* `-nrepeat` (default = 100) + +When using OpenMP, specify the number of threads to use by setting the +`OMP_NUM_THREADS` environment variable, e.g.: +``` +export OMP_NUM_THREADS=1 +./01_Exercise.OpenMP -N 12 +``` +Or instead use the command line argument `--kokkos-threads=n`. You can +also use the option `--kokkos-numa=2` if you run across the two +sockets on nodes. + +Things to look at: + +* vary problem size +* vary number of cores +* compare Skylake Gold (GPU nodes) vs Broadwell (regular nodes) + +# 2. Use Views + +The corresponding source code is in +`APT-CPP/exercies/kokkos/2/exercise_2_begin.cpp`. + +In this part, you change the data storage from raw arrays to +`Kokkos::View` instantiations. The `View` template class provides +access to elements via `operator()` to allow multidimensional indexing +and thus encapsulation of the actual layout of data. + +Note: we are forcing Kokkos use to unified memory for the CUDA build +so you do not need to use mirror views (yet!). + +Compile with `make` and run the code on the CPU with OpenMP and on the +GPU with CUDA + UVM - see the example submission script for +details. Compare the performance you get for the CPU to the GPU for a +range of problem sizes. + +You can plot results with the plotting notebook explained above. + +# 3. Use Mirror Views + +The corresponding source code is in +`APT-CPP/exercies/kokkos/3/exercise_3_begin.cpp`. + +Here we add `HostMirror` instances to manage transfer of data between +host and GPU memories. Search the source for comments saying +`EXERCISE` to see where to change things. + +Note that we are no longer forcing CUDA to use Unified Memory. + +Compile with make and run the code on a GPU node - see `submit.sh` for +example use. Again, compare performance between CPU and GPU for a +range of problem sizes. + + +# 4. Control the Layout + +The corresponding source code is in +`APT-CPP/exercies/kokkos/4/exercise_4_begin.cpp`. + +Here you will control the layout of the data and experiment with the +combinations of the execution space and data layout. Search the +source for comments saying `EXERCISE` to see where to change things. + +Compile for a variety of memory layouts and execution spaces and run +across a range of problem sizes. Plot the results and try to +understand the variation. diff --git a/exercises/kokkos/instructions.pdf b/exercises/kokkos/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d55deb5b05c217e293955b7335307a1ce8e463e5 GIT binary patch literal 152639 zcmb5Vby${L^erj~(j_1z-5{Nk($d`}-JQ~)gi_Ki-6b8;-QC^YUBX$o_de(T@w@jq zmq#B^-tYascda?cnsbaX$>oGa>6qx*;K@fOI%nXS7>O8(Z1m0Hd3fL%q>QXh98HOs zm>F4#{(iwTh?-eC8rc&uh+6778VMU2*cckY^YOtuINBTOS;4!`g{nx}th1vw-K*|U zL10QNWDqo2jV~T#QZ00SkhgS~Gn}J%_f1DaV$FM*I8ecII*{Z8Cob|f?{fUBd!JX~ z2yPCK4eIas$<^a#tilK2g>-w=51W_c`>J}j>Hi0;-|UChbe^2`Pl|$`nS$#!L;<4 z!Y6OPd{%1TK25lZjKLz$6hM@Z6ZhM^lSVm{(fcf+&?hhhSDe8qJ$~}`lxKo;tCoMK zY?g%gitlt~QJ60rzBGOBM`j5jVs-p6GW1*Z&v1=N%cSYt@B0@o#Fq1l56ZHbZW2tU z(X1$1o6REGqi~n$RfZ>0V-iBO)n(f?!gIWBq)DxW1a=y6E8pK+*O%d9romoLRO=#- z;foQja4rZ3Nd$}Mn}jX)nd{2wSIDZpdKzP9WSpB$<|okWQ}j|-dn>XXo!Z%mE0+`) zu;Tu%7Iy#D7~cCcM#NmNDlNYah`a2m!?X3fRRQZb!l|Siy~dvnzB;6Bk1ydH>o$Bi z=!rw3NrdJvuYQ`9I#DlY<;NVviN#;wXuPN_de!Qgd6tYJ;(IqG+Rj-y^4(A2MX3xf zRQ@=$-(nz@fRzq>BnJ83-S`_xoiFH)?=k{l7`{?@DlIP6^xKXH_1%Ah*v20Xm{eXM zk^YdxqiKdmznxWu+9UrcT{?> z#KB+(ma{Fn)?m%Yk6q(Lz7QGjjW?s_!pA={a-8W8og0NPV)IQt&GLRqQEXF(uaf-O zi*4@3+arFOBx}4)`Q*V8%<#s5EIv<>MiGMg6ZM0}YsAziBSpP=YNKDA1;}tSFJo7{G}U9TRGXd)n`lOwzWiVYZuOt@7@eoz+I?B6`@}u(vT!bvBhn9|KN@P z6EtB(uQ|Mtwc)?;1%7&lKKB0y1S);DH6mhAlhrpjGH`@vP;}CF{QE!RR(d8z@C>SE zh5#Vhm|5W&J{p;sm^uQDMOQ3qF4{Z`r+G_O>xI%P%Y}EGWnr-z_dKR->d6 ztg5N`GOVPcGBq*5%Esn-a{{ps<-Z4WcUZIB*WYiTukYdEL9f%`x-&vdNtsKB*xA`x zRaK>jnf|Ek{cs8sD*7_Dth(CS)^?`GX1UH`yP=^$r_n7YE)J%rg+?&FiJ_GdWd!x@ zTaUX7GfBz*&*xj>5)$@ycAund{!U}5iT!J(6J+8V_*Gb zaXtBTl3ZrcU0zXvfPer#cd1Sz?vK^O!<2}K)5kyVMf4a2$K&Z~X)8;O?u;9X3JPm0 zD=$bMjv4-(w4-1Usi~{;^77*0;myy_myOBkek1ZhTOkt{7oT|X#or&gVaGewbReFI zgoLC&md?e&A^7`uKVKL%y~%Vr&tLCVm6dtD9%dF6JgyFAUqBYX31$A|`OF-0hk=QC zd3hPfpxfm2=dM_@Ccxi+a&q!{QK)?HzAHiyrOglb^(|Ff;nhy{#n2)lB2G+9kdcuQ zG2=7o3sb(EnVE5Patg=ij!jJbt{f02M6an@)sDC0CrkhS_C>25 zgPAf~m7-eDduLZyS1ql#!bpr8FIit;nOj&aH@d@EHDqT)kGwc+EG|as3gm1Nim1iG zl=d0^V1x4bQfFde0kIu12<=l31QT@&WB|#xZ{J2oM?q?E*{ywzkH_|hSJ zbY*zFZWk3M!=IGC#D7S46H{t`M@>CCJx$2vNY#NxK|$f`>kD!M01g`)n@{-AZ*ev4 zJe?r({QSd!fUds2J^(cv8-}(Y;o#tCqJLFazY3FU$1GyPD8TZAHMM49Vv3B6{PGG3 zm(6@4f>iAF>(}4Ee<#X=`S8g=_zz{)3siu20@w(n!sh0CTZ2i|qCNfns;a8%8*K2C z+@TQ~CXnl_#Kgqrmpw7Gs`mEwG_-|88{Hh2>5sG!6fJ*nadByAXkMUi52a*cx3;${ zs;PY}t`e0>lUq(iVO6q5xs#itnyXsA)sO6#Uks(=j1bBYr|%}n zYK^wrr`6TfQT0E44Hmo<#LFUa)78}#5D@r|rlX@XB8}EGLwFaPDHc9wy=ZP?GAvwP zQ&V1E{%Z!xcmQW^R#Qz)P2I|P3e~>WZe0`vCMTQX?Sj6Ag|#&@e*)bKSPSApZ7L!| zW-_uYZWOXtFfi@vHEsM9=*e6(G<&qUId_ITmF`I7FZ{Z?!oI-)fclPxPAMZLE8D$& zC!eQd(DB>lm1Es<>XcT;9&=Jt>>GwYq%_?ukm>a5;5uiUQ}Z~43gSb~c; zRAQ@#-e|t9bIs}R8Ls-}OvX`JK3~>1VgK;;n;Sx`Ww{=G>fI|zN-2E~9i!^rsRU{v zJ8JcxyDaS1&W1TYGO?N|pKqa&5BNt?-mxO|G#kh*I{aBlBA87Z?!1 zUqf8aw?Y%^bMBRo^Crr7D!=cr;)+WQl&IGY2`US5F!Hc)rA)wwA2Ppxi32I<^7AWW6EXWhA)Ag>NnX|!MS4)B zV+drI@yK?;Zf$+Nb0FG$_4^^sw4cd1@v&HuvGhL2aDD=5iq z9(OWv!CqZiskM!8=A$dGWsYTxQR#f6Dojfy@jK*4-XHjU>nEs zU4)6bL`F#oasX2*Gh~wh*ol?fVad5b}x^ljKkfx*nh>yVxi8C69 zGkSaAU}^b|6RxTd7S^k*tSrB@^eHDD>c4w%lIC%^S_u_G!24Hu33b%YD4{Znq?;r9(^ukE=!xIXD{r%OU_HXCe`T0`q-?9GwB2rQV zb8~Z}qjt+pp5P=|w$9b~?-lBzatu?2rKJq?^x`ry0sWr)Q^f#B>9uMZ!50@77dLm3 zOsS={^`mG_(*JpA2tqtuTv~vPFaVcV2wH-&CF24D1BG<80q$sPOW!E*{rCJhq;vE0 znwpyXdwbw0cW`ic2?;40id$tqS#WW2;pYd*m9jK516%g$-xs`EnNx*FN2Q*ao)%(7 zd-I0f?PAAie+m>Q^7k`sr^}{b+5cHS&!_hm<|-L=bzRUIZ3(h&4X~)*4KT}@YpT$ii*t5%>z)^HGflqOYWL*(z6}@czsY&mvp{$Z&Omc zyswwmthz+hA2XY+yzU5S77#1QE7G&tPSj9}6S9n#eL}@Z=w+aCyed~UR!6_ZK`4CU z^gi@W`?WJ32e*;E&scQpSzH(TJ<-}+kC!E&c~hk_fB)T%?{yRXC|!b10<* z8(g-{I>xrwVPolur-6Zipde%?tZig$Y^;q-92|JU%a@{G{r#zF3%L&YJPu2qs@#W5 z7u`i8c?h9*=olj-m2I2%M68___irb;Wlg?`)3a)P-n`1R(8&tmXiO#KcCezEW=*o< z<~`ywqDifmaj$cA_2xUJUB|O;$ErWa3YP5As{iwK5Xw{b@el} z@cAoB4*M*?N0vP5SBoF8K>4S`OtFyhrL-z2BQ=g1bbajW*{4%$Q{u}u#1sq1DJ&`| z?w8_gwdEq@pUgooHe__1ULl3kM{9O6jIs3j z1WFNl!DXY!=SL7i2il@uN43>!1rmNjCoYc#f7ZG~PR9lRxbW?nGJ_si4ERaK5LgtH zCx)#eZ8xi-#4;4^(qZ-EgDsB^=XMc|&)M2Z6@1@9KBUX>cEXx#M|Jal5`LM9MJ`c? zdAQH+%t*qV{jM=DVT2|#i<-Jw##duH8YYB@?SWrZtN!IJ8Nb0%>VBf|PpGcQIAjHa zKkd39dBin-kjBxK7c=!aXF()8x4jB*U(n#68cLpnhnUp%kha8A1i&kmA%LRi1^a>4 z1N)rz&&c+i$?!P705gb4|GNTwx_>VDH+7!>@qc;IGx$8;NU4;`&yC}Tjlp|o4ZD=? z`SA#+)GbFRG*M$TeyWd2nZ~HkMMmqErezr$?MEi-rm9Pr$4lSSok(*rt_^H*g<{pPlISz4(+rC zs)hiwPK6$Px01ZwE@mOe54;i$3%y#yO|_}h5wlW8CQ6R49yAtvWnrnD%eH2LnCJm2 zEGEHr_I7xs%%r7nL{&KKq&DrGosYH%gjkHFbQ_0E5ATd9vdrqf?UsulpxcELg9xbz z`4JnTJUYUrQ5VKTr)xz)^scS9vtq=Qyl!$VRVofU=~sorz-u&JOG`oP+5<{O-uCSE zt}+^`LI&-!*nAI~0#m>Aut$;{1Wt!34CIo|epMFvmY5tlQD>PF>my}zo90lPSK+4; z?JKG6&Zos+5PCaj_fbZPt06mI^yk4-C;)y7IW2u0-CbqJX`XH88(KH^4}#~adD1m z$w}=WYVrR4V0rKN_jQK3s^w{|WEhAgK3`lp;aOE(AZ94^GfQZ|7Bfp~Mj~)+lbSP2 zh$B^)9qWQZg_y{3YizMH{e`La!94!W`@vadF>Pc2eO15;HhT;<@~dkfCjO$Wxue|(8SW=!&9`|c;&YAfaz z6cos$@*VE&fy&y%#s-C-mxt$(Z5XsDznu>=q%5thP~LK)qM?BVdd`_3uP)f0&-(fq zadFcjI4o*7V^dR)(?cFlkAEyJEhkRTw+0d5;UTB~&9#gtUP1_6L6l+8XxEzzZ+ap~VUTd4WY~=QqCu16-ADHjS6&X! z=*Q(cRiwW1BenkTW!ist{8F4 zz`()yPeMR5)bH)@g9GT#!viEFBp`uK_a+NLC&7U7l0iaN)*BEbpq*T0yxBcIPK}I& z!2)e^0Un3!x-ThKTSYhi$Q z;UX0j6iiM|j*gE0`t@r^M@JYTKeDcuvl_s9d;7C|#oUX_%T-1*vt8*Vb_lt@NF;pB z;wPFZ9nT2i<^|}I0)uAv>!Y~9nCR%B;9w!e&~M*-o8ba|l?4PKm?1^zPd*R{nw!&b z;<=(Beth#z?FGSQ_Dc>9j_vJjo7r+`WEOUIWE2z_29n*)e{Mg_40(61*B-FBwRJRK z6TUaIxUj&-ozvI|zH12!XZ`whGOg>KO+gB{9Z*04&@_gYvA@`nS5Z+pL8YgscX7FH zb~3R21foPwZ?#ah)N9M^8E-SDvGvT%;8uAmTZ6F}6!3qiq%4|rFVr~%hK3#j9_u77 zj!sh)zuM(^i9!2$byP=9G1=MK*SkXT_&jdH`5#Tq%@gC|t~d1)qxm&1?}_4@XAi4511T zzK4XcGBb}&Ppity`^GCNDNW4J-}e(BzLgRaGnucp0#U7I29Aaf@3tV&YQK3Cdw+f0 zer(Hl@vx!_G9l#%N<_25I5a2-mTe3H8966xb#oJ12L$r~{K9i1>E`AJwt2q71VtE~ zR4mNV(Gd#k&%rNR)eA~xT7hgPY$ zv)wwFM?iqLo0 zo^x+W59;l!(6B6LoQCV0j*4Ffk zDs_yZ3<&FUipsYJ6f&a4o|-*(%DLEeNm(t88m^TW`<%rjygXHK@`;JQm7%1dR-xe6 z>FFqM^Eu)ldy)^EKhE=Cr%MhMlGAI8K~(fDOjo3GV( zD_YaqwPw!9$bh^%!RL0CBlN{kP*9jKa2x>)uVn1Ii0J48t(C;oRDQiSD9#s;#vtIC zAt#}sU%lGf-Nol|{Z&W3P3<4I!so& z94^cbHcDJ>6?W(H$_^pQ3?Y(;Q>(X%<1iR*1^wh4EpC(m4LiIQ3l&w~Io=*qJ!s0s zL`8L)JaB?u3{B0}xVyQvo!Y)g+py83XNJ6V@`b7Y{oBIaT)|>vC8@Hq67(K^x~J#o zy3JlG_VS;)8JZs;LtFs?S}$$Gyf#^=s-Q5I@tRq}T%*r??yI4mD$w0WmgjT3`)LJpa<-6F`qezg}tSFM^ZAN#pmQNk}VoaKu4bY(OLw@-d-Ay zUvEtd6DbEVX0oc){P+0P5uy`dINx(p6c$kDnK8zxsdu+f6>^8nfVJP~jp9$CU8uDq zovh)0|9&u@seNkdYW!q*VIlcWm+^rT3)E;$8GCzsfMkB|y4cxc?_MoLx?v&$UM@S^ z2mqp37wvv)H&OXVaq(7(eQD7KuRm^K4SuKQ6;|{x_*&i+QZm28dwOUQ1~96Zs>eq! zQPVNsnr%0Da}hTCmDi_?dv&K|1vZ@=ZV_1T+GAMESx^>m}few;g)typdT)B^+iK{TyC4In< zLxN1Mix&fRBp(Hy5D>aND zJ&Z&waZ7CWo?&yNb8(@bj}W35Q`8!eMGq4r?d@Oo=DS1jt}pVJa~ru39|BMaWg4-s zY?j*tLO%Q{OlwvEa)RAjNA9q+kZqag{gr&CXeh|y+Q=RIrnR%&#zEID0s(Z{U<|`WV zA#<-y@H55M)ayh!=!4ltiC|g-@aLm~nGwo?vKtU^f?zW;Gx^yruCH^KDpof(E@tn? zS6mC`rza*Ja$|!5>WQr2t%$S)4X?@B;_Y;Ibav)XbBG8FzvXpvTy68O-Mehohbr;x ztSYUms{`Nz)Cw6Hna2s#Fqq~@phj3DxX>^#$Vy3t>|Fu9pm{B$2X=xVF1Zh=D7$0X zy7b>^si+v)*#4Y$6Xr@MRXc3U+$^@WWn^VR(ISCkU`JY1u5`TN^EpMx6reI*wX+)- ztON4OW$A5z%0PcVAZxc%{XVP@B(Q+O36I&ZhbRDOB4KaepY4p2?xn*SLVcG5tUOpu zWMpLBA!Z-C%^wKpAQFNZYzXY*pTOH%G1MRMDOqM(>x9J1idT-J2HU!07;m?T}179^?D1$v21wmM9)Z^G&VTj zDO))^hK6*crIEVGyxl(l?FHy3c{Q!?wCh>v=#c)d%gqeO70sc*Gax+fibe$lY-NZ9 zw-7#3kN9A#$jjSx1fhYFV}<4KVGVk^$zy0QSl;18HVdG%kP;KGuC5B?jz3M=n6V}T zqS?pi#oI5ML(e=D*q;ya0Uu>#_*_rY%F0f`+P`7Yu{1H+-rT&LZF?`Vk_y@+P$_jQ zm;PNeNVX3XBO^ajQ&T(TfKCIp|MTbDI0OPJa9;>TzIjQ=e>y(f25oh9xOEeAhH&47 ze&0CcWISo5Odn@lOiXA-5m1T#K+9ubc#|U2?64gMsIi|vmq3w}m)Mbr0~`0Veq?(% zRaH^3;@2-&M8t=)GSa`TD$@@GnD5Ad_a_w%iGS}vQN@aZ!}LLzO`L5q@DX{5$-U6z=?*le4}pNcQkWzMdfEE=cpvJ78eV}e0zH$KscC#5 z3Zb!y2@DK2tEn6%HBru|Sd4#ygz!a1PR=X+Kmbv4W$jOVqw!1zKzvgHii`Oq4Z4yy zmQ%X--7Y0yyY{mCqNx;M5fDmsoB237YwPL~ejQ#Ql2$reyTTa8RBerTkxKd7JTX=+ z6l9yACdmxv--OQmLaKKW!9=p)p03Qe)6#GE>*Mz$tpKOzkj`ZvjRi5kf!<&@!ZaZ) zd@vu9cn`geL55G2cM(gCyz;m-tvL~B_P10j3jvYDNBRb5_l;`Ti1}-?NjTwr_Vfd* zhKxv7<~8?*8aZ|K&szgHK&&%YY?fuSoMD6|-@s1%g8RY`fsU58e{hi3u;<5cvL2vh z0S|^k$X8TadMquPmsfDeV>@$J+rZzGcn>&JNy`QZ_WlzeH8{>9afkAm`NlAFj zYxnRZpyCGd3($p+7k|TK3d54WLLpd~rL(oSKU!*>pPrr`9zMQ3--du-V7y$$coBEA zJDxj|TB=zS<_0HDi4SlMh^0rz$GTcth<3uDI21qMjcAl0CnJOYYAo5?BiS2CVOCdn zpvc)>CW9ImNm>I)wI9(5EXD(zVfk8-V`mEX8@Y-YXi;zZ^vMXHq>N=K8Av(eWIwoe z^hC6gL~i8nGbXdRFmrd;+7-PXP(r|vlaR4H;8YP4>pnVEHs>&VofMKBUzE&gmN$7i1qFLchET~$b|sO6)!NNk4Gvdli!5&nKy2e z9!V<7pw-*=x%R&gcx8Ud7WnMV-Bk#a%hWC#cAYHE_Ulx1W;q|sj1Ia>+rvjT>%6x= zonvZq+?}(#p{D9_UjPi@8u#l76h_EI9`M&&Utj;@#~x6`qu_IaXXDjWVciq1&_> z6|b2BIHP1;u}Ee~4XJ^mNvDhUHH0XHkHtitCdz~I3iF1Iy!3_4*(>HZMAVL;6(^@B~Zs6_PT1Qc>SGSCk}IE}lW;QiPVG&QqP7IDXX0 zeuYp~4&M$hL3#$KsBWku?%JJPg*PPT;eC#V>NGVyJ#Jc=ocy*$7)ZMxKKOvH{~J0b z5ryZ)4%!95=H@0qNgMe;z+0fqs6<6a=kK!y+DIomJ7*V{z(PU{3=ABc7|=;Ce?b8l z(^l(eOXnzCY;jh*ovJd?qIN43ZBNT}MKd|U79>S2$zV=V*+*q2(O0S{r%+MpBr{Mb z&OpI-pf-I$ky2K&D`PJI@)n0Ub-QHA$5kVA&O8{<%FsvIPn7c1;3<(M0!;lDkQF@ zrY5(d)tkRP;zfmzpTPInyE_+PxByFd5(NoWg@-Yv(43kIN$3-xuB$s-dw=mpKd^ac zWD1(_nR)zy_J^$~Eg)LX{RE*Y$lwDKW}Xiuy{E~^Ovu-!m77(|6!fJf`;Oxsuv}o#YZ%tr5`TsSCGAiue=0RC4GuQ;JGEbFE{FoJ z0s`<=h>Veb#|`@r;L-0y>X|?!usu|0#24Xww2+bleIDPuDe!tc6Dn!UEG)oqGGsXq zMWCDYb)EInL8TeG-dt0!{;ePMLUOXj8wTe^OA&L^y580W58s?u zD3rOK1^19l4i&C=3o1Zyh2ib}woMjMOqJ6*=q{PFi{@r6SPq$FgO ztuyfpBmNPxX7Xt7;l35`OQ#gSgF{-ypb!g6mv8?@ku7!icSgF?7moU@U z**B(_c{_l^vLzuoo0u4hC&Au*1X;T@|a#RWQ|DIX=1MN^eVc)hbk#?A|lG{XUjdEoiApvTcE^gLJ=9@ z5q=+SQP9#q?o1i*r5P6bb%D!TK)vdx-bmZ|7Zw_1klV<*%*F z#2h>oCLE6G95S_|8JY1t+l6x7pw#@v2C(rL|7=MtHO9ml@Dbv(nk)^F=S9G^N=cJ_!# zh{VZPZ9WmX{kgIG)X{#vot{L(76LnrbQ^_MdbCIz9!A3YRR%BMw?$}(51Os{4fodo zqX@Lz>w}-AC0^}=NN$1@XE?ZRpT6ph9BOXL%Xj1khn#*!3}MuT2ssI~M8_3WzR|ji zLJNUxB4&j;QD?zEy=zjXwyXNkWv|neoLllL%Igj~xW7Qs69my2)YH== z4~6^QKC7aF9N=j)T9d{po0H8&HyU2T`a1PWp z{c#Ncl)l{ra|R!EbXt2{Lqpr?HM@B=-?~JRapyKFl*2zj3ci^_uAUb!uC`pZvTBZU z=Spqx+cS2@vTrY*zmB(FVAdl^YSlLYGGQ;$Ve&ODy?QJAH_u5o$(tTw2<p{@hE$*63dw8iRYr?ypFda9VMDQB&3*^RWJZx=T}K;q-yISNo#f*7 zT-31n{9VxcmLNbw!oi8J&g$F4(>P#6Z}yD6C09n4p`U`YRB*u9rpiOr=%uFV@1YIH z@8*hePYm&U%@RQKTEU)FGz=r2`dwk3lr`)v2F7cg_x90wwTOz)(W(kY+bg);eKfSC zWMY<+cA_FNc17!8S(X5qR5K@SoSMa`Dxp_`sAx72KN^U9Io~J&82F;1BG4kTdn#{j zZQ0WQZ8k;~uM>eVBCAu2`8ov;Hwg<@D4HZvBDR!WQDywf6NeBtO4js}hMk|2Sy4mA z?(o%q+DXWWnnL@puWj7nLb>N>$NbJmMvlmJdcq33!<6)AXTuk@_aQu~N)U0ytTBp8 zo@hUZlpu7wF{x-Q932R`#JUgb&y`5mJq@D%==UgCmU~N$DVnK|0&~rks;IDtNGMTM za4^EZVK;t1l8wcImJ{Z=gY7UCL2ZNsOdTpXdhcO% zP|ZXEhU10dFb9xWOugHj%xG%RU)2+x1VVK*zY8LVcI5KY_YfO9@Ca; zPJ%up_MA+$SD4dHYb=g8i1>d$^}mVq3?$FFgIyb<*7T5;vN(TJd)D(Y0|Qg}jN+i{ z8@m14nylBKDjNFO5mc_qhv`z8!#OrF!Lz|X_W(2n+rRJZkn!`68}+MTV`GRlq@!)2 zBN}83A1zv>rQ7Xqz_}sr?wZQW`|FifYpT6V;b7PpN|8A8=n{5mNS*32UGIxAV}M*C zP1iHBELx7C4R&6#MQ2_n`e_TE`8U>7`3PI$i^)kV>1pSUs0Bs} zn$`T$oXFSzY{FCsYBHbyl~P5fBwMb^ICDa{65<78DU~_ zbs{31;5BX+k5}#Vl!}l%nmyk629q5Gaq9Ium6GJ#0=Mlr#f^Z`aKc-ix&~oYm+bV` zU_6ctLiFwN?b8_2z^bjG#d@zlNif%$1bjs79_7xxudT?*j{zXN!4;Db^13-)hb1;V z)MtxAfFlgA>jMOXu1a)7o!1{O@PMOVLeeId9*ODbtbk88iQUTF(sIwAzJ8c_t?BxU zS+Zr>b$Hh8Pl>-v&`1W$Yttn`fXBVO=ja=VFZKx zo?MD5B!YrGin(F<+$uq-sS6TXz!oBB`&z5vbX~;XKb~v7GGDQ~qWtXigwcqchOC3h z-*fFN9Lw!Zd_jUbBxKa=%*^bJF#JA8r-kxLr$NG83H{hD1;SaKr!$?n`BeC1Cj7@va&X| zww$*H)PZsXD)`r`yCxy7r)!`h61irlbbNmz+8Y=DS$@}&sRPY;L zKdhW47M|IB4Z?4^JOUe^XD&q*8-nizFL6i$aLATdR~zf;-D03B=19RIA{OQ6n^}22 zg;JE>Gyi8BfFLARprWNczrNny+InP-2E^ZBPfyzTE)X^U^$%eCTqhERxn7r~S5^W$ zCT1F=VGn9S=}%U($lP2LV6Lr#b$+pA@t;Eh3Ko^(!>=DPF`$!TbJ|m)iB_w#Hv*~> zFh5#Z(QP=V4XS6#^}teKk8UsD&-DhCG+tl!1|J_cmhx6z#q4G8@9#svoSvQncPXmG zud=emhR-Z?bfKb|Y-~;orh>o|(G$dgNkFjF>GH*<@{pOd$Wq(waB*e3#QAh_1?a~( zA$hxyq|S#6lhUH^w2Blz2Gh7F$*EwOaWIhwSzG;k%MO1Qea%O)@z zb$-VLyo(a*=-eFFi`4LEWta@<>2iNsVQegt*@3n4lC5$Zoq|qV=xEm?in5|GZ`W++ zhem6}p2m5X?5Fh<;2g!8>dmFb< zLcBspW)0xHP?%8M_@rsHIb1+-7Tie%p6lb~W}tD&>&RGGTHfW9t^=N4Zke0Z&}g%An@+27$-ZiK zYtmSS%u0o`vF87p9w?Ypo0WOQpILTYXgvmcjQ%m70*C}brl8B9!sYa*LgN=6I zRXOx?;k0H%D%x3oN%1h3UPfzV%!W#I`ibRf{sPaB)k!Ig5%a--!Q_SUd`%tvRIXG=-}AtPixsT0y6 z0tZ2-kxG||a<@q%xp=;RRSO0i-Jc)v$xzJbAK_*v<##LJf2Y|>su9V?pfrrarP!Lh zgX#osAOe0DUWy98hmaq`irY4)2t#LQNTdw-MmOUc!F7F!Xw*hhn2b!hqUu7^{}>rE zR0^k@#19V-b?svQ+L8;(%b9UQRY2SNV|h0a*ll{Yi%OYz2}gnUm$T&86RlvpO^Ojc zQB++^wmHejLO3chD3-h%AMV;c;L(wKKf=UMIBG38sJ_k2OPIcN_||+P_TVLUp+B5Z9}%VD4oKPM&!K-YJ-35iM*s#QgT^0&J3r|rq<`= zb?FOw+Ixld|KGv$_t1a#Cp^0vpKT4#xBKg1{D(jWBPRbA$W#+99YGervY}I|am80r z8AG-?{-kE2SD0^tnxYY*EMX3XT@54z+4f{aY?ypY(b=^**ZFgWi&5asNW#OTB`tIw zr)v|~wGq&@>EHD_yJzF|`lK=AfER8gDsCL8(YQ*8IB6s$oR2gd_S1r-?AtluM1Tud zW_z9A_QB($7@s&2siK58-)A^TRG*bXH3ixLz25Se{p|r|Bt%)1P@@bVy;FbqKHT5V zB%r9FQu6*JY-*YpAAh5CWCqD%0tY)tA>}7XvQ8=Wme=^5WAlc}j~f&C@VD>HN#@DC z1af3J-0u*5(}e=$d`=0Bbt%7dvP!rmmGptTEl^gQxRUFve^ZE(;RQbH zC8C$}?+@0l2O)v$L+w$ywk7H|y*=BQYaTirv!7V}zw{4%UPjX|paX~sDQn5st{LjQa3>y2Hv##PxDoIBB9yWiKCkC3%tdxh1y78*Lr(d_BF(?l}3`2gtVV z5;r5&21UYa)p_YrfGjmgpam4%{w>4^=Q zyEax*!u>27JtHj%D=Tn}L|cs+%Fq*>vBm_OTZBsVtz3L>^2S{KdOxbknz8} z$B>Z9zWBXT1yG@c#XHE{OEN=1Dqi(Ga+lnXOLT}f0~Tj zjWO8{vy$f!^=W(5RLp|wk%!cQmn+Y!GpMB4V(g%=o&xB)ThnYzK=9kEr-&#iwdiYg zlKv-1Ep+V;Y5!*gw|uV9{s&b4-?05Z$L)W}{r?%#b1%42EW3;B;HAIoin>v_b= zyV31Zg`Q$6p>gTz0&}EZb5$elt!wfE^dLfMK%R zHS=JRk}B>gCQ8tlvA4IA6z?ysm?`(2>02+7L(w?Wj?IQskfFz z-eobx5+#dZ0fWY5R$?|joiNX++=3K)rN!ehG&J-#x4{{T2F7@ZiK$sNrDOy|R3cb= z2bDKhHuUj_Dadn)a`Pn2v-3z;#LV8&(qeIhSNgq14{%WK$leGD$EIdyNo2Et}P!xY4=|6}trG2s5K{cp6kJ;jHK`BULm|o=or|hioPh z+a837u`1rab9EW}L(#la#dP4yyxSr0#lsb@4uWy;`~W}{xIr}!rZ zMS)Wvgw(%=;{Om9uxS66j^cmA5s49ur*g2f`^`@P)qHx|`-=PKwF;QQc&!$SV z%>JenP)0@M&(DkFiyIGy_x3N|$jS~Uu$WlSRelrA^fVk$1Qw(g*`jQ|uAr-CZ22i= z(Fx}EpzBn|3||~kkDIS(g9D6f&yH<@=cVx!28|Jz-~?*@d#61N`*aQ*yTN@NM{9MX zW1!TCD}Yqne`m>diI|~C3v%JD57h^Gb+jR2plG>%;ssINm>O>sKUn(O20 z(denQ?edE2O+2W*)a3q*8h!!O2Qv0Lyk@&A$8n9r^iR^-CSV=|_z>QJabL|ww<^$x z$$YrLB?V)#z?Va|i2*8p5?L;U5YRgq;PcB%OX>zLNO+gUF13vsbe~FXk58}}w%IueW@@p(9Z!kEMG zIqbG&o)>WP987xxKZ!=YqnVo<*OcfnBM{xU);fc^oeylC?I>jFxwWdfxxlyxi_xUs z&Kjf&*xR8YnE~9n*;y+W{i(j$-d;Gwl$3;_+|0}`jVbui(X-6;_4QqyovRW&!0XuU zxeLZyJv{L5JB4xsF~_(=d_>{BA&{*_E`PvU{MA{Q$gxM-V55NLqrLqlZ=kv;hy{fZ z;NX0o&Q(^%yi&^J>kLZbuu%wE+1iqkmIif3yfSd8g3k#;5s0q8*yHt~SZjb(16;Vs zxU8lZJEN#!%1TPlyW1f`Ty1V@YU}8jg$*c`l(;w$mrS%^d=6-5ii+dUUP7cCYkOul$nvS(i0MbxO4Ff8E&2ku?u)vVc2egEeE>*36~WXHxn3D zH8gN52fb!r0a86SH8mXS;C@J4q+B+YFI$v>2pcLVi!3fSR-jN!6j4pU^m!;4xSj#M z4ThWBds_SY3V`#28k;Z0ge!K_Q%X8NcAGgFVJ_H*50{V_TteT7 zg#wDyD=4_Re?KWxU?_h0uyVH94~A2AUU<&3 zD3TyxED>}!)YAj=t0)Kv`?5AFfo))o(0IBhCo!=;UfT(vfSBp(>Uvd1$GHJ!4uS9u zoTW-~az5x&R1%CbV1DaW$la$0+q;WhFl;syOMr`85BMiwv05|zbsrfdAAlIY|3I)d z2&`()GX0;ddwIMIY@fM;f-pHS@Vt7u-VHpbI4s79mC|{)ptS*gIAoYF(efn%3GimT z@CK9pzV^L6J#sdlZ%x;IfyobyU4z&J<^_q5AG30E73p9DHerz80`}^w1rpzhE)pED z6oV}$iif_&<8ft#h6SdkAR+)nMCX9lQbP3w!`LZ@Zqp^&z&tlLGUEE@&T0D^%$ZWk zB>S|W7v|*(ehUZ?#nuGIr01o6^$N`ANu~0onCG6Le}s^BYW0H#?oD4N0^v8dW=*AL zy5Jy~tuO)p35Xlc_wV&?m`3h!J~V)tH?1aJuUn&yo(MS<#t}b;)je)5E+7kq<8g%f z`)_Xc$2B?_LCA)*ieuI$2L^WEUGDq)`x6`byok+sxgn>hcz$&_k3n>Heoj1QW^H{~ zT1YLYJ)XktVmy=#q;JpvMcg|@Sr&BdnrYj%ZQHhO+qP}nwzHB|Y1^o@Gb`=v{hf3E z?jGasF;3s~=zX*IzFTWW#GG@@c;6?UF4QNPb8>V4z5phcD(Y$#!4O#7Ox1+#pcr5% z0k*#|>spQa8~|^i{i;bd2o9hsx0(g0asZNXgI*7NIXOAPzy$|k;UT~jAG8F><0Dzn zkdWrRUtEA75&@~r3E%h(usaWy9NyRG59o}6r2v{kyeG*K@cRs zJquy<6f`t2STHa!AR3@bg@M54!8QeU%|-kx#>b_g;sLGEldCH|LqkP>*ZU)BEFGic z$18lwQD1HxfIS}|{{pzv+GaQ%cL%9v0n&IWsVJY}8(F}LA75HR_1ekQZ744eK@U&?QVZ?tQ!HE3(9(tqz>J~;JVpf}%HYT+l!6KScfos;YVMS#sXGt=?qC9lb!C_prgjg6(Gpm-J;ljX*O5<$1ARw)7GnYfO$Y2DEiSS|IakdLJDKxd$o2*Pd;?bcd;@V#&^N$2p$V9#QStF3 zId2m6SUf8GjBPSStYBzDfX$4vr~$C2+rvZG>&dLqq^Nv`XG! zAb5ay@(!>U&M_aXP`S3U0<3Cu6`Zdr-a{wJFAZd-joX-S-Y_k7BW6BFP00d7ApPiT(7_4A` zf8nr({5<96`>wXujL%U87OgNVE{B~JRnxKG&Q}xy}_>sx&6nkZZQ+W!EU`s zCKSl{_&ZH9m{Ir#Q4}EpHaG^Lf(e2JO1QYdiIM;&S$5HjL4blni>|4yB_;uQy*~jt z_8&UT4>4U8{V5=t6cZ2lt^uuq3<|Sf2y~G!^YiBeLcF5lEnw`&eo+1t17h#8i7X)K z1$W;AL+CJ_!N9|to125n4UX+kUxzjBLI(N(rC;rnLEyRV%$w#g3q>*YDMkl9B?njh|45B(Vfl6|DiY&K`)to`&H+ z=on`U3yQ}T0E}S}DypN3@~qf@=zENpCeM6$U+z-~PGKIor-a9d2R91Qx2Knzezp@4+~ZUUhC z1b`O|c@RZ_SL9b#R}H$H{sQnT`=eU8R49P*UUb~Z&hE1lN=iQO;1l}FzEXLz#OwL4&Gi~aD)PW09*#(odZb^3EQqvsPI-RZin5QTRH6?1c37RKO72x zdJv!`hPaxNR@zIh8e<~l^GeFig$?R*J^fED0jPhQER@1%sHgxLQ4e5(7VP`N^%1eR zzXp^tpRb3Bpk~&n%g|y6z`($Uv+|V{6@XL#P;SB&DvA1If*9&In}EZ46=ef*>~IsL zgpU?ImB@dD*2@ecySuxF-l^P3VVk)?B5J=Pqec8B0SF*~MjAkg0LWfDJ3Aw-KrX?= zsj$cjxm_&)p%BoZgolB7ujHi!)IETVvb;zEMJ2G42?p>C`me05S(=%lVPYQcD5I%5 z04!p^0ak9ygv9`3 zrmnuC8v&qbSg~zdcJA!~_%6zzetX_nPy)k>zi<=(2f65f0gV2izLxhcet_SW;n4p( z1nPefnf?oe_x~jYO47yH`~Lzzv9bS8(jL+O9<_Hp#0(4s1TS6+3K%!n6$!m-!+6~gMBJ{HzUWL^2_jL8&a&5|=9@iy2_s=~0tG=i5aW5`@2Tq5%bX zjgLb{pEhsS(B)%e6!`vnOc69NJlgN3)5}}P#}g99dl<&*@~}4MO3djlBQnfgUg%P- zwAel#plRRA9|bBhq^-B8a^>8GnX4pJz#^R_I(#i(ScHhEv&W!BQ)y+oPsKc`vWupS z(c@d(wc1)Yk)5MMm@#9iSpje>zZKhea3Kg|D$e2FLt=u4u@K>-v%FR7bWQAu@;GzV zuwzZx&ET@St1UQ-79e++Ts^he$WbF|K~WOLeNVlbSDSCd5q=LdZ8_&q$!5izo9)u| zqOTJww4b1vyE@R7L#>uYj&2s{-j3|GFwu9%HBAn+I~t=kB*|EAJE)XbNGk~HtAB2E zm&0UVU17tZ-&6gytcPd%tZVNLixlDZK_dP*AeJG;2#+y~EtMJ_#G=e>Qx0#)S@O%r zH9cROIl!m4?l2QPs0+zU&*y6`c3*u`)+&+26$a2_d(2|vzjNDVPR1M$MQ95ls(D6A==cVTLf zuqRW#YbVr4OaE$;3`#OTXSz_U(8__rbf=0PG>dryHW@8aHQ(oqEzvos4m0%o?99)|ql;)wEgMm5LDHx~5Wyvz6_ibnh>}aW#*AvY^;1Kz5d5-ApkWCh@HO%x?TE9qi{Dr#qUH|>ipl7JC1-2W7 z0^++b!neJ(*%0AV90WgEkh3v@S2q%MYSJG_w)o=*@wg3EvXm&{9YTVRn`H2{zB8pn z+9h@exqg;{psF%b-Nn1uC9w|JHFLYo>y;mze9irifYD*u|b=G~h9Gdgbs#_;njK z7;Mdfj+;;an4hhd_*uIOku@J-y#UMpG4K__rB_|^CCPYpr+jH28B$+^e6b2BvcQJg zjDQb|-0Nk4KPQeuHI(y`%6h+Qe5Bp&zs@`xdxoCl$5SHGY^Ds2A40k+)GGtEVi1vf z1S*8w|I7`Vim3F+GM6@dp(uO-$2ns}|H|m+NFqq+B7ZHg9ptoWh3Da-eL90_55nzk z>YEdWHXYvv0Xw1#jd?YM@_HM48O+4BTFHnuy( z0`+%u_IlKt)|#4zo;GtS&xgUYXJgI)d48pwPNB7UAYgpwP{9Bv69hiItN^o9QSi!t zQ+;-uAG2!zx<4sgfG@*;T!DrQQt}y~ApHklvfW5?cihzZ;_w4*CYI97HPL}u9YZo- zWzX#Fbu2dOQ>ddCT`MZS55s>vSj4D4v3dy>AS6DoK%>q!EQ?b#X1^#&o+(yZ1AE8vRki1V~z#zNC}*w71)g}mIs`7?gV zChGU;{K{-?1QKL_z}faw)Ld?p{BdY>t>1dg8zs{qVdN$Ru@+PaoI`=!*^|-1_TMY4 zgJWjY{eDmq1gvik1=5>UCCImH!+dH^CI%L~(N1WG zie-+e@N3l?`@hi1F`Tb!wPOrt7Aw3=BzFfG{JH~aTv=G0Uz?u;g^fmkyuRG6ob5U0 zIuK`@1lisDn;5s&72d{__;%0CHBV*?P`0iTx>TP3S)!EF!K0d}!9C|G?tMZ!|Mm3z z?`0M1e^{aaRhj-5qM3`Cl0s46F4l%a9r|VX)+UyDB8IcnF94z2DLN0Itd6rMW(4@qIhfNJKEpwj`Zb6<4LQn9(BJpk8lo%G?b zFrQLVRw~ZN#dCi;N==1S^KYoJ!4cyW@H+84v8rvH+ZuWCx7cRZL~wB(@n0mbuVEV9 zmV+WKg=v!p)fgmGT6WFt6&5wcVwOf9gD`MIsK>DyvT+kQX;#k{u#Yqr-<3t|edAxV&xEN}Ia<&DUK^14mm62i3b2zN+fWM&Y^!W!#wR5DI_y6Ru@# zCgZ|+r95evh0JBMmoi5^HRh}kGHj`tO|cRSHm%M!Mg@IMOK=b>pF6PYXGb!I+@bSt z{Df^6FBd#(3|Il~4TlcfC6k~~)RuN@92Cy&br^ zC78O5U(HOEY)H*!$ugsy)g2ui`x`ICaDOrJJGwPcd1Yp@)sojB82^YHtzN=3K1l7r zcX(cQjKg;E>$L-$=CaFUm^&2e5xC5Ps-CcIH{>aa^6Oeagm!Gy=T};_>3G=IXU=Zw zciwL9LkM)}#)O{lEJcy;6D|fy`x@oFc$XhmOATwMz@WVK*<8y)VFw#01`Oh(MEUP& zX(Sz$X`}pd=JfV*BCO01c_K+s+4YcaqK$na#^k8H8Fi?6@7|kh)PF;rbqpN-GElyC z(5&mzQeBv2=tQhxB&|3|bDN-58K~1~F|=l0=5c)8&_AT_qrS*-ASGH?ij};ji6iu^ zu^;%&#S^29GO(%p^J~*Cmfb{VGIR{&S0D}W5F}7=DLlu?P(egA)_!oL3Ejy7{9K)9 zR7y1>1s?VyP@EEv|cGhQgMi=!^i6Y$K-;%wFLs7p%*>k3SeLzMxF zmSGD>D4+sQq*S2TWyhEwJJH}SC~VDhJK&)rZ@KW%J=e$igy(U&b98OZ@0@n>dk|0dL7@I(9Qdy;xY=UUUaVqO0Zog%U?6 z%PKXr+e}%l+qW>NXSs!T(7}vGqH(&G{@XGoF(wl3UPY9$U(fCyk=rYmq)!ngAm-!* ztt?heL#)T~8wOkxh2PXEp9)TW60K10;-E2BaL#a`k4vS9%s=^eHiRAiga?ixx;65=tJ#u!Xm#Kndw!aexe{t)?N*D$qmv%p!=u$RsbCd@BdG$ay&uMq|iGEbQ!1*I%{`&lTs zvzO~wLBJlgf{s%2;KUo@Ol!jd4j_aZC8okHsNyO)@*9w6aM@;-SjE9IQSbM9i8t8>rIOLXqU3 zI~VCMd;o2wzQFyeX@B6Ve~A4g#n(~u76F|^Aj}RAHS*%{IPGb1r$PXZ|1iB)OM4`{ zNi~1J3w=t;_QUc4B?0uLjRaObU7Gz{3fY{!sB3<7i%Xez)Z8%tPDp$Xg2^$T_s8&vPKNC;8tfoK zL@xZhQBpw1&H3RV(DRjB=)dP#PUioXXPJqZIXJlgt6RfD#LUgb!t`H%S&9D7pF}K7 z+$=2rBO(9q+Z=7(rfxg8J>WQ7HtTik95`DZI1TIC%?oTDJL^_Qh#Ha1a=%q(G&jMFT^sMdS^x#)qHpFMy~i^7xRu?KhIiXfIjs%m3ut3b%q(N@yc ztg!@fYJ0f2)_K1WF_hKW-KBkkvYJA2xPYpJ5tGz3)jvL}A=*9$9TgCjls=+<@*k34 zJM|3oBgDppt?9-AIL@8Pnx zxH><73T}U%n&z%=aqIGg=KZW7Lov0s0e_3%etKGFc>KH`g`<~||50DTIuZ!893yi4 z8A`w>9mjuEeBKKfHgWj{UST*Bo*A8&`3~vj+zOkZKV&NNNcGnJC=y&re?S zPY(HC6Vp;7GuX0kMUfxgsqxjt(L=$9Z(4EGS4^6xAIawO*06Hkd9?`?Gn0Re8b8OG z5ZL}v2J5ri5UwTtDg%pZog* zcL7L0nDjx?q6!)+>ftv7NB4>;UHQ>{)#drzLFu8WMgT$_yso9sHB)GYAfy+6cml$u7-GpdATi?E6z(Pg5 z^I*o_L%U&&>on!eWy_j;fi-YBA(8*eKqQ4^DG+S9{cG}pH0eBJ(WtbL=C2BcwT&1l zM`~|#(Tp_9#F69dAD%18n_ccl)wHd)#x-{{fyDK^*d#-h`I$rmCI;$K(@vBqC>49N z{3%M=8=hE&{2!&#D*G;(W84q$zi6`68ta~35Uo0gxicu}C~@Il$k{#-LdvTVoaR4B zHRQ^a8}C@I>x>PcW~<=hL=`b}5cFjVa)kX?hJ&f)%-j))gX?M9@l$$yg`V&|Mp4Yl zA1$A~Dg}_uBvh0F*VE>?E<01;x*>J^b60x&U=6VrviaaKZ$Taoxl4)!vYl%4+V5Ha}-nDGSj^!EyeA6G4nCG)0w8{a!$NHxSLPqFCM}bEb z#b2l;L?DT4x-)tr<~#kY+LpvGG@FX4FR+8rtP!2dq#l`QJbJsDg;^GB+ezN##o4+?My9+}%zmusXFg4Sbqj>x@c&q1RocC)fIUW|=Z}Rt<$CE9*iO(5 z@zVa?#OK)&cbsEzqN*eEUD@GgqazfLj3r+BQCks2rT;^_oeq%a(g|& z_3WrpWy_zAcv+WRn%i!rhP#;~IqZ+Q+G(TrnlO4IlCAWZcmhK3pp+Q2|!3E9c_opv!QHh*?Q&_>4cc;79hS6UAc$ zCpnw}+Z5`S&Dkbyidrc>{RY2zrt2){-c@(L078$nniSOPOjnn_{1+-4yYu%2GU)i_ zNtl-^`XUx#C{NxllDsZMSpJKq*z%W**7L0vX1p>QhC2%v8trDrc!m+z%={Y~J$i7b z7B!X(MU|bbGA{yQtd2!-z>lao`E-7bTaI)pfj}`d%KnCUiRpvEw}Y0{KpkgbK^>`U z^|m+2InSclbVO1=%pQu?4k26_!~0$@)e8NSw84-YJ_0k%TX!ULXjr;&{m1$?m}bh< z#TTq-Uk0ADR%C2fCYD{U%1SNJ`hT)AmN zK1Lx&M_jAN>W|%HJ6w!n((mQ~?)0B}IR!n6lSDBPf!y+ZVY`A1FY%PE$YX+31;k&g zJTYpb-b!)%lh^^7^Gsqc&{<|3sZUK$*CbM&pQ&1GU~cLi_s~+OCZ+UN@cDI?L3y)$ z3_2T|U3!s$1(S6;VA|Qr4V-gH4@9{v?mi^Zo;Dh<@N3xVevvW)mPF)2KUlv z{M!4b??f@@b@bWSgH_Bpwb>bzpi*h97DJ+m9r?~Y?U_s=&oJp{xkxteci^L1zm*b= zrCetfbemfHq&bla9$|3j3y^$&sIcrTG@x|k;`+<>yz{Gbmh0L3t(PmeCTHV zjtmKYNh#>6T7yMwc-UfUnJJ79MB0=bpK3MO@f0P)nO8df+u)Vmx1S*M@0c*L@@G5V zj@cQ9)UHzu?TcPdC2y8GYtmp%$ZReO*sf|pmHeu$!sfTv-2OyOeFiuqnlGh`6xUIu%KvbnJ`El_! z9cDqIo!+~r4p>Z-lALlRL4Li%Vw<|~C4}&nx!^kTX8d!_4e=>-u1$#w%v<&)mE9u zEO{*)@!638KL<>k?+3^y9CSbt6|B$(+p!k#YRdiKBKxk!E>Eq~Xr8$6+XGIi_)m*L z`ntOk71uJpgyJ@h7g)76D)@WAgzPE$cbkU?ZX zYwR!(-Xv~Bi4oz#a1&i0st3rRq$;)u8A;0W=|3Y@MkMafu^eM`TArfk2J_ksVtnd- zC5rJtY7XzQz-Ek6Fupw%R=(;cXU8%lzRXyuJZLYJT#!dqfq!~zNcdE?D#CztPK6qd zr-tj8!Nc%(U{t`K*(>jiLCs^Z%Z-uy_p#KzBFwKjQ+NYy+WLBjhk==EqDM2AB_ttj z3EkR{D{@-cvTQTI9IT9Tp1&{Nf-jzS-B)qcP#U&n?Ia5MXsGsysc^FmUA?|n5pGiX zSnaUsMNcgqSrPAKN8Cxh&!&5kwIpXG@P@@1Wdf@N9tmAMX=^9&GHXtIqLRUhatcxB zCk0glajZDyLYBOqUF#9(Z=9z)R#;ytILS#HzOG`s*~56<@(dl{_~t(rv%L3*s|dB$ z{TGeFEq!>FD_Ew4D0s=QB=6`~{dI=VMPA5~+#mVxF&`M6IK)CR>Djql31NBukxh?W zd$cSV(T-CqR1+h;e_wn(N=T?MnAhv5W&Oqf5d!BlGO$t+gNGBd_2Yw;KnI}CLe9pmMiQ+k`?3#s@d8Qy1cvvHyFFTJd4)fmRGv2JD`GBHkjaO^95pMm3Qsut{bhYI$I!odDk zCO1l+rZkLOM`~}W@!a;AE&QT%F&H6lb=?+##&YvB{my@ryz&J3j$oepV*!g0j|wB5 zf=)_i85L2CF+8klyinQqZOdLP+ATziVHm|&h={gb&<}b>37_qHE_qHn~@eWC6)7!uxk?C7Zjp7 z$)~FEi2HhfzV6!TrLF$({B=zfYmYp^|GA#ig81s+JwqTgb|`k-SC4)I!4FG>cOGJT zRBvu|gs;?Wk;n(H-6G3k)y7#%z!l`zj3RYjv&h2zCcM3iAq{VkJp2K5gh8C|N-GMb zgqFGt48`82@Ne>MwBt`x_Xg- z=p^+PmR{!NjNqo?KA+tjnH11x5@Qpe~_2 zpRGN3Ohqnq@75^d7rfPOgb=TGZ&k*%$IU=B)9WIzi~IyM#Rx|QYB`%yowhIH@)a)1 z;GsWy&Sr$Fw6-q>1`?e^BvM{%=V8I#HEAWB^zCLL-fi>Du_A_R_JfQF;{U@EigsW6 zmoCKe0|vQZIzbI5v!dJpyyVXhkzjT@r( zdin{jg9Sz=$F|0Wpgx`EfFa**8PfnZLuRKpqudRh&YwO|n)tWv+Eu(2hPY9jXUMp2+p11#u{U; zVL;o`J?H9HyIrSx`g)EYXT|B>u;aGaLSr)pCXSj{fSa!aPs$j0_?VwhDH-8ShCIkU zGVkTl;)I6Tr9GadOL_CVXKcCG9OMTWAECC_wB2iHER&{-RH_vvWh6{eOZGFxr4 zrybarEaTcyAr6=_4J$_9PUHL443!uhZEmWw6Y#|OHVP~sNvCU`3=R1LX;mHK2yY{g zBsO`$`|Nz9n*z2-TrnB=FLogVY^%aIUtC+S%3;h?qj4!BvY6Ixm5EgLRG?4hrj#6I zaRt@5gV^87lt1kLcAH^mNs|GQ#VbaER-!a{euvz*O;b`_Iy+?1>_r@3Pc6HeHqeE? ziY1}ja@t})tBW8Gw2R(&Qo+`tQ8(YbJEknA(}%gLUl-EO5EOJ{g2ZtjpO^0Ca)2lH ze`}F9xZ#a2EKP|VUWSjZpdqvQhh~T8aY@c1Y_W=ROn;^gfI9~H`?#3yfSc^RIT&)@ z%`iC}fWQ?;ZZ|a+keM0$(5vfaYoqw(1g~Ai;SOJ7T&*?!HW+hHJ`~XV?q6hw7Dyu{ zk!pEZC}XrVV;noJji{=lp7-sD(m!(>fq=saX(sc#g^S-zUy8H_L32u1X>Kd#i=IkL z{7qms{&Gk@9=-?Gfzr5%q5LpptVOc#`)GX=O8G=_?z_1NRQQ!nR8i8qaZ>?{%b9t9 zpBR@@JAsW3>XyDoACT$+MV{-Iea|}!g5jh3k+wsuOQb_}EB7h_ybDnt!1yK`Hz7uRzSz3HcV?=Bemf}5X}A$M;y^^9{@&K_#OUGdRlr@w_3wX52m3ZlD-59 zc6mGD{PE9$5Ij6B!DcuyP=)IxgxV@nmsOVD)3A+50K4ANp4_4t8ww8v0yfT5c)ulF zPG4FF@yA&CE@Vdb%|si*dlFAHpR&vF*G**;r>SuQ$=)CkSZOuI$iHRAz9{U&k{o0U zEs?)}g9zVBuGf0lyi_iKKw+3gNrN{Gm8(7TH;bJ$qgVnIh6+nb|i_vpeNCkMvSGkGW#u%e0m2*hv?r!*?oGQCX-MIJ%v z$uHM!(P<>?q1a7WdpWwDU zs6en}z8I3As!UHihwJ){Iw?NSZ{g`()8v16YCV!?LO&auU8CdM)eezCj;oMWRs?Qw zE-+B9I~7pC!84J*b)eySF~*0~UF=(+PLc7Z>WjsD%%2`APtgWbXJ)creLh-1gU zT}rB54JVd?&Jax#^X4au<;u@^XjUo$Nd6X-QI=AQR}r7w>V07)Jy{>;jC%^$x@Tuk z4HSPv^@v&=)$eX`jM-6r6(|&tk-u$Sd;4Js5qt`~6fm4GX71@t33SE!^1w7f`Lvzf z;)*pA+EDx$4=1wk(cl_W|6b~O^(pRZYOygQxCf4L&Ejst+rvZM`bnapP!}KO2AJRN z(=53CyEWoUSiuu6ibPbHR6jywBa!1krEs)Ab3B#iJxk&PwpRN_i>*rxzZm-c1W}&V z7)Nq#oipaFWy)9X=u2ZaHOq5n{q&=LR*%i@QctP}B=ELFPSEwnlU+E(oniwzL>Btt zjhjbyC-HcoBWs}Wfbp9dI^@tzS^GPC!VREO3N9_TIZM(Qou)Rh;BWk`!hL8P+cR;7&H|SA#|B~MS-h*6ZW*tS^@%0N<&e*;GvbTd7i1C3|GaHTlV0@u z?f%(&1OLhDPZ5dSxyo)Toh1zE_%*vIX}b;Xh;QWIJ)~>s+cpO-U*%B8`nCRJNq8x^-E1B(pHLSSYHjaJCVfyNwZqoxEPnhlZ?=lNfO^y0Elq}qGaT@H<#)^9(xgd9#73n#W8Y}c zIdvYkJ%wWEib;Bg=`?J}aMK7BlM*)!x%|2{kx5aL9jM$K?{IP>Nx-H9({Q^$=Dza{ ze{8%bmt`bgZXYxC@NyUm=ujnP>*K!`_)mnHLrgSsCa|^s2tp%l)=4j(wL@T??6liB z|IO$H)|iVgad4WwyYg1i>f>yjKRG-&-6A1>XuqOYim)>KvHjk11UAY+;mq?{3udw# zlAjV28mI-;3s zjhtGZMyekXARS3r1yr4neFJbbjx+hcBhr#tIpb6Y9}{(<>z2O8F?n>GgIE^B-^t)-^Ir| z$K<$4l1sRR!NVRUz}dD2k_Q-Zxc6mP?>T$>oL?e8sf4v}yiL_bWrU}@-)TXNI zIZ)DAhx6UiZ9l-RH`kHdT1pj?`Fl30*k>7{BD=Q0Ry~EzOeK}nuf6S}$x8NZp+m*8 z?u6kqr2l$z3jCJebTXS+KquI(9?+--qRXtl%t6hA^jptczt$N&+N?5U?F|H#_U-<0 zKZ<~S=)L^5d1ItIZgbx%+^yDdokZ+YJ~>h2SBLisq=}}KJg3ElJRI-?w`H>&>N9f! ze`e)dk}vs(P;0^B?Ik`-iVdF|)%OT3oVn-f{6dWUm%(|Rypg*swH(&H!{F?Aff5H6 zyiv+HdFUuqmnZFw1Tya}aA z#Ak=OxZ78$5wqU77b9qqLnb2QNzY8o9_h44VQD{K>G(O*|5f-Q$ItdeVtVM?kE5@eKuYLUyQzzA5P&i{`8@Fw(CThjdw7m3NBF&uOZ4$Xt+ zZq1F}Umm>k;2NPs8Zow_xeu}yH39mdoT_cWh2?_LBfig5f2|!UyKTcweQ7L&TE9J& zN^hhVx$b!PNI!ZuopbT&wfKB0{`D{DlFq4l^N!kr>Ys6k3U{Bbfud_0GO=stt;49y z>c2f7UOzY=u65@U4cM@dG}iX3`muMs$qSzlO+msvypk#25Ubc&#*JChv|6W?e&gXT`A#JMKpUL z76Ju23c6hkFoc+i%3=kDKJ^|RV@0m``y!qx%jHw6 zHnK*N;Xp~w2unnj`Zf3s=R0_FOYb)0FgHhx_8a@wC!;?Yak!y%mQV*}=6<}DfYt}C ziRt)gHgYyze+>PtS+9XaE*5*z_;BMgaU#C7*9$aNVf=$)o#8@57El``FCeeq<8#(C zHcdexXSu{0;*d_iuOThI*andSPY%+ryD&x$HMEQ~&HD8#dg{hKFqLGs_lVQ=mq+Q<3+WBj15g84rP zXdtRs@nivbX1Haai3sqr#OL>pp?HblrBGv+N+eZUn#0)*a3YE97H7E zf@`eDL%P{;&r^3};XO-}+vzS`@9j%6TM(uMKPYG?m^m41zLsE)0^M$H$!yd-r_V)D9 z_~12{y|r%DHLKiDX%&v*eW%D4Wx7kDC&57J%{VGaD>y=SWgfrQ0cs_iQLcs37Z{6R zbL6bby@}lOkRo`YkUx+x=7xJre<~Kz$O~7f(}hy9G#esn3$=Cs?HyfNZPac`nUB0^ zFwIBVqTJZar%oV+H;w$OVSI3_$~|e^%(YNGB1uV~h!s`rK#)qVTVpMZH7JCZ$$@2} zNbJ%~=fkF7U~W`;vBJSkYo>6B{MJu4I^bNpA|Zw8S~~6cWezePOx{Mp!xg@I z4!H+w^sxtDK@{x@+?e2;5+(}Qi?K3T!w6=DB4f`qp?g2CAb&=o$?*2e9L@aOnHeph z6S)Of^76AP2>$PV*8h8SzLFQjp)bti#-uEH&d0OHKtJ=>f}y^tWhw1s(7)V(Z);8? zQIBj}br0R6d^=JIT3Sn#o|MbPcSTOOG-A#a@}&p4i3`XJ3fwZgMDwiXYj$0kWUd1U zxy&?4S;l8b*Jai_K|V*}TK?|U#eso}(_b}{Gj#Vt^webZbQYxzI+*vUHBjZ-j>93s zS^3mR6p~FHPYyoaaeBn*zD|s()AzsD8hn2RCV*{ek{Vgz?6QxPShPAMOo#JYVkYqn zGvw4RLufLUjI%xF9c|cu@)(9=4AOxQG?3g`@IbE8C|-@SP)M^Bg^oHAT0Rz zsGFd=&CKp$wbHkTm~svbZg44*L*VuSGp4*R_39^ea#!1lS1>*F2^W%zljQ`BI^k+^ zyO?>xy=jNLz#yhy-wtGZ7h*UxbME{AA|*>4n$PqPl|6OY4Sh;x+@VANL}$BCx8OXC zVd~}?ewlitoOnDVW&Zaqoyc3N;Ff!M3j;IuA8mhPRm3L`!&}-wic4H@xglB&aGJhT zXgNA)rLzEeo-w*V9ujO=GS@WAR@FAMmJO{G=_P?}h0Sd#I3|6>%cVtXG4V5|4l78J zevPaFNsBV0q+D(r$*!JkrTP76DbOwVV~TFAJYJBd#_@^JM>As+`=gJcKq|d*Zg1W7 z+1>QXWBVi`zXeoB7^w7kqQO;iJ3=mwdy=BslE*sy=)&u8eKlwSei>U~>N zdca*)O`jbi4U0GFw}jeW=El8I_J@3SB%mfq*I>Y1;`N25wHW42K#$&ciEM^|MX(GI zFtHV)kjJPD*=rSW==H#BFRO$Poa#O4DLl*+IZ($THL{;_@S&q3U}L-H4;?)85Zbl# z&;&lN7zZ(K3pE#azbqZ=5zSXf-^x7J6=*zs6O}Z{K>uh342f10PyCJ4vjNsTpfxng z5`JRD|ABO0YRq!U6EqyHxY$z%PwGe`T!XeP2a7R%kK`LMh7HtuVME}fc*pX04pu#G zOM|GsR>@B1#e$lFM7D}gbj{%>ul4?<^PBfpnc^xPYb#e!XPbUg2z>A^%YR}GDd}t0 zZo>xWeEb{23|(c~n+IvB%h9Xz#N6T5no z^Qv>>>-5|}XXuT}GyT}{&*a+kT01RP36 zO)s?d%7)w6eG*8IzO>1!`dhb`d3E`vKhHEyf9gR9P}vy6zmVLMiDe&}(AR0PcmsC) z?0yB@L9*HebSQI?lF*!MSgP9JZOq-FI(+l^j-uH>4c<)?YFDky*si{@lmsNaiszXX z)&{kbj(v+n@fK2Q43G$GIJ>_lP`qx({Z>MP?8X+n@za+ja4p#}l403titJ&-xHO>FS<;LpeEXvv;o+_wtH_eE!@XfCrv*FyFl%^WnV{UqH0gHk%r$(zC zB`0@*(L~L?!B!;1IlQ8x9tYks()A;DMdmuK99eF5&UghpV>4KSm^FFys{&Y=ML|Z? zRv9E7a2(N<&s30_yyXo6T;C{W#@E^{{Vp-@^kHV|^C>|qegCf+l!<8(0#@bW&N7u) zrrg4BsV(_NwJ@DmPWc$Om9Fe@41}%YQg3Z%TRZ9r#6i{?0Tpn2HC#$>TrW1#(*`w4 z_qcrLy#hax6W?beBdvccS4K9U)dh_Sy}K#ezesH%yBE=SPvme6ZfkRxu0sRQgwq#V zBk?{h%Xokh33K~k0~2r*trQHILLsM(D0fUrm>=4dF{E!CY?yXIg)*Gb+bG2D)6Y-ojrH{&Wvv?wbQ|WiHmC!8v<}9P&a)0QR5!P;S1TbIE#TOI%5zA#w4KVU0SDLee)+V(BpUZ8- zSKAn-Lv19_=?b8&9%_Ced4-hH(J~u+B`wGi$Q(^orRQki7mMk-i+N`JV!gNP6Qye& zt>!%;O-N!B(b8EQ6JO{RqN_}3CiW3!Fr77kD}6Q5V9j%GUXh%J?4G>+=Kp(FgwD?P zEtXWFb1|I5w}iRHnjA8heJkx%LcXhbkf#L0OU_iX>|| z#?jL_+nBTmfr5?AN>D73!kM?QqiyP%xZhR2PZ=y%2#@_mMRzCc;3vU=J3gA1nRQaI zDJE{+7D1i2$U?ASGWtGm5)q#3w!*dL%*}>a3$bO2d%T~OAlN{zU!F$P^`WHEgHB9o z!%?AFSE*`I5J-#!K+KVQ2OG0Ga@ts~#!U}|_xF}|&C@bm%Ql|$|KL$$(D9$?!(ppC zS!ZWOq;&*`oif`{EO=}^h3P=Q>{@pWX?JHN-q`mg3CsLCZnbe70~t9ckW>RlFr+!U z3pPvtY1{H!gKG1D?Ovtah)BdKh&xl$4XYRF9Rb6IzkGS$uDQnY>n#=s1Qr7p$hzBt z$N;??*%!8_~%Z2Vi8(cK^NP zlIwV_0d&(7kVlJU=K6P+B+Y!u#KZ8Lv!mqXKdmP~!cK~;pzW2Zjkc0#5i)Aw;oz@`tsQAVR@Mo3YgM0jIj6#J(xyQ|syoL}BSmF4PW>T2YR|9MET(jOa-M*f5 zCS+{SL&efw;JoY>1~r;aN=VSjK(#%PZA)S-H?@zg=9WkGvF?l057}&y zp~cG);fsBY<=Lgwn!&sGDiKFtpvC$0wK{3Z4>OS{P(GktFPNB=`WB!eil=;z%r9PQHyj-&3@J(r1A- ziky3w0yRnYfALSLvDzqGHk8(-3F8!fyPvIz{h=KFt56GaEeXg~TB$0uyAcJECVw(3 zw5xU9W`i0p6~A);uWou4(~&jdm}tw{Q2H>T;(#GwtHK&IrkHJ|63$GevKKe%X`Ugx zlOmdc7S4q`AFV4HR+Ti?CNdCtPMqJ8L2&39YZs){X%S&T73sL~M&yCkskwQ}BGt#H zJOeF{W#7=)u_oT&`jkdcf=D{ssI#q--7;!abIPatV$YR918bH)gQm2i2QTb>(IqN% z0a$2`QNADN9jg+QVQs+kehvyN?G4RH7Z>6`Q^*=};bBb;IJpz-jKvEJ>bu!%z?58R zEwlDpv`}+`iI8$G?_znF%7xXxU9YcJO*QoG{w{P}+r9Xbm8QJ+Mb;zGpvG6`!l<{v z-NQ=={jklKq@*45mkHZqUWcCNe&Oxa#KhGR1{<6> zM8ehpu*(NZ*SM&^3*yuv21>TFS!G63RCUAp_Wycm+YAwA*e`Xd3pqC2+1xFxb2CL| z5sq;6-rX3}e&sRJehk*KU*P}<)a?8{f|Y#W5lpVc$}x$dR&105VEOk$`&XBGrgXym z^3(*(M*X9k@l2E9(OrnX2+*1%>f)uPxkVuwoCk5jV0yGvl@7?37zfl|I5Ie>D&T|T z7^|F)+=3?Kx1L*!&o?BNK)#V4#AQ?0s7-asN^4AMuTS5XV;V0JY3bm;T<(}-yW-&i zr+mv)u%J5}ZKE5{q8$Q}^gtNCpDAWX$%^yUZsO08o$dKNjMj^C_7fgCLV0HisKd;| z6ED$28F)w!j2S3O{*}VR-d82xDI`(g-uR@={L<|UwqIl)dJ@-v+rtB(t|Q_wN&sw!z9q?(K#-tC;#B?><*pL zKCE##S7YitJh(Uh;*fzm{m>4u3;Zq9e1dg>i|zi?Rx5}}2`b`&(1shS{iL^8VD#MO zX@jA)3#gF!7u%WVV|{JzJ2*^%@6?`i+h%?df&WH8Q|Pln&#Vx`Cob<5`Q{b{+VNXz zntk%dLR#SQ6UU1@5Abfo;OBVkCcoRWx%KRLQbB;NoYV!&;S(%X7T|xx3$NvUo5kGH ziNO*RFfhC%QAQMR-EW0yAlK_79HVbfXVp8mmY_@^cNWGf>x{*dW>tiZa(0rlHyrgw zuSTE96mtlal8@M72L@hf`?Apprh!&9kVXxSHo>pml`z>^;3Mry>|C6xBV0o)7tvlm z$xFi6m^b1;0>oi-22b#=LuLEffHB`OCvnlD9$GPC)O@&%>YPDpgw-ur=dL=xj zTq|RdTv9(aGP3`ztkwaQ4W=hq=?B9e+5VOH|UJ#B0I3+3{~vR_Q@)e+?J5uu~Y zL*upAwPEa;*h%S!$s#90D&T=U>P@H30n#i;s;dD`*lmt@>s{~ zWHWNvEoCfUkb{~(P!i+?qDq0R{)s}554tADf7pff9rCchhS5vKL-4O<#+2U9|L2D`Gq?a9OXGO{ODw=cQyj zaiXh;1W#uO;{M@(j6B5jWkle?aE+Hl(xy0Nl`sFd&@=&2qbiYUHI54?>6Bnq4%L47 z(op8fea~c_I&itRbB}d9UyJ636LImqGEPIqb?1>|`QNxoH!t=!Q*y+)J$$kqhmXE$ zfo%*n5HWfOG2R6_jLlyE(}FzpnX+PKN~f;+xlALs`t#6|O>n^T0eWtfM>E5hx`k@$ zg_PWJUTs}TMEXPudfzsdCBcBc)?g^(Lh1g{(Z9%Fbtq6H_&5XO13Psh0`Ih`l z@Lx@%8OooQ(4%3+T1$7T14D80UUBBfgB0vvK3oT!+(XqTcG3P9+#JlLi!&f?A7&Z2 zoA!lnD~oM~ENTkVZ3A)}iBV51RW;C9YopRxe+;VNP)+^08Oo`hIsUU&dp(Qq!UdCKRFjC=XcK`mD3E?x{g<%l8JC|eZ_7o>!*-5#b|kI>TT6PPu?y6} zu3A?fbL)GuZFZ2`1)b#cM(PyD#Xn799yGxkwc|O@@{s3ngSy<|k+La3H-`0pSv_#W ztmtcXmxa^8v#D?5>1+Xh^!F|CVTU5@3^;~~I6|-1o|y=XV^%quS6dCmB3Gt+`fxAR zGcBMYVEyVN-152o`yaA)0R#1==Pi8N!*_gHmdBV;EG+W9SGwT$k}%*Xl4iO zj?-!G&d>1>;C2{?`@Fr2?#(*Kb&V=->vl0PdyDw1=$-k=3z7P-APnuH;ZUS#yxeb9 z1vzzY5|#NO$5AnJvO1kn8L_PX=A1k!z5g{6Sy&$P1{07c@Z-%)m}D~1*kwOD00__E|){Wxg@y-bz_*sdEuiNpmMd zU@gxf<=r+o8idWe&I@qTQtv>v7v0&?TAmD&$BkYS5mY4*3{%BE^)8!Mc2=X8^O{aSV)75cuqv zF!Tdf_&6KU6x3+j&3aPMdd~Ab$ooiIbrr>igO*2UFB@7Ud3$YC<7*j;LFi{92jYBy z{#EAi@?52@C#jyiSBGEG*oG>z0lGJH4Op6uM7>`g^V?oxZ zb6ND{mEy`nUi}==pG}Ki$U}=o^}z?ZO{B@0?&{TFvX@@uBCNe8_BJ@0%59wDk*Q{h zKOFo5(k={XYDHz#!QH$JycDTO)LtSDVQS9pTp~5`#N*-XpTwYm96Pe^iYTYr@m9TA z==VvAx3d28&XZYfke9M!)Lhred;lBHLF)nP8K(+_=mJWnKK1>2IVdAA zuoV-}vfx)FKO_)vwPjdc8*!&|`1|f@-!2q77K#LXRK`?M@q_L1!xxZ2%zxt+&WcoB zE}4lrB(X*#hb@ud(XU4XBPk>FwAbA+p(RdCK~q=0KIi zP3~bhB>)E&mfJP2-bYTozB)*cT}w-21~Q6?R`S80xE;EZ`i@(~TWkNL>%_&JJRBAm?K zcX&kP+Jqo!bxjRsZ?%lsvF_zl^yMu{$7XtmcV8D*y{v=-@Dg2NCnm+~1uS4e{NvIp z8|gy3f8~A&xUW{CRc>1prTi z8=9Ol#%s45;bI(=@daBTx_vYk=t8_&sA{C{E@b+W);+88&TsG$U`8b|LDutYIRkDN zVJv8F_x>P}{vAS8`B>OiyAm*j&B( zoi`5GCA~#?E8POjGTBEzrw^SUxwjFMaV%w!mceklL6SDulu5Ml+FB!abU$r@&Z|D+ z0c#^;Q(*lrmk=5eR}CdEpWd#|kWL3rX_Kt`#XTeCzY*M&GnKOJUW7vX(iq|T3Gx)ONe{m2J#O981W)$^2Mis?!w9|HtFmkmw zNlZ0ljI$Dffm_AbB}qbTp2ojB#_F^AAvn-%i?wxrp{8szhw=9mH$Fc2mR8cS>AG> zD00UQ`r!l*-a%_Y6<2 zL~35Tuv42)5De2q&{;(y_Gc1=mrJ~2bni4@snUQWJL0f=J)9e$rnuHso(^A3 z1>a~l5GIwP3bz*pc0NR-i5pLJ!;zf}KVD6*=(ixVHheWt*8okaF7zi}L0y#6+B}^& zIJad4*Bd`gD)Z%e!MBXC3Bd&jP>B2cp>^`R(AhVh3#$VrpzVpijBrNW#}|34_h87u zJ&3Zn-oZz_5{l;a*Re-~>sSKVyya4jT0-3Wve6ArB5cs&Y^a_o-gU~ z4PDq}wH(1&z?z`#!gXghAw@|q1A~yPqBm9=8It`Iky;iKD!Qv{6iQ7!IiC*QkpU2swU>)Z4f-D8w=; zw16`)$$pOnwM|6hm*2*29%%7szk;Y74IH9~a4nCsCjTjXg3Zl%EJQ&ag%|DO6 zsgjoQADj8Qjs%>O%A zb*zfj3d4#b_R^mm)4!P%^t_hKFzAe#in=$Tx{uiq5S8Vyp33p+SdUrFB)@wr|MlBs zz4If-9*g6Ge29&AcpY~&vokZ!vDYv&aeh4&e&x)Fn9qR3*eJT5;%yw;(0biX`1$bl zyQ_2W!L2*H(hzx0)jZmNLw=n@<1bq}0JgbFs&cE6f!;ogw1WIMiW!iRlmsgp2>;F; z8041<^5Jm*W|Lw~?<=j9Ik-oswkoqvwHLsr&X9=7`|W|!dJ2@cL7f0>Imzg$|Hhy8 zHabW)hh^zh%LirZ*gxkU$}LATzD;7MulIU*cEMt<%+cfb!~UpYp5h9t9z9K#m9FJ& zSAe%KpRUdOIkl!NbkIvQT){sdx3fN=COX!i;RwVpTE$7hO^Hk?ugCV(34!RVqF5eK zOUoMmn4mxFDpIU-GVGl+on3J3;xySZ+GRzR4MGmjzdt4=n-ZXr&7_Btaa%+>%^4UY z;|eoi{fs-qE;*ft+YrTFpG9nb%U=RQ6F+w%Up@cCU9-Qk#wM2EOH+=zBC>XfZN1wR z3P8+UIr7(l;eCcdc!0=vUYU|s$t^UjL6+GE^x66HOe@KhP{9ca=Q2u6^_iWL7px5o z^9Cvu$=SzVx_voZt7O-ga96LS?cv=)epPH6QSIpraLs$NOKIgOB;cp++0?_ zK1g0Noxzo!UJMJ97P7X`0lWQ58ao+R83S&w1gX9{#1=bx!YrJa=b4BVrYIz+xxilS z_sT@T(F%e5X#Hw-<5}ZRS@DMl+2k`fRPV0FWpNhxzWR8KxF-mmA-k`QjS2a&n7x`2 zmI?B#l&j6m!VBz1*Amk(#vNtZ@&O*gA5+N2n=!raNkmApTHrx?vmRz)_s=E9EH@}g z#obD#Z4x!Q@-7g!%f`L28^uPk@~QmTLCrJ`4+Z=XPpq3+Yp2Bb!H;IU42o*RwK!ZX zv0n4Ji!VB7B>MM){U@J(SS|K1jimy|pe?~kveL5t>*VpFwn%2|r9n@7LW7~)BhA3a z`et9OD9&YDUK0+tRT?;~olX;f2R`qEJM}~BDxuS4U7sv=$I}aLH#hbBQ7*uW_?gmh z$UU3U`rtRQeBm>s+h+w-&~?$5sk{v@?q2#MGe%6jbVYTi`y-gizIX%{z@fGZx6dv^ zFHTh6U%6h3|TKrx!WqvI*@uq5EsSK1k}6i zQCZRY%pyP#0HyI;=>$)hpAft$-pf8Txd_s3HG20f0sMsC&?Stna|7Ks4~6HRPrgD? zG!oy2z~$w}siyGS5nmr;d%2Fnf#QviJE2B~qFne%wcu&pP~*qv1N;e-#E`4r-08dm z&vJ{2G9>pz-1d-dggx-~f&FdIXIv#)XFgfjOcsXkf&54j)vR}o2C)r+Iww=xV$^+KHQ1b-XTzt6ghETPsRYH}I zE=76&X>;kmq2Gpl*LBq+e(6Y|&}Nj|+G&=qto;+T6oWZ(4v6Az@6mh;D3n0KyuJdQ ziQ_WmUE8X-q?kX;_F-J?oH$OfKe{Vw}hnIAE?wu?s`+$1o zN@Z1CAYjmB7NT$#j4mkLoUyFtyXjUA{S2x3Bh71CAUBJ4^Ce;7KNEeeBlQf+05yuq zQhj-%Wi-Fd62!4 zk4+I}@MT?>F_0rTxyhiw;1+(;QSJdE5T4R~R%ww~rOJ5`+X3mT+$-ZEj70a$p6hu_ zURXQP+5(5?)$v)YKmy*&rvdxzg5A=*{WhL28Uc5M6cp}I`L5={CELZ%DE!z&!X?pM znvlUB@onQ#PukVda}jEq-$@R^i!bNjW@FSiH)n!4eVH+S?w|pZ zTUQh$M!1kp;-ndct(oJ2i4gH5zAVvJ2){pW6yP{gA^J+C%@TqqDl+~7?9dpVy49fN zO+!v6c>iYjrTVSRQt}!(I!FtSMOAA@(CHDbn9?J> z4vkn!_Q7*DY;7gpm`&M)hLl2-N4`17rfiWfyD8}s0riPoig6C2wDUBks~-7D`G8x= zEtXdCRN_%A=k`qLqV^XfI^*94X{KarU+ImbK$0ifXTAi)NW*!Fvy~=(?#?9Pe4)sLyjf8V` z2{_DDi#YYGE*gsIP{ic|p!<)g)R_;*U>6Rx*feY}af$?Z80v6~%`6 z*ZW|*1?;iLPUmPisQZ2M9Is1vE%flZ4zmYc)0FlecmM*oo{=9?bBX|xLSq=g` zqS_#mc`Ucs;$K?a+&t&qrq&bJ{Z}g-V8oeI+px zx0$)r|E6L(6ft8ltG}sZ zd44yA0wOxI`0|YZnz3>9T1%lBRvA`z3)?=hAoN!K0;BS@U4>`xwXCBQ9==$OBD8r+;fSV69&A?{TRN+ov(R4*Q(5GA>)lWWQx*R`8K7%U6K_seN|tStuI z@SP7Tv)HUT2ty6)-+oIuXv~#-<-IHASuJ&9BJu~)IL)78HhsX|)N0kI(|UPRXI%oL z9FY4*`;t!T-cjJOd2{iLDXOFE(%-=#?m*{*5vX!;dEXX!4u}~ZgqAh9#DCU*Djh8n z=zcV;e9aBouj>Xlg)2$bCn0cMx*T#_tg*E z`p9*rPVcOc|2_tauf-z>cq;xCo>FZwXmOGB2s9R#mM;)EHM@>F;#~v(fCP`|U(&@P1)m^Qm+uNEaQ-BP{czAu$ zqQ6{N^6h$D?6P#paXEISOe9{spOlj&#Jph)e~2R!hU((6Esm^U!#o!Sz39f>spHm6 zt`hUvtPtHe*n-N$%>(VjRythrU410%sH`-T!1vl`!@e=b^B*w&azhhks$p#sdOfnZ z=tY5yEFS@PH05gn)_w2S>InH>C#PuR7=U`wy(8*u0O=*XwM=mI{tkT(UKrw$@5b+d zJJO~b`l-lyL&?k^Gk9f;vHm#-t8H1;U+d)>oAu>^dX^P=r=_r+A zqO=;eM2E0?jNlapE)Fy`*vZtv72)Ps)Ey<%0rt$G<>38B@>KaRysjpQur~Nxn;mLD zWV8w30ExMjKy}J}ddx!{LYHLcDHF~D@j%A0{em&LL_qIC92_Fu9t{)v(oxDC9M7W} z1c?CM#l*>eD;ac83 z3Vi0_^ge3bGQFJ4_=`|=c>OaOPeK!mX`ilQ$Z^t>N7Yjlj4zVfB>f~ZRc%2~2smnJ z=&bm+UvVyzhnC_vXhTM!edUIgboL0MX1vF8VgNXYGnh zQoSb$V`JWdu8q6YAEaWivZVOsnSxITWwKl)i^uhe7jv;_@c$4a|05v(hs?}?&&a_1 ze_cpMd`2dAR`&m=7|Fsw|NkvUwwowtYpt?Gc6BKY1PR%@xw+A8Q*5)ecY%<#cOh>> z#_!+e?$45x_4&?S;QqY9fuT5EY+KFs{1-I%&M%(Cw?5SeO17^DXQ-!Vd;&N=R>8iG zzR^&}5XQEi0jQ4tukZztoLo4|Zxo*r)RWEtF%G;Bq5*^=BXAcn3!rLhY6~LiPdtx% z{(Z{~obC>E9Dr}cA}59q?LYcXmw&tuWJu58>fr`_LsNYnfVZb4jDyXSQ$tNH;AiP= zsQ<2XA=mo9&B*oT(Se$ za?o;9@{n5EZxuivupKZ*r~0?~ht5{{ZW_Q($xDvK&9(lk3ebNP3B>W(z|hgn&8*qp z1(1Q0U5lP`^LIpUW^od9|90OR*xkoIH_C65EuNan;QCgqlNpkWrfa|F0D}H`YL(hd5 z{y6&aB@q4R)ax%abI~uF06zcn%EpHr{D)sx_FvshUquvqcb)Xy>ekx&PoLZL`tHie z6<*WFoJkhvdY5{KzxJ=ne`aJ`Bj~Te-J{uD_4Qxl1T>YnRCrY-!*~z$T&}?Gfe+_v zG(P;i-h$sHWYok1Kzlj|0QI&tz^Pk8 z-0kb`pAAb}BOB8nlM9oY7^#aF6`5Lo^ZH+u4;#U^O%p&Mz%)QUGQhck<-~K@ik{?$ zk?Dt#FJ3@hTTu{E|MvPS=(&{%oVTCAy(@z&FcAN2Ex+EKALlPJLA^cDbhWg=9ibl| zIfS1|S}U6yfc@Xp_w4ar?O)puvmef4+#T8S^uX>avOXBIn7*PtKu=V_>0chxt6mSW zwvEld=o^3LKaTmoSjN_-#+UE8_CKfvklzByC%(iQZQ^Qfe^W_Se5ENrnHN1*i};7G z^N<@F>wr71$25tbIgUmjwCk@DqnEQ;Ao_ay#=o>Xov2dQSAH}!0PrzA+Wjw>->AE< z{l9up`UokjDl3SkpET`XD5N$v7y72gHh}s@CxGajoERR&^gWjT$yvC2Q;)PpjQJzF z1b}q(8yx;S3IH*+c)I@W0gQt=QAc~Abm71BU%~8Y0MdxQ1u}r7=e=;8e&R2-Ljd}T zpP1dM@jtvn&$_~AHqSYwKdhcJi*LL`-#MmVEC;}J>0i-p0MeyDq3b(dCGf5PzFW5j zM_9Q-q$xO_+Yeo>|lOzGOBy%iDgp;MV$$+6yLs`R)7g9RLCmk-lNkKN#Efm5GwEF1S zN!4cdvMQl&GQ1|e{rA#_hC8>SuM9t#s0TxSNBZSXoTQcilVZbK#Z!<2lF#c)J-M^- zgfPVU66%{FS*o_%n+boT%RRRkcw!xO&=4*~d3cPsu_gC(UF5rRrcY$5ybADi!Bxrue@CF*k zF=0y;Bor+fyB_Y@H2!Iu0*WnC0Sps!H+v@hSFaawQGsHY$t6J8q5jaV?VDkP%R41P z)=jUL$XyC6+};}hRzy8QBLmEfwM7p&i$*zqeK{>U&Md$A*x+I3nvOt?V{g3csA8L$ zTa0Mg5i!)m3TypVoU~7JSyKa{X&Cm6TxTY57xBWK}B3WqOM%ZrLsus3mdXT}H?J zXX9?pyrSCf9m$Ziv8E!=>ssyy<9|P}&ZRxC6d~^FY;ApXo&;XAhZ!#Ztqc;jWC_3EG{R|`C95pCJi>yrI@dO&n+JfU<$ zZ*FviLkn?2+`m<}(Q{F55?F!w$L3d?WIrr+Bd)-oHG?8tfBi)&62<<}YCOHfwciha zv*&y>R{uJ0JQeVzX@3t?6PRcaMNaOnJF{m87PO7xo==#VVk_>O$o8pWChF60t9s7m zc*SA}50g~vF{r`8@SM*&p`jNQ={VO@3as#|f42*6t4V4+RKGn=m=tP{3!TfXlv$%U z1?miVbenyZoDD7$3C3Q?rH>TGtHzLVXhK`N>(d%EFCR~x+(eQfY+-coi3!VB5u{`Q zjA@_POjCnvS8XnZHzSgVW($*@^j|f~B{#)B_q@c?QSf0RDKt>CT~2rm^-C{U`O5E} zC%=hlF~t+`E~yED=OH%7$L-0GwI_$&`AB_Uz1i+1qYw4)MPO^&Q3i;U85L)I7K9QU zTU#Ln#!9im5IAz5jEJqyntG}T){G54N7Yn@Q0}1GO4M&6rV-L6WmWaHMzzHqqzm0= zviLgYM1-@xm|rA<*Hh|~P)Z+)Ijy4Jk?48yRrcajJu4+R9NT##FKcD1G@k*1Nw)Rf zYI-%AkW5cS_53js;x^b zG3Mw9)o8~Rs4mM!!0WH5Q}^rf7^6*|iJDEy9R;kgYjo z-VVmUn~Yz?jInFM}a%_+8c#s(%6XJw&Qn_&qcj|SfKGz>NLQNJdc znTC(AN3eHHin=~FKUice#_TU*vU_4v{#cW946EPofJ1u)D<-7R22^np@f9=wZgQ{p zc*pS7F(ZJ@Jhk--Stsx~db3)bm3X&{&@$u%e6kiD)Yc0kiszdxIgEULg^9%8IXofe zMBSUr@?Aub&$54!a^(GG!awk>J6I5?gfj6zm z$JM25`#sJ5oJVV%wY4(~P^eJ*V8u9$j%Hz0$1=^IjypGp%M;qJkufs~#fEebyU>ZV zR@tdK1|LruW7V!BINPk!dHNr-j|0v_v6bs!!x1f&a(GtWt&daVoNm$3t#3td@p!}i z`W#^x#(5evWip$|T@Unc zcHs-QrPw{g(d#ohinV3GW{YZ>koR26!c9@TZs*g${rGc;KVxsUMa3|YNbiNOf*K4q z%4G34S+(kqm8^w9pQxVkXcU`;7L$ZG!PplIEG`O*v%u2My=+K1swlKzHmS~a@(29N zD6>jS;lP$iNndzFwZ)1sPz6@Q-QHHL*YEE9h@f|R%RaFAf{NS=<7#Eh)_HCKXg7yG zmlQFY)Xq=$yE`N1mI@yZ9SL0ht0C*Q(;ZZj^k#|nC26BI3$^b1GDVDGY`|D6gQm{m z`VWpUZ*WKp)rBG%LH0c}hgzoGBR9hrYFw^+LqVb}fXr<46;>!1!EU#j8U2Tu02bDcDAsUF1fYN+?_ zEC?dQj4X1;VoKqgbXX~e`fH?yeN9sI~>CK#--cj^zyX9<1prC8DSr^%gS3*V6_rS zi59oWP!ybHgqMh9fgR%foY!lFG3FT1%ip#+jIFmper1?h(~JheCn%hwpuPp)^z8l- z^vyWtONn@uZwrSiSw7OWC23w*(_|kC2Kt?FIHd;~xMbcF9i;=(#|RGh)akzjEKzv0 zKG`lTqGd+(`5jpXFPOZp%eCY5`V!>)(ZEK1buZ%_D*;`wW?lUZyyVLulAu-ojzmaX zma^K~lBc@RP{6;lOmBax<|RTMEA>yFPklL`lox|-#6iV1OiNb&VTiPcoJe=Nd4%z6 zwlL}uw8ICb`u2I8u%)Y%{|*qu0Fc~e=5nZsCm#HnXO&)r8Mx(Nwz9sAUoQaT1f59^ z$PvLYnDVKMgU7?Dk74AqnJtb_SdZHfbj?btDcwoN%;p-|#6A+tf^(C*9*xmEuk>R* zdE#zv70mCbK>%(bkqq#y!`iZ2<#w5g*Tug-{Yks%*gu-(QP;wfLw;x$tBir1FaFAP zRIe@>C6+0Gx$LjZ)9vfKi@%ZzL?(leCtnrrA%JeBXuS!aZT{U#oEqYQF(K=^Q?&X5Bz)6kHUR->;^=^L#U5OPNPx14>mZePLm$4ZXO znFY7VdrKJRUS>+PH!Kd4;ah{VByRcx&LloS+r(b-2$g8+TkM5TSlG)K64%5e4@*QQ z8&z)^9*eFd0NM)JFu|CIm1G2{`yvP>5{H))3M;B;Qy-<*p&?9}lsuq0+gs2)2l9Ag@TqLKzm`ii$gK?=AJn&W{zZ zkx7qnNOL>fU2YLkpMY%_8Llmbz(5AI}sS1YEUq+%x-UO0ymAcC?~m&p5t z4z94xKf~o%u6g>*w5S%u?BBz~L#m*z*v}i0nIc}eLIBmpM*CRD6(K0lB7}3`4?Y$v zcZI~IpkON0M>!zF_6#~8T$uZ7?GkxsvJF>Nj^}e$U3pMGoMBI^fNd6}x}Go2um%JX zVUyzDCJdq5oIH4NpyWv=c30XYn`CM(9CWtXW7@87&8=1rm+yTFSWxrdQ;sJ|q*+5z>rSY)S76nj9}#4uieTR1|`m%!zq8Hms3kTa?oj)_1yi-|oDF z@TeFt4L9I&-@hsYqfb%vErI=pcxAHD2m!LPCk zl0a9Adm#&IIp*6=UvhfS>O5M7CU}M8Td;?v1?~h~#-(pbh~`9U5xxH{IZLPP7fO@p zYUfv00vo5%ai$UM1JE6s!#Oy*_uiNJXv?=Q=e8pwbHK;=t9zV>iCr@ps$j}{vWo|B zDL+Lc)VR|ID;LtCbAhicHbHKW)&~9(rpb$I43+k4Ei@p%-)o$#a3Eu=0xD>?Pe-e* z7``cgn?mLnSr|p{=34T?GP+5S6iSWJh^yH56Zm<4f+hddtJ-+_crOxxnsZ(5?mUy$ zZ3=K;^xt*Qyvqkh$mdJGJnCpd)_yT~2@g($7pB0x;Sg0C*;EEWL^{rdlFaT1IC-4q<(-Y<$l z$P(luxE(&Eu<&{Jt&4G|oKJIalcFMhg>IX&Nv`bK;z+2ZQK$T)FtVc2yw}2odalc> zU$qvg$&ma5*4zlYiM;z@DJ`G(H zhY^Q%T1(nMDH}q)VUhmtV*RZF>j$-BetsrKzqgg1&#?&(%1egY0NRtV7a40YB|v|6 z#@?3|jOl*qgEvD!O5Um~n4nUe0w{CfJo;x|_=d&6Q?QqQFg0oR0_&dJbxQR{YuI7IPP~*20k3$SnbX_sCX%z4 zTTB4aF1ODR2y`&DCi4R}?K2nh)!KB#F8c_68tmdOb(&)uRv6&

#4+werz}ZzP|a{vQ>W+m@mPxYaz)h-ox1!|k-R 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%0Db1pv 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 + +namespace morton { + // Go from bit pattern like + // abcd + // to: + // 0a0b0c0d + inline uint64_t split(const uint32_t a) { + uint64_t x = a; + x = (x | x << 16) & 0x0000ffff0000ffffUL; + x = (x | x << 8) & 0x00ff00ff00ff00ffUL; + x = (x | x << 4) & 0x0f0f0f0f0f0f0f0fUL; + x = (x | x << 2) & 0x3333333333333333UL; + x = (x | x << 1) & 0x5555555555555555UL; + return x; + } + + // Reverse the above + inline uint32_t pack(const uint64_t z) { + uint64_t x = z; + x &= 0x5555555555555555UL; + x = x >> 1 | x; + x &= 0x3333333333333333UL; + x = x >> 2 | x; + x &= 0x0f0f0f0f0f0f0f0fUL; + x = x >> 4 | x; + x &= 0x00ff00ff00ff00ffUL; + x = x >> 8 | x; + x &= 0x0000ffff0000ffffUL; + x = x >> 16| x; + return x; + } + + // Compute the 2d Morton code for a pair of indices + inline uint64_t encode(const uint32_t x, const uint32_t y) { + return split(x) | split(y) << 1; + } + + // Compute the 2 indices from a Morton index + inline void decode(const uint64_t z, uint32_t& x, uint32_t& y) { + uint64_t i = z; + x = pack(i); + uint64_t j = z >> 1; + y = pack(j); + } + + const uint64_t odd_bit_mask = 0x5555555555555555UL; + const uint64_t even_bit_mask = 0xaaaaaaaaaaaaaaaaUL; + + // Move from (i, j) -> (i - 1, j) + inline uint64_t dec_x(const uint64_t z) { + return (((z & odd_bit_mask) - 1) & odd_bit_mask) | (z & even_bit_mask); + } + // Move from (i, j) -> (i + 1, j) + inline uint64_t inc_x(const uint64_t z) { + return (((z | even_bit_mask) + 1) & odd_bit_mask) | (z & even_bit_mask); + } + + // Move from (i, j) -> (i, j - 1) + inline uint64_t dec_y(const uint64_t z) { + return (z & odd_bit_mask) | (((z & even_bit_mask) - 1) & even_bit_mask); + } + // Move from (i, j) -> (i, j + 1) + inline uint64_t inc_y(const uint64_t z) { + return (z & odd_bit_mask) | (((z | odd_bit_mask) + 1) & even_bit_mask); + } + +} +#endif diff --git a/exercises/morton-order/config.mk b/exercises/morton-order/config.mk new file mode 100644 index 0000000..d7be2c8 --- /dev/null +++ b/exercises/morton-order/config.mk @@ -0,0 +1,2 @@ +CXXFLAGS = -g --std=c++11 -I.. +CC = $(CXX) diff --git a/exercises/morton-order/instructions.md b/exercises/morton-order/instructions.md new file mode 100644 index 0000000..dcbbed9 --- /dev/null +++ b/exercises/morton-order/instructions.md @@ -0,0 +1,138 @@ +# Morton order matrices in C++ +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +Source for this can be obtained from Github. Get a new copy with: + +``` +git clone https://github.com/EPCCed/APT-CPP +``` + +or update your existing one with + +``` +git pull +``` + +then you can + +``` +cd APT-CPP/exercises/morton-order +``` + +The Morton ordering (or z-ordering) of a matrix lays out the elements +along a recursive z-shaped curve, as shown in the figure of four +iterations of the Z-order curve (from +[Wikipedia](https://en.wikipedia.org/wiki/Z-order_curve)). + +![Morton order](mortonorder.png) + +You can compute the Morton index `z` from the x- and y-indices (`i` +and `j` respectively) by interleaving their bits. An example is shown +in the table. + +| | 0 | 1 | 2 | 3 | +|----|----|----|----|----| +| 0 | 0| 1| 4| 5| +| 1 | 2| 3| 6| 7| +| 2 | 8| 9| 12| 13| +| 3 | 10| 11| 14| 15| + +Mapping between `x-y` indexes and Morton index for a 4 by 4 +matrix. Decimal on the left and binary on the right. + +| | 00 | 01 | 10 | 11 | +|----|------|------|------|-----| +| 00 | 0000 | 0001 | 0100 | 0101| +| 01 | 0010 | 0011 | 0110 | 0111| +| 10 | 1000 | 1001 | 1100 | 1101| +| 11 | 1010 | 1011 | 1110 | 1111| + +Mapping between `x-y` indexes and Morton index for a matrix of size +4-by-4. Decimal on the left and binary on the right. + +The advantage of laying out data in this way is that it improves data +locality (and hence cache use) without having to tune a block size or +similar parameter. On a modern multilevel cache machine[^1], this +means it can take good advantage of all the levels without tuning +multiple parameters. + +(E.g. an ARCHER node has L1, L2, and L3 caches, and the RAM is divided +into two NUMA regions. If using a PGAS approach one can view local RAM +as a cache for the distributed memory - i.e. 6 levels!) + +This exercise will walk you through a simple implementation. + +I have included implementations of the functions that do the +"bit-twiddling" for translating between a two-dimensional `x-y` index +and the Morton index, in the file `bits.hpp`. These are reasonably fast, +but can be beaten if you are interested to try! + +In what follows each section corresponds to a subdirectory with the same +number. + +## Implement the underlying data storage and element access + +Go to the step 1 directory: + +```bash +cd APT-CPP/exercises/morton-order/step1 +``` + +Using the partial implemenation in `matrix.hpp`, your task is to +implement the allocation (and release!) of memory to store the data and +to use the helper functions from `bits.hpp` to allow element access. You +will need to implement a number of member functions (marked in the +source with `\\ TODO`) and add whatever data members are needed (marked in +the same way). + +There is a test program `test_matrix_basic.cpp` which runs a few sanity +checks on your implementation (and similarly with `test_bits.cpp`). The +supplied `Makefile` should work. + +## Implement a basic iterator to traverse the matrix in order + +Go to the step 2 directory: + +```bash +cd APT-CPP/exercises/morton-order/step2 +``` + +I have a potential solution to part 1 here, but feel free to copy your +implementation into this. + +The exercise here is to complete the `matrix_iterator` class +that I have started. I've provided most of the boilerplate to have +this work as a "bidirectional iterator". See +http://en.cppreference.com/w/cpp/concept/BidirectionalIterator for +full details of what this means, but basically it's one that can move +forward and backward through the data. + +Again, the things that need added are marked with `\\TODO`. The most +important thing to think about is how you will refer to the current +position and be able to traverse through it efficiently in Morton +order - the performance should be identical to looping over a raw +pointer! + +## Adapt your code to work with any datatype using templates + +This part and the next to be attempted after the lecture on templates! + +In the step 3 directory, and using your solution from part 2, refactor +the `matrix` class into a template class with a single parameter, the +type of the contained element. Remember that template definitions have +to be available to the compiler when they are used by client code! + +Places you will have to modify the source are marked with `TODO`. + +## Allowing iteration over const matrices + +The current implementation of `matrix_iterator` does not work if the +`matrix` being used is `const`. We could implement a new class +template `matrix_const_iterator` which would be a copy and paste of +`matrix_iterator` but with lots of `const` added. + +In the step 4 directory, adapting the `matrix_iterator` template to +work for `T` and `T const` and use this appropriately in the `matrix` +template. Places you will have to modify the source are marked with +`TODO`. diff --git a/exercises/morton-order/instructions.pdf b/exercises/morton-order/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..575c06bc42bc508442b7f72810da7b8f26a00e63 GIT binary patch literal 109115 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


F zK}BZeFo^mBOa8C=oLL3;S+GuH88?}{r$vwUr=YumoR#>Ewzc3dx)|M<^r!w}G)>9F zbYqVxrR4W-Eby5A5tTD4e)%oK33^4E-c1suN?zn6$ufrJ0OVsO6o$c6!XDVnDG3bO zP(O|WN{%sE9|iivmtH%JRsK3o0h@KF5b4b(R#`67v;C)`_10kS{@sjXC+8*3F${ervc z3Cngu!2k$popON{{Up*vGua(zJ8AOK5o6Jc-befosB9O zwrBnYWWf+{vE-b}K9UsPo76a}3YYI(o&Dc#ELQVv2_(qIJ|0EK*3z1-^>2%1d*o@snu;_r22H<1cHtw-)+qP}n zwr$(I$F^+1@S>}*F1I>)%4@WCGPQGAYI z@`@cf>C#d9L{9gQPb;q1umwg_a?#4DA^Nt&R9wDVw(EWPc0}~MI)CDwGv9wN7R;=xQni*2`)U^w5cBE(lTJ?`O&Bb&VYNO+(G|&Ew$3 zKhP!#Z(`0+M}}`~qs;3SLr5&KmtS$4!e)T{oK1PV+vc7)))M*^i#z@_#{2yB5QVFd zF18mfDrM7DCt1P&A}?)A(I?GVT{EyO@RK@`AhJ&|0$_%v_q7t38TB{I;cbbqdX@eP zs`7z8i&Te_^u9UWto&y1I}8MwmgLZuscF~a1HASkaAp!9_0WA3c$aepOrU@A^QX~f zw`<`Gf@Vu@MwrpR(+#khhH%MMr%E>F4BA`#7ok6`e=t4dx0sQTyqP+jqI_$~{0(5LtYa6QykY0crR3DGnYE{+@^8q$Q()Ub2t2x{J@qK&WOnfg#0efuiM z;L5pq^7m{w>3iNF4w>S9uyiBKkEwlw{24RCsa-&p@|e%E0#j7)|L*Qf1v5n_x;&SP zQp__~-*>3tsE7Xm&UN)RUoiu{5Zg`ifqB!;Pv)Q|$x(@=kg2+2Nm)`l+Q=G0E+mZ@ znKL&R1^B^KMVR|VSAdM2(3azf0=Ml~qs{Is;WE)J0n%iD5bOc6HD zF8XIQ>x2^w?LXyumSJ@yQpKXZJ2`LsdAG?33X*Dulo;y-En(;>`??YhR!-&9o3Ch& z5yJ;)*r$UaY~^%U5O&F%%3WriQN7_8$sndj85b%SM}sM~&Bn2Q!1Rum@8-*GqFZ$= z>BLUAhNwshEKf;#vgZ*@(-p7BtoG&)tVB$3tWxcHdNV^ViNmsm%|_CrgjeniF_mT* z>OH@-8FR|oJr&$bdimIssd0Dyk>r(c^)w9-|p8eC-4oPPKE0%I?dPGIKVi2*^0siuz`78~xpiO8-Lz@CG4ZKiFsU z148{5hLGi~VB8E~e!yHRy~S=|UXo~<`Drjlazn!}BRF2B6Xxw|AU}cSKyJzTHcu15 zi@9;3M0@>GVA-|Fy`BsgouXRtsSq^R!p$hB-0D$ypbhqZy}6{;8^VJ8hCc7{WLQY4 zhH&4;w+AprdLw+)%MU z+YjH__#5q0f`m~1%(z)g5LK|Q%JUbP03;&7Plx>gr%FSO2%Hp|##xhKCI+yfBh>Qd z?&>Z%4f5Q*w$kkWq-~PFsM@AD2d*3Sxc8?uo+<*f))K1pqOq#?@<+mLcvv}6^b%6j zpnBajlvWdA+`h?d1*8C~&2p4P2&-z6t<%j=@lmf4)4)v%)j|bQ_;#vb@O>Crjm`tp zV=q6Nd4GrSd5P8_M?~=K*}H^Xe%)``%Z{nkqi7OYai)U$`EBQ%?ZYF@7SPLP&dR#b zErAFQE09(LCR{nn5%LIf3i9tbX~9`coy3gL7#a{p*(j{??BWyG(9i?Qa`!q&y++Xd z(>A!xW%w2Khe-huXC|12Nvmp)bVxj`islMrj=$kJxkDa{65C&mFLGYf|1~TNLdjZ$r!uA?$+ExL!W`$C$o9||h znFd4cu}p%t$EH}((bU3nnwUtx9DYJcf4d*Pm2@w%BP3M%k3=5G_lhg_t#2$5Kno{( z?+^1Lrj>{oxLCrA2{mGVU-;mrFvtYF&dbUfyzwg zmF7G3Vv(W>v|4RvzV%5u;P&DU`+Pu0*eXQAGEp1^{3Bu#2lB}LLt-f1-1;hepW*7X zh_S=CHFim6xTFgYm9F5tKG-;Udd_?<+%!0S(H6egr<%!$TwJ1(kEp}hx8?4gQln9g zFi7^8Y?Y(DL!1yq2hme=#w`J%XFgX~{&+DBoRx7Ow?dPPs!P+8X&+fUK-*yM#e)^| znfo1flOR5m+7NqUyB0pE4scoVilZk7%v7Fd|EP5L+Tg}Gf33Pw%$F&T1nfIJM{x;d zW*Oy)i;}*;(??=)m?Ovl8wZS{EFQiFC~x}(PiV`Am>5)P>#*HXdwV5=$BM|S-}Uco9y7=kptqJybI*sJ)%F>)8~G@WX;6SHQ^jAjaWotF`N5i z$UJ2qy0H^g#MOp-ifAs@`m#Bm%cr?fYU3Ia7-_!z9%*O32>z;b$+~w-2t1J^o71mh z@x^5c)GB7nWDv-B1bHo1@q&#kqE$^w(f>MS)-87_n^|<|y#Lrw^JxdXs`FQPr(;OO z9=tBK+}JvgbQSh>-UXhm3$kOLy)>GaCza~X8$1@F@+i31NVYW9Uc{w|#2{(5W2apr zR3UAp#%Dq#pXtR0alvzGH#r!`DdDY`!KmI%ALWONhpWT&m!VV9BO;O0IUj9bg%2uM z*;eARa3Oc1kLV)&1!leZ*>V*jijq2@jEI7{&`at|da=3*K%=S&+2SpHjMSS_{vhn$P;f8HCiLtl(?-UGSPg~Uv*9H@a1i~ae||LnOfCaxq->JkF2ja zLzHeDtEn8aAir1Wr+UmQhN(Tt%T^km^Q8sDcf5}Xi_qQYhk9Pf!>SZFNB+kw@1rsuBiV>iRs&P*JzrY2krIAf;o&kuZ)o+j7!F zHjC$o2&7u8ts^1J_XZb_St?%*tQ#`^%g4xnQaR32hl4M8 zEup!K4!MHnbat9&p`~|w3V=#F*E`fT&gZdilLjuE1w&G&Hxm=8P7t$BaB23&-x8u# zFao#_TOEW2cFDvAQ>;I@K-Wy5xO{^oIDkfG}^pRRH^+vU$ zVT#_!DU)8K$9u*7sCol_vRg%r4#(dYgGguO^s9xWh=@R~VKU0c_E+;5 zfzDDqjmyvmuN74#2E{5hoZ;;%QyQrd2q8wzzN#qFGsq@WtHE4)>b|@v^0|b1JY;_O z!8#|mbmkhaG$9u9uPAp}+-fWCEJZ^sOPrTiazQq;hc4TJ0GZEOtO84 zABI&l1=NjheiKR^w!pt*vS!G}97`u_dw_Tz9nw)m24(SWTT%G)k{iCGpl&5^X~fJo zfcR~&emA?f56qq{r$NGnaB+0{;g@!={UUlS>@cBU1gmvw0$A6bFi|oBlV!bx*dq#% ze`P|`C%HqG3(ey-ML4<44#E`Ewcpurmw_u+U!?;)x%p~8l5L0IWZ7?BAF9s)ETzi| z%}j9(J~n)x5fsec7x(4X?rgo8`RFODxV1Dva5v_}2mGR5dJB7|!EgG*paJvKffc~m zw#N8VjG)Er1ArSDnC{}J*i)8{HY*);GM>$HTXiKaGvuIkRu`ai-#bg=)9HOWxX%CkLN`p!C8hDN!3S>gmWbf?70auz%=G~nHTzF^n6!a{Ziy$FqY zado?+L9o#ubYp5j;{Btqu;1j>hkFtZ7#{!`u~$w06ucG&L_UMAGa7TvLoN$NM|FLO zfDE@n0hTiQIkFAQle95~^3l^zYk(uBhh?y|wn0tGj|1cW)NWu(o0>jg_SBmB{D`1H zrZXbIW(?r?0lI%|AfRYe2%;B!DI@1m+{1;s_@-U*+?3^=L8sR{6!`OJENEGiTKgmj z;6&$Vws70qlc}IK?~AN%d&1tGr!*klqFo-pLTXhcKiDhea^$JLky?4ahQ8{Hh)0O) zCS&>LdxXBA=~x~^ACd}(jxW*1C~Pm2LV$`1eAjYs3-mVj;SwWlQA*dFQeht#uwyti zl<3LG3217%W)V{npA_PsLAoXG+xq9%*pJbVsDdh1uC*}B!NJWq)k&s5-3wWbUOgtC ztX<(J2NTtecN$Q;487XAKI1~S=rC`tGyf#Lu!Ra#K?(f(-e=&ownATmA(D5vzaz?m zA;#Py5UXknkA%<`7Lj`B1Ko-cM0XTFBCoYTf}%3iuLh*S2dDPdSpqH+v3X5DH{d0_ z{@5e@ISNHF0EUHkTH^kOHH$MF5>gs$RgbxC|L+T)4Uif)s|Sxumv!o4eL zAjdtIV1?!hMG@!XyKDK!dpV%s7G4Jp<;3=EmLx0G?KTm#U1zK@)q}<|!fkg0Ve<7Q zFnVgk(}}mij&ndqa76I7Xe@V4xwabD#1ez|>;tF}bBF2!m@IcUvW}_%IZt@9Ku%jh zJm{8rjpB#AkL55=Uqx+2kz)~iT?I@jdkU9O6h=Lee{b1Cac^w1(fJokgJ2&kS$OH> zs_{~c>3c?$ue$CS12_dyNvh%QhdVZXl2o(ww75p0VQ+pjJ*T)*+%7YUZg@&ox%*fl zgqDa^Uoxbu(OX#CCCpUJAQ9T{w0#S>Qm9uWw%QTBRAsPni?a9qNtdmBZDSJ6QB zmu>*=54@1$8(JUKa-Y&EB6=zk#qf_|3e%nfPpqK7-J7;FQ~@FFCjR6pIK1kfj}a6pnrWdnPxh;KT3~}xb8MU@T8RT_edM;aziOoi~s?a#?`71{4`CXg3P+&_` zuSMb0K#ofpsrYsS(68>9w&T0KoCIx==uCe=VDokeGV)=#&G|1tsPu2oe*h_%{}V{T z#{9nm1tS3yBO^W2|0opy7o=cfVq<0d|AG{MUDT7cHhHDp+?WU`wzo;Q38n#rn3m=i zCB=a&#Ng!v{M#O#FH7Yg0?&^M0(kM(?%xg|-Ph|M+Qbz+4Ri+Q64b})s*k|L zEHbh_JUTryg7(k}29LdYE7{vrvJNQ8F9mK!=LXINfM5+OZ>VMhUe4hq5aS9!W=7u! zWDM=x492bn?95*W*sm-St{WOWL6=jiGLz|XhM zADiDBd=H={a2&iA_(OZ=r3OIhno3a5b>^1X^|&ibUY!#f7s6 z2lO2^f_C}(<$_xmeA_qW@Kzdo$rRhVg@Q%IgTn@w74>W{U|l(<;KF~Ma3{XE&~G&u1JZh~;)F|3EtnMeH3-P1ijxIYQUehB!@=_O6X&aywN1CyVd z2S-m~@lnVdG0S`e$w*ISK+3{%y%_HKOLIJKAe`UC;FO8a_+zj(0~{k8O|K<;T3#rnUOWydYeqaZ1{}K}8GjDCr ze9HOF>2Bc$+_e7w0W|p#>I2t7A6kKZit7%p#XmUyiUTo+jq~F_BjWxAEU@(a{^t;^ z@BI4DJ@Eee%a{24GK1F~K|6kCUF^;>#q7F$=%t~a=7Dehc3pjiv=G|Pz!CUxQJqEY z@Chmh%pD%u3_*5VwCB5?t^WR)KF|Su@TDE`HI|g*bbqh8d$0pqZ_N=;4@2v4I&*@2 z{iayGzj}@8wc$KTeD%J)mcRo9bP1%IKQhgv5*fT$#2}&qI*J&jgg*&hg)Ivo)TJOH zo-mE}BqfcV)GY>*L$`$&C>g3jS?r6GRoyimn@9bvw5r>wL;Y|a7+ z*CkTa(t+5-^zPaIwqnR`WAu6bVg#76USM(gnUOAZ5WrfcuV&Ca`p86B# zRtEb;8T?|%Of(32Vy6M>toqpscNz+-XLNj-04q-pB3kuF5RIm?>#Z;D?Z{k=!Sknn{#KYj2em(Y+N$q|57HBtZ9l73Tz zFh!2{^j>)oh44MnQKN3@xkoB#%Is1&P(HigT2@hD{e$Y%pRh99p?`FRv%?HeUM76v z01M0En#%x`Y{dr1S^2UeC|-creK|LeEVf2J5{BrhW6}}+?{voaAixZ3&1Tk=IK;e* zYLf*+BWvl%kCJ7U&*xt?kAxm_$Y0YD4w>@>T^20w=`{%=H6HcQtSn6*POYW@d2FA& zE99ZmKyLKxt`h%H-vEH$HU4$1%eX(Hwyux0-T*I#AkxpWdIQdFOu<>&_fhJx?k{n) z7)ih>g#+;zt?B!g!;|oCwe{hp{`*g}030gJD{K>j+`Bi+`(#tt5cG+e$`iAO%BOJo?9tr=c?g&&za zQWQM=)m1$aDRJUHo5F}1qEo1SPZi)Mst&mDT34+ZX3>of52~^v?87dZoZm@D+33T; zC`;GID%DEwI#RfKu1^=$yzzH78^f>@=s0f9HQPgcW~Hatqdbjm%w^CuksLP?vEV~p zGC7u!O(Dp$cGN}k00SSRB9PXCvEdfKZkc4l;Mk_{$u1w3BLuU@F$d%XRg(-sXg1yh z`9QFCgECe|KC>HZ;`Dnj9(uO4hu{o{O^q+JgMS4w{0`_9| zSA%?C_t^>GX{2qwYuKFFyzSHsQnuPZTyl&AlBDE>vF+{v?$W06z zC0gm+Sh!~QL-MjC@1coA6597u=@`_6u#EZqoK3de7$bWp+*YOG=Sp|ujNpFH(!}a# zKSYt2Ip3nFtdNLZ?57Teo@gvzUQ6~*Sr%KmO!2eLf&V>fIIqo3vq{_PqZ}=`fk=P` zi0&&GKoWT(T-<7NtB56{(-Y`o_%BHl8L2G>16>jbC?~PG>Ng{WS=Lopt{4P($w;CF@ao0d- z|5U|&;`VIp4 zA=}rlKC*3%aip=txE{tU@^qEdj~z<4jyMHrcFYZPiKnxzT=eW?ZAxNR=2u-EHl1*x(Rf9EXv$Sn z%q}70$~$RQ2L>1-K^s~jGa|NYCl^|)%tq%&pGkB5NM$q}lWaSUZ4iFsh^P!#Z_q4` z|F)lRb{F0+e%=$Kn)PAOEam@G2g-+EaN`Lwx+ z_zp#b5&KN|87GW>ukf{33BRrIKw5%&G2=H5#qmKEpTrx78BIx>59f$yjhzZc24?V| z?JNDN?N8J2n|%LB?$hq%zUB;aNfe8@$(KQs_u#u*os#j&j7>Nx9&U1T8-fQ3A!WC) zfB^52Wu=oF4Zs(tVJ`M8IEgRqn?hc=MudmenhneD)MxP(_>ctu^Z zv{QxdqfFmHLTQ`7_|FRE&**;BmEHR!twasds5F&~{rJMc{SIR}c;H2oJa8NCPa@`O zV0B$3UDD>27GL@M6QM-o(1~$W^&b;tl=COT`)MB`0bJ+-et=msG$&J2opx=Od-*HW ziE^6V= zx(9}!pJw?TG3SV?-{|sNF2;TtqhCGcSuu%t6?4R+?Z-iUY?Vbm{#a0?_Ty@Xy8J{; z@*evJ8|5X>cOkTi>!W2lqv?z<72Swd9D*&ea%b9hHeK1|lJY{}YS;7TXiRIGf#dSW zUmFa&^lP;mj|jdeIJbkw$Q?fD93@m4isJY@Bv%0`+??AS3M_+d2yen$2c@W-KvbDg znKaxsJ6n1$iib*gy-`zb>P1WRYlZuJ%;Z?(7r9)JPKzlnG3^h`Xe>0K5KeP zPFX|dY;iV)<-%9<7d(SdxLC*CKsA`bHh)OJ;#S4=D%h_d?GBtig;EY0n?SM~o10>9 z*ftqycmCX`o}4ilvcW$RAh)X?nvq9?j1WSPQc8R9A&U7tMelkch2Ggp(6>l|=F2r> ze%U9zjm#_DH3W9vq!1dA{03Ffx4(%?sPu))cshJRm)22yorXODUqinlcR0S}i4kLQ zNWd*(^VPO-#nq`FEw{C_)b{NxGMH6K;Ls#B?b_^P%#ab6|M5}G2)ri7&FNLyVKnSV z4z7#%B}glrLu0+su$%iF`jwQ!Kn{N`1+TinJ>iDoDIz?IR` z^8yAa#^jsaMyH*c5E8+4jj}(I$LH42^?S5b^0S58edIhF-2nfH@k358kVeLonHI4J(fL|Nw)a(f75(p}g6*g|A22QM0f0G4hRY7@ zKwjIQ?B2x9edI~)8xJn^roaY8`Lco;=bl(WtV+l~hrC|n0M&&z#pc6$&+wZi5H@W} ztV+G!uAdCw<1YMVraY=uZpmPB19{Sk-40bs+a!LX_;q#0ezdlgtfbOnWO6AhQ^2Ci z9+|6`0mcVSktrrz<8pbjluvQkVhOvNlB5=eUNM$p(9s7xwi1)XQiy3YIVs$vv{Kto zU5BLoaooC>Lnas*Wr{18t(nQ{1YD@Bu29u-54I^k_)UXwybV^|I@&J4q;7m}ZY)nb zA;YoYi^=q6EH{ZU+#*>+_C5Bl$A9N_dHtR>1e39T9SdbPPbX_^3f2QbFSCW4vD|(g zX46txG$KQ}644Af?4Rzh{D`0StaU3b;c?DR2ep8|E)lldBEiYJ7 zaH7Og1C~t~LlB6wi8+I{;C%kN=}(oRpf2Te^pIL?vi4yiDEWgeNJQ9jK2`bJP3ZMG zIE|Ok&;66_fiW3&18kJpmwV?bHYgMFQ>^PyFx+sHaG>yDqGa|ebR@?$NiPQ8a=Y{O zB%@-~0mbtZVy|x|&!&-VS~FUq#8+T|rHn(KqR;ci5_wu8!DvhxkH8E+&L%M*t< zX?~6&t*|?UFKKz`N>@(U& zXJc9Pl(~b9%-6FO3=VSP*$CF0YmlPINRe)VWxxvg-Xl)7<+o3t+~?zQFy~_}e8Cv8 zK>gu+CTcW4=C9eStCWwCB8FPR?1fds2LHqh{TE@aU5MrtCrCu!^kyyo+h}ihR$ok~$wHxD&(J4UcpLH3DEp$nZs< z{Acvr@U9Bnd{A1mt3ZVaA^kW#EMYC*0v}i7Gg|d4=x8CD#=?1b0zFvKH#wx)-Y!3s z$GBh7O2?Q@7(4?^EqeI%!HnKC8u=o2ibAqi{M|$T9G;71YSi+Z;q2<+9aF{nB8@HE z)5o$I=#Wxr$^%fxJ-k$!`=HFnQVYCC$+$IuwPxg`Svy7LGu_?86k^XKXpR>gQc3ia z(kP}U6|R--_K7hz*h@`*--KJk5p@0E6msA;E6hDf3aiwr4#&8f-Je}uk^w_s>;M;7 zV3DeK!B|`iu5F*71e&nM<fB*ZtS?ZZeqN6u!9SVy#EuvWO@FED%H^@{X)$hZP zpiUYjyiD6lPV5cZ*4%MV6{wv*dCLyVqhG+WYm-sPnw|Vh=<6?_+y8*k!X04`h^Vdi zSw0Ng!<6}tqBPk@q<^{MSbfiq>^`_}p3&zKhOlwU9X_&%o&15&>%z5QLM8na* z;LS=6WiQHeTxGGWXG09Kj~{j- zJ)L&`y>O@+Hhd>H&;55zl%$X&!(53F&U@-#R?X^(tBG=SBk4rgy>T@KH^gcz!^94f zSDx{E3YRIS24;uVz^eKKVQO(xF_G@!!+mALII>7EY7nW2yU3U|6CZlHFL2*6$m?HI zyl%?d(|{TfVg2bXg`9#QW4Qwpbs&-c^5f>OBF zs8oSdva26GIlwq;Z-fA^G|&90V5PH#6UYr|BEyV*eTJe3F+*oaPYBT>oR+TL((^NQ zULPwG){%E)bi|B|U8;AQ+TGw$PJfCGjFm?Yowy8Q0XJ48Tdo}Pv(WrQk5+CR0cF9B zF2yQdK{39va73l0Yw2)d2>w_T|+8vQ3mfq=~ zX_;&?wNuB}t3KWpv`xF3?~#YxyXHIh?jRK9)g5pI15?&Z|T}w!+{&#l<&85T*T*{PggATKTaMe>(#_u zX9dXyEiusF8P!F=KeU*-n$a?h?FU}|gqiI4743c{M+;SU2DB`fIsw6o*q7{7w_q##zeC>ECrMTEx_^L~kc-L8^8IA9T?+Oq%#JxcK>7=mw-ll=j-vm)a0 zp4oMFk?7RHCusLiN-~-BUms0qnAk=Q8c9Esh#5)-+KJVWg+caO4wPuNBdlzqSMHjP z@OwMb4}z@kE+snT-Hy&lFYkwkXR);rMxC^e_2XmBGW&VQdXwFk0IA5iP>ccu zg@tns`%yoA_4dunh>z#~nH6Bff0H!2^h#zhN)F>LS4j>QHG~5GCTxzD;o$u5Ndw0$ z9?uviS|mWeg&^n~02;iKnv9GL&vKDIWT!kZFY=#oN4E+C+*o)gaynkww4EwE{mLqX zwciC|C@iO~da!`^%GgjWar1{v1-f>{c#ws7u`Mf`RdcWhFr&4B1UYO)Oxb8?#CNYG zC}v^bsf}f1E-+%^z-iOp8Tq=%%%;@UQNdPt z=p`C%nY(^~2ck@7q8q6D%j#I4^XXvG!xg)|Gq)w|mZZ5f}MX`h#>g z(5+^dfyr2Wptq;erEHG-Ptx=b%|gz@cA4^KbBMe&aZ7m^XRQ`himi=t5}t(Yoh}UO z{-`Al(JLXA+v8Jl*OxE%=|$N0nUAL;|W>Ld2QURQm5sVA`yz8%(6Al zg3fcXp5H#s$pTf^T4*X5FksPvB30%{b&)=rVx`E19ItLAO!}14Xw?#8Df~-!D-{cJ zb|MUI5@|eCc#twi7_}9bBVsokk&<=^-_Lht6L$eJBlcgpX`5Yf;04cCf4${!Qz|S zya6GflJWJ=OE2%FP8o=TLE{ zXi)_dQCR43`L{2IO`2)K)O%Dcev2#uUR%4a9I_|CW8B@hnJ}$t?YxB*Q)f1+&8Q+X zMY6IMF91l9mw@#g6evmhH4=pxI`A5ImU zoBsL7s}uD(q`JftTC@19L*OOSk-??DV}^Ss*Xe&?N>aD3U`kQW!lYz0J<`0tNs9AZ z$-IZetX_zH{-m+U{gOl~5(1UNdsMtOQ|FSZa%8;f^mT?d`Ex$w6Rp?v&%i{pCoGFpzW%_q|$X^0-^CLybx)*I6U{ zM!X{x^jl;-zUqF=vA-HB8F1ht+4JOEl-oO5buz*%`uf^fyKIFo{Q&{n4eDu*FFn|v z>HXoDD&Lgf4?(1UieR$w@^5%m<>9lsdP<&JlVu*zzqG&9o?7k#dkz;8s@X%2vb-on z>0Do6$s2#2pA^YBcdZVNHEmeM1r5$?6MmbI?wtT>h9!6`Vk)hqpP<`EzUo)1YA$sdq<@_^GB_bOg z6whDo8$3WVl0;^!RQ(3prsjvmUD`E(ZGq%!#-m)r#mlD%R@ zk0Dp4l2_!4AWa+04d($0ER*7QG|BrSuvH72N#q#c=VA~is2<7jT_4*uRC;ZPS|+^v zHxNOn!Px$@Mh|Z@WIx2ZH5IM|lEZ75R4)THJ4vPjyMH*H5Q_6PP7WyVr6)_fXDq%CrbE!HTV z0p`+}mO5qcU85kS98ZVHC~ytQNN)n5qA1m3f=!Lk9m1B@c%}0b)EY-`9NfKQ6Jr1B zio^4xP>E_#L^&aAKzLp@UVD)=akJ7n$Z5xRbHvv)4zr1mv%lb9_w%5~Sa+^(BtR^F z;gPQ6w$ae2G*)j-8+$MMf;pw+tW8{Bou%xp5HCW_)L65)n*vp-y{C?T5f`*h>MwDi zLkF}wd%m^d>j%$80Y>MY-q zp=I&-&F;lo|Fy`*VL8ZPYbjJ7mT>$$(`V)SQt&c`>8TclLqH%EE~= z*;b|sHOn@K!dfVbl(E`P(^p}E8(ueu)ktxrhv)_Z{mD`=42fo`!5ysBo3+@LO&>6=Hx&%gokZ2{6k>x0Exz!5R>w}vQJ04tGW%op78^U^lXbMhT;jfCMlt3zW(j3mZqc=IO4I{mh&C+&u343 zDvP^*E=4ZNG6~2bjzeRgn;^2|8n#hhF)pPCY?d3c?UnR=VRlTPLBP;Q%_8x(YIF_&|5==~|8FU57n=!`ofy+pea*d{FXN|&B+ z*YrsY5KASBgS${WpuVwcGfibpAU+Hzmp{k{h;=N`d%udLuti>?Gx&T+^MBma$8vNq z;I~yYtfJt%CkR2uK>L*iyEK!OfC+EikUO_=s>!`w*P>5uArs)q-`p2e#MaumY;w@> zd!ckc3qEWHwf)$OF})Vc;P;wie+ynC#I~KN5a&Nnl{s#eq2!4}Bb|R`hry24MKwH{ z0moLS-_sYsZePLhBDh!cvJmZDJ+zWtK`5x-LbAklSf8su*s*EF%$nXsQzpMtXbnzr zIE%DuBq&3?(cS&yeG8wn} zQE)1<2er^H9fAWpAxp(sslJ81DZYfl5{l-IWP5Z>du|yWX+_{zQeDZIVumRwQT?n{ zh`fh}2z;Jp-~;Km$x9~5C*lwT!g{nc)i?QyqHtW<3i$Fsf@XQ?vL13sD%M$5zqwD0 z;dkO+6#KO#|HhBNYQ^SrorxpL2uU5<5<7_Z=0tMkibMnLuNJ=C9gLt%91+=8@PSVsGdT+cWE^M=it zLOT=$ElDm+dCsI62l>;M87e?f$!-K=&D9?*f}wuZ1JPp z+Q&o=%SmkfpSJm^>+J89BP**}3L&0}O&seqR)H@cQ9W=E9hg?mLIpC6JHsB``Z=ko zoX4=MOeOyNr}S*AT}$G zQcp3`v`su!y> z0(3UQS#Hvmge-e6Q~_?QDMkrns==Eyy0eUC2O8?J9 z+-iW&BxS46B;Zo#?c^uA98MobZ-Z& zkGRf2ypTlSZ=_5padbXa@v~j6EU`SQ-_AacSS~d_p?>@+3~2L$l&0?Tt<(KXVS1;n zyEzb^uuB*Hzr1G@UxB>0xwWp|)%dhC;kg%vyjz(c;RFFaT49CHi=niStL($eU{x!s zvCv8>SpAONUE-6uS#r>u!h{>&H_aiB60+*hN^XDP?9-^PKKM|wZR^zIiQ$uVG!cxL zLxtnxSYKn{^it)Hw8l{;DX}5fdTSXM-&386=8-~s4`h&YRnpj}lXTBOhL(Qx7=k>OZS{X~IYJZjo-PObkaGGW1G!T53SO_9zv(5QNg8;0}c zz>%u__8YN4z`13Mf+4%DwlxDIXy&~a5Ixft)cH?_q0D43o1Q~Q45al<+SzeQ+hJ>K zHQImc&5i!)=dVXyLq%mn5j^I_wpDbjqPwF{Cw(9ITF|s^wbsi&C*5&x*|3ZNms|aH z0O0FAN=)`x5e}Y6F)Zq$l)fp$X8`*_N5H`;N9w%}GvS2;1~i-25;F7&C!*Xd^UM1& zCGdbL2er5OeioV%X@Se&;*}VCT-@JDN~QgR^6AF!$RBGbww8))7W&h`I{)&qpO$(J zf^{iYWL*Gr{Mema|IDjA?O8Ih&vf!}LT_+$p_~~XA46K}vq%YrHetD0l-N(k9n=Tk zLidW$Dbeat$1@yT_h9LIW@ujCZj;9~5a|ge_(U>cSN90*KoZjw?N=G`*Wvj5s^;P{ zm$DCaY}=4%Q{54f#%`s%Aqw1F0Ijwfora`Os)a?RimE7i7Qr!B~u5k?^|-pIX| z8@I)5r&?T5OWxZl$nlS}=@b`*4TQPI>{6MC|K-*{z`NENrJ>vlYhJu&Lxh)E>tyk8 z;iQZYNXdS_(Zn*(*4?c8%rFsMRqpFRtn=jqn_)7Pz@Fx#=&nllMdzAL(Fkdtki@i3 zx!BSs06wme8Z_C}*RWdbOJ{-k*t~B?_?*nf39OXs>%RaoK+eAuL&2n*-gXH}Glf?T zD;>A9k-y#}Zlx}6wVA>n_&4IYIvaDx^Y|%Kw8aZUCOY#~6QZ3ASYwc) zn6J(679FZR#>^Gf50Qv-Ktys~JJS8-BgO<%k$)1FRm)y801L!+x@f*7BX21t8F8Al zeu1P#VS(Vb3tzmQh;(SGk^lM%<^4vYQ1s_R1jP5YtJKIsRU7fPog?MSXn?+9MsHEa z-AkG`FSYIS6ZFQ;`lHz&3JQqv#U`_Qux;Iu3XnxVz;O@;$+R|>h9Fw+&*Ib1WL?N( zEBjS{?4S}u*GK9l@NptSQ?@?W#VcA5U8Cox8tTKB z(A%dRRil;ouU4hfSs4Z)72nl=2lY)m(Lo$Z4y*z;xX!CHG$=B zb!L@SoQ9!up!#LJNfPDBwSr$thwBy`ZWNoUFYsW7in}`2cZ?F)m5kh0 zahw`Q(~#_cm2s{QVj-%`b4etQNiRIVbF}xF+HE_N7h6iE@t)AKb?%SfE*PW&!adnd zRy^@jdm>ozU0{;#U|SIJx@&u)^9`?uoM9_{g~KM1bkT1v1b>2+n&6AYkWlz|!#j|WUA_|vzg(g&j zB)oxVy%HYa#tx3a{4pQniEf2Q z@&fm|!vvGXeIvYk45R0G2L(lbOsB>`w12$PkAWW6pD1-oGkLmtzTNaP90|5quAR3m z&iy+UpnzzlNuh7L&7_lh9I0k1k z)nI4-K>dzd_-OHiE`hVq;IBo>eU zmqV)gYUESv!IL8Pgcn)#?e4X?r_du7fs=y;3CPDUJ&C2(zl*+g#r<95v_=GHM*jzU zO0j06FBf#t0_VegN+YIEAD9i?Z|>OJV+t#H)*;x%YvcwDLADZ-%!zK*!b%eDo)6~o z;Wm!X*D84ooC9qfq2mG*49yRt*t=@JMOnHiIr#N&UBgz!UX|YKt3;&Q^^T(*=YC)r zZ_nKdAy8AgrGL#u*(wAkeuF9>aCh!3;En{b8kENla5R`(nNU%goBy0o(>`<95R;Un z+0+7a838~@CtM;q9Q9!jD{M&MxghsPA^q;Sl71$lR(40*YfU8h`L*afVzEu$dNPVg zSRK;=@Hr7i8EjNaBk|GuAl@%XcL)zOSh->|5-{%3&!^`J;?IG>FB?BmrmMraRdR~) zOe?%iY2XQtP%$vkUi;keD*w>1#4xY=2uQ%ZuqdQl$8kLr5#7wXRo@}Eu-=IG&M{Fm zikSb=!XjD+mzJDjV=nX!cWhldH|ro|h_tX?rf*{fZ*^Z*k?y|Nykvv*z5gwr7e%09 z+f|RvcJMN9?$?+!e?rUDgs++cNe70Xt^%KH;jddD&il_VPi2ATxNE33s4b0i{hF9< zjDB2S+gKvpPfI3juPUo9He)GQ5KMzcSD9o4zHoxKB^l-zErQ*&AdM<{ty)GTDs3%F zsDn?&9?9!-Ule0umMPo~_xHr*?B`!p`Z3cFD;7WyGFgm-G?UzQBGil01G9WQKJ`7A zyw>|M{Gv0{<#vZ+BWdoJc1w7XAGMg};X`(miDjtnEI1z@1{Ba`TA@`q;z54pXM@eq z=}BarGt;(PFg@~_>fjwili%tkQ#IrFQ?57^#rMk1n^;)aC-cO|OnX837O&Cs3aAFM zFWd^X8$Ww>Dp|1ey0206!0*09!zbPYSxYuO#?6kOaZTcNjzawT?!y;_*|nnrZI8#q z*5di^?uC9fWg;Hja`y>*mlwQ-9k;=wX5SEqa>AetB3m2cZQ^xZ_0vvuMl%UNR9-kF zs_QgJVg{7y^S*_6eKUF*MmgWBwTY+j_{^I{l#_p?=7Z)lS7Y-+iS@m?50+xE4S9tD zb`C3BZT`k_#*HLWQtm4RLqwzZrxpB-&He`AK#G)&#aGmJ-NXV4aHHq+xU9cOs4ph2 z1@dV#!&%=ILYT1!&2CxkyHTt2e3NQ)`N-rfLn{h~hb0qd;?}=2@BUaL;yUVNWqZR3+! zUhH81#v{vWcC=-}jJDFPue3wtLu}p~u>oC;Sq#e}jKmrs5+a zMEqlK&07*hFY&oR@}Z|Y{d@Iog)3ZeI!IPu`pLn8mwJav$-@CZ3P1C042aVEo~UVc zYYYN|M5g3^S(3drVA?+{V#j60G(hxO@uro9=d%tR750sm4g^Dy(!P;(Wn`^~$Y#-CML4ihRuYcg!D;nuUFl}4RW zW?0u5ORw}S{4(PeX|e<>Kj^qV+5?Gg`^B6n0G_+iPC`2zLgjdz&2RCugT6ma{)l&y zm3$Sw)8F71z6>1keq>I?0H?Rm{;XH27(J}Y5d4+-BKf?5C%)EOXJvx2mFko1&fzdq zQ+%@<1t4W07g&ny;=q59HV3tE|9@t>-11)vp8&6H$>ZGTA-42KbOS* z$jvCS;g#VK^P!d+J9zyY43y zr-mwnQ=`FLpH0a_9X=SP#TRIwJC?eiR%F8cfaS$B=#9D*nD z30eo&4d2g)VTUT&IOZRI5dt;h)R~-LkJ54vnQUmiTBcyUA|Uc<^C7cEC6eQw9pPed z$vX}G>dc;L^S}ldM{0LI&!1iM&cm;Si(NDMAw03R8igjUU}~v9N{s*=p_K0{C5-Q? zjHc;uNAC^XgU^0VlQKHB+JF6EOiY?-zJ4hloNjbQr0UXj-{NhgMEQPrd zfjow4`%|?@4v3WVdvLqd3=DAnb3TG!Os}@9*iaIR?2yPp3)AS07cvYvzY-{QkfA9Z zbhXLd@+J34iT6@Ux#x&{_m~K0HLG+iP$$x<9zBeIz=K3xBkZ}=)xcei-{^7pB;GtV zY{Pwb9c`jg|5-M#w-zYrNP7r3Vl|SN)2fyH=A&X+EDqCloImWRJQbrak1co$t74b> z0@MY%FA$ysG9xv|VRRz=Ql~)-G3FJ5k`^!&)x7*tqNy2P#l)sq!^VNBd%>+7eC?3DM*NO|al7D> z{DWA?4J;AzwI6D^ol^$;%y0%97QN?uIC{@%bkCVff@_<-yGr{GXBEw!r%d-VcWRHY zK8r`y5x%(wFNn$FmMB$@cT}!>c?~IF4|b)pG#JEE zpZvOjR31EKd|#PlZ&a9%T$2_=kW+oaz;<7zx4Iytk?2$nCWZ&HVTs#mQND{VHk|u5)mo53b&NG?ioWI1Y2k7pS`#7} z82=d**PKa9JbLzHLstvk7u8}5Jz$pmz2{RbJm-X`nE+u(HTG^Fx zlU{U1Pb`XQW6ZvUU%NyVjyyiKsq= zWNaI7{E|~q0`JJHYLB#VB-u+F`2_gx!!kDR z!z9m5n}zFY6|PikHgsz3iD%RC%3#^scCRUc`v~8Nz~|Y%t_(8*3i^fLCey6Dr%WC z6)~M?QRefjEl$?gDxP*QteBk-W)wBlhP$(*lqyMKudBAyGX+k^&`X>do#=OQ&h(^4 zj?*@fqoR%%jf1nQTfJ7tea#9!rltk6r*@{bnzl95O*O9I83-0kCRSWbspzX7i~Lfr z#I4jR@kJS^&qceD)r!r}`fMsrz%KoRQqN{H_wW!OBceaF?i~`^`16OY@q60Bw>5NQ zs3xwMzv2=XGDqPuLmrBfb(#Z;cW$u=hh+tr2{d_yhB|2^pu|n#IR}D+9 z`9*O+IR%YOyZZ*%`TaPw+`fytvJEMnw_b<__O1Z$;odWTC~UIz6n-{-@7_XhTYj>39~j=0F__93C%ON zQ>2any$?I&-G-PtIXQmF9F6tkdNIi)`qC%T#t!%+!3!wE3J?lPjHWSP<`@(M&fa3& zT^m>vi$Scd9jBOZ$V54ca=ipQ}E5obTm@yu`F9Ck4xvgW7Iu;H3Ai{_neYIMEzHlk9* zbNixc&Aw1W+PI4J#a>~_1floz8I;_x&ixb(Ks)05bId32IYMFq7*1`jo-H=(5Z*v2HlRjPh{Fo6sisr85R9!FU* zzu=9=+}OjOp|K;L2xIoy73PR9Z;m;$(Hr*~F><&sagxiPZMuh;EtlbP&4M#EofnyN zP|=k@qKg^dWB}Vd?|6`{GOJUT(jsX=ZO@J)?1F9b9*Y%URzinFR&KqEE-f@~{7_ao zkAtlibFC>g%9YAiK! z0{wK>sNhCv5cOBR)wZr*B1gD8{v2HYVUYcVQ(Erz_FK9-j28Cib~p zt3uD#@VSg)1`SIPj0iEKif&d0kV4gFa*#6$$JQq-qUQSbkK7-0Vc^3+g$y8;irYYu&G6Z@tIjgbf50~?L+GVj2fzx22|z|Am0dHERXQy zr?()~-R)s7hW{U|LP*;aV(3LarvjgQm^q7&q;qDO5~cPx^hoTf}B%Bf+VGCRfJNOg977A4mS z`E2XygC~41H;4?Z_&%{dX|oQ=UE#6{oY+(r?WNdcZef{Q#?SKd^Yk=~lc~ib1Z#4B z8em9W(&^h5SsFTr<<2@oiPjwi<%q(+d2Wl$D^(>s;pa(KpL^M4s&>BR98y2}Ak*SBsBk?)4NuwKc0?b_x7-@q^Lo1R~FvNN$Hscq?n4%!{ ztO0*?1%D4sh4|JwT*|6WA!WK!nSM(&;^WnLp;rrvI%GX;Y@DdeEF2S!Xv3otvw5a? zQ;p{-jDL5cQ!%mu3q2bj+bJ;2pgL`i0aw;dZPd4^Ssal_y!ck_?h=cpJ#c7Mi{n{K zjsS_2NQ_Po|D9V!KT=dO%s`W=CT+EU-^d_XLBe@GoEK&zTCc^2T$crpJ(+aix*~iAkwoa3^U)@HviDMLUW2PVD+5aZ`pAa7BdoHTx=s1%60R z$#vhZk!wcH5GdF&1DmG9WjtGu6IBavBxiE0DXav_hCwMg`b-9Ex895{W8cc?xGO9; zi7!}~V}hZ5(0n367`$gZ&9&4iW&IRKa72Btqbt|%YPR4~eAUY+%6)vsld!U=Z`D(F zMRoB(=%4Wca7OGUUV*=;Yt_S>q|o9eMP_ z`?@Bb2-p^&v70*qO!hnaG1SKKRbMF&h79|qA0Zeey=ba$2C#gSI2Bfve1jYNAo3x9 zkdbL5zN!gsyR%cGg90GyGnwg;d@7~FIcXs~@ zk}64+;DchT*BMeGY8c*B3BA}1jhiR{1~T)cp2_c5Z8R)e<(@}w7BfFw3m23n)7Lwh z%&LiO_&!d*19~&(+QuEnn`*3I0@}~#r8J<89FJ?DPksH< zdIgvWX%L`u{q!ksgLY85IqRy?WvdzQarCRo)J5Xi(6i>ey@YoWnadV8gS7m=7?R*s zyKdd~6baDvEgK}F8DA}CiJegXxzvJgb)=g7Sn^>WvdF?HAV9@Mdf!WAjH2y5ZYiO^ zt@B%!raOk@ljR@5IdT`~0ABM&_bYREof(XmmHncyyrNn8J|`*xGz$sE2v}D|%p=nm z^5ImW4K0PS%1pO~SAsKf_5mEvUe4mv{Lb*$9;8b(2nwwj6{Hv7LvuS!bYSe|@N>5D z_BxWb0b|rIU_JGyvy01sp`W@Wpv0(Tt%YBew^^VNx515Na(}Z#eJ|9gAiv%Kn0T*C zzDbar3Hc*njaFWpu?^nOFAWeacDul=tP|wyhiGBocD=b{^xRq!co}J{dUG7r>PUrlnwn(?=1fO&&5YPRq>k$3;*D{$~}2}J+?Fa{lVPggg5Zk4P%bcQvS`ZOgBIFLnihRADw#$3&{ z`wc-ufs2_cq4!8o)K-D%RR;6o;p+khrsc>u+=B(^|`Vw~%@ zRLD*C+3CkfGFy3{TgefW;-vX>RA6a+pjNo+N;=_RW~-o+&AH7OV3jD@&tAayS_ET>Cd zucr(+o2YqTJ}{B~&b2sDMHsd~k2oe)OeS{My{0i`XD z5qpKq7x%tOvGph%x2+OSt%!sanDx6qZ0)V^Pv`2&c(3z)ZEL%fvz?60Ev;2@0LTh{ zmK6Wplb!$?uMzeh<<_JyKGbaMG#}(Od#ZtEqng+e^$PhIB}B>mFH%J}CjiIa=hg7LckbmyzFjan;pc2t*pycXvtcY#hG1xddJIo<0-X2>LZnqBhaP z$yRjT99fdm5Zd(-yxeqz-=@HELRyja8w|I5w@-Z$ldQe@jzK+Ah4_R7e5$ty2opy{ zgq3wBJWMUFj$hNv$aH(rE@L7Kpt1}7jYb*11<#9-C|z=YYCn8_zE1f9uriE7`*D9m zS0E?NNdcZRr)00aO7i^Bx zQgUYe;{4&Zn;z+gK$~1yy01;FS%_S(F>zI+Xh;kpvb9pLz~G|kI7SY0YaQiL)uHnQ z5^47pqjdUT1bEi_*YJZ_ajR6oVvnAKy|KNg(=>)x1W8GSQl*wAg$^ip;*6J+gPWeY zjv$dX5&ba@jwGGv&gzRA6$>HxLC=8<^~aMzv<47ur?_4kV!O=r(%7ILFPEBRo4O}^ zhuvLnbI4gqdCNxTGy9_ zGr97op#VU0D<9i9A`O}rzPStY=dsZ9Ag;yp$c!QYIBV+6GAJ`!Mv4Bjd(_!wC-^P& ziSnBnkgdS>h=^*H7uvaZb$;M8`c98D`CQHPB7p!4Xzi`-msZsU5C4fWYnHH$T}mI3 z!YcF+F5!~S!=c0~ya2MuE?7=nYGR{!5d}((oyhIJNCy|PHkWt=$R7=O9k!tS5?grW ztKt+1j4X&)<&D)O(enPA-rNmyGOjp1dBLwgAo*0`<}dlUGwIXoc$7mCWElFFeqmAp zq^7J(B^&m!K!-I~$P^tT%4Gjt{R`Pws0#uP{GjZfs`Gn6X}#p0h`QaxELv*uum-Y( zz=n^J5$PFEOJ^N%blX*;p>rW#Cna9|BqNt@FCa+6kc6qn6&6@4&L!*j!Qj|K6h|N3 z#Y)j;V2~$l0u2d+mzshAl?Tclci@s~RE>j`lZn&3H9*jS_UgH&z7NJl)jsnj(*H*- z+-oqHda->g#v(u8UKYuxuGB_hW&i(hx4I|);_zVt!V|aXOn9`5t>$#Amrii0vgS-o zn&rdl%&{5;raK9IW{!LM*^CX_-p=KSqRd@Y=aM;^F;bvicNio40}{-&i#~rvM)tMB z0?g^~xjlvidp&HpJ(_*3m;so;zZc-_R^iRnRXz%DV9X7U$mL7eCkC{$Z!Gc z{?Oe`&s^=5+YcJ>x*v8>hlvS@u31=UXnFj(vF5>w(ET1C5k1r;Yv#~@ ziivewd?W}O9`6}~YOvD0UxuUwzy3#S7YO_4teXhzWr%lY-jUvTP8>rVA!(~+bmAZ< zVDOSBbHt?X#%}I_AfySnyhZsRkNgP$OnMrP?Lid#5+6$@eswWVBH+kUn4XWAy^$dL*UqL({f%3B}kYO}ljHbAG zm?vsG@a$4eAadCS)*!wa{3KbsK&ZSx73DykH=nT_fkJmxh>5QgqYC32`jUyx+PzDJ z%&qsSx1Vc_W9cC-Tc|a$I8%wzh2SSHk*%=YbVx^$B0F~>HheQ*cb#s@&}GPty6+F8 zBB4n-*px>(In$I>l7^xOM6240;6MQq8JtkFi)u3-#4-ibWW#Ou>wR@2)6{v0uRpELWbCV9} zO2E(%>sq>L+|CPBp?cbk%j5R52GO{=i=rHJXGAO_X}sGFp+IA$YiVGB`k!p5ZabEW zpA|Fhs?UJ1ykq%fFwx~DYrv@p^!0%Uz_UJJ z6^e`f@*vq!fAY#h$A!!5Qnw8G8A|(KfYZ%~6x5_^?Ri*$WBObYc#dx1DDTT16_|Q= z7Q6hQmZbzEcZ!3*baf)~a!)MYVLb=m%XwKR^yYhNRCmxs{q>y&9uM`fa-^*uPz? zlr6FKx5nYl-Cv}+ zS9B8Z(8Rb8XQ1>t*;0n2Y<^CR73JuS1n%VA)+=tdI%%@zKid_ut+5|3GK!*(dDNwcs)g zXD1c5{LWQLmn4kj_xPJT)d=HpvZsrQh#ekpn%~&M%3zOvOC3O%_iC(nys^=MLs|Ow z0buD+JIKjF0XVm8*_Ye$Mk%z0)HV{bugo4W(BHXZj-AQoUv-ZU#Qk{#iSCS2C|7|@ z1SLWt6rxy0nqh5)hU$^Y{HVn$v$_rUPN93Ne@qV2tm{#*PRJ<0#(ce80a{S3I)Tc!=IiP^>;SZr8Yp+iqE(QhGf(XDV zKb?zf{2Qf|4$3fb#nTC;GCPa~3@SM8pd$2=tk~AZB}wQx^3a9j4eQ}r2ezO_lx-WX zz=-buf6Q^Z>TGaqG&7fez^n|gjhh0Nn{x*KKSs|0O7z!kgf!-A+j6#X3K%fA;N+cI zr_1?5@VmcGLb3N-Cyb&yzmTBw>0si&PUzwd&|}=7e`#6>7>?(+S6Oc7;F$7pZE-3k-cVRl4Kp9oph9y@4_Uw=3iDuYu#4%-7wa;#)_4zTb(r6s`T;bU z+gad;Ao(%&?&q@B;!52=i#E{iO8;OZ!KjZ}-sy1GAKP5d%C!LDFw}hcyqRa!EjaSp z?{K0YCiXY5)O5{0$BnFKKHV23+Jr|&(nbh&imCu`G}efAt$Z9Ft~#MCRae}P#fGBj zHB+gT(drx=NY`Ydl4B)ubFxF*bHbYhEuWB>iMwAi_-~H&r+>8QdbkHmu*}73XZ%LNJ z_mJR6kZv*ISU*V2j&@inSFnf|`s(9#!;Y)q!<)5h$Df(@dt@m{{+0tos;nP&W8E}V z4B(9PH@?g8H;&jghTqPRy0UK5qj%vMY;yjO9OvDTXer+l5tIZ=c)ilw7r#DYssL4r zUH^`ztK52nPNmDZ-cY&3s3a=zE=yyL{CTXJ469@ZZn^HneWPKfRZqGt0ev4BJ5v!H zayG4lwxVSmbb6|FYY1?iTHmZ!5B$dGHneEqb9!2*usNRWW%GQVX~Oy-lJAZy*!88^ zI(1$9lB3k&4Ko_PJbM1UpAln)a&C}|t9=t!P(Vn)_Z+U7a#a-4^+%`;P~aVE3-h7E zP;f+qau>Aqs^?Ft-G!r?j!b^Dghr!1blyZ>I1UGx*JmffVOWv?g8^yYHrHkLS_Jk` zUe#2h>k8b81^YijaOYhV9w$91xxdg#I0Mr0=FcG|ZzEE|; zL@zSv;=?n5uc_aBO1W8FERt2h-TQ2%-qM9ap8&oa+RkoXbqhwN)*1c1^VHx?Hn!L` zHE$#d(vl_njRNH3$@6@Oh}pVfhsR?Yn(2O#025>H1#4YpL`8Vd;DdOv-*AR8TP%Ab zS$=mGj)`~8sTs64I$X{mftsYG�cQ_t0+A>W@ucv`huEw-Ssc1@g*1PR3XN>FVNe zlpf@>-C68`KhB3T-c%l5ib4E`;ryk~e=Y0jp;WeGW4gAo?!jp>1{cIjeDn^rM`Qkv z(PRuJU>9xrl2d4#vDq2)v#N}cq_rUNC{7!EAkvE5!{ifhDniXOp@V7rKA1I^0Z!Ua z;=5-A)3x7jCk18AgjQUkh_> zD6BirADeHhR03n!ep>d%&qzi^1W`XHu)9~Dt;v_zn+1i=*1t1ASe-Ue?bqnZ_Nana zTVy7vFAyD%>m0vhF@(#7d1MmE8h=)McoejL3Bs``INySP&TS>;${55OO*kLtRIMO|KM|&@ga}f` zoH|b7W~h$w11=MlF!3hfNof{-Gv~0?o8edeKQWReB^0D(%8(2S6YhaZ^UKMbu2L&V zA(&n-JF;`cTKzO-MXi~ba3>ATL$VlPw=~=VW;+d&#m1ptTKqNQ+gdu0Slgr01hF7y z7iYK6s-Km8VFJrQ=}(3_;9$X11kT1MzbsQm70fltz_j#%8a%kCjl2^BdC}VN2F?0; z_yWesmb=!QLxugB*`mKV!bCSa;x9T%%7u!PD<;lXFU*C%V%&2&T|2M$_*ZM}W3-ipfTLeuW*fzdCGLgsE= zFk^5r_T$HGpM?8|VlJ3~k7k%(H96@tc0Ui9ftE=^g^g5=xQ6!aGECyy2+B@((xiZO z28cGm2C(a!m|;}sXY}23bJF0D&NXR-#3eV9p>gPAPpNOYPL|x=|Hn?B^)l}><@6@Z za5lWOxdYuaemGrfx*pyzCT8jDHj>J~_oK&YgpI;P+|XjF#^A3)ERn1^p^Xb6&gBSF zj9y~#pl5oaOFV47P?(7}t<1IV%JKl=_>p-tj6$5S-2!>g{DVt9r?a@hcB|DRk_NBU z1`@f2svEec_X)kaX9d^~zYR3)dH2Ut)HO4i1c~??Ho5jibjvp- zKEg?Bpw~8K$;~nL8_&+sg+%M%+*KJm_4o!0rbI{K8appZfezZ72{|8~9O0B+UDHBp{*R=^tpZnqYr}gb z`c|LU{7WrHJndMxe9(kWRu+A4O|tAs@Bl(5G7=v;Vc{m zz4coJ7e7I}!TE0m$3;^i6*zRJ+9C>YGtbr0t+SZf?L%7hZ2QB23_8B!z#sbmBPO&C zC*U;Pb?4`owLR-pnaetiL6{`p`F}-r*ijrUlwz}U#hs6%p#;R(l4pNZ zS-Wg6?-j7EwFcDA&qO{eOHnPf$z}AL-Rnax1?aSFp+OA@79^8SBkU!aBBgaNXc#;f zo?Yn^t}3}LKE8k*Y}sJvoEFY&$nLO@B?Jxm%WFm2oYAc`NyIP6{5_)n;#+}LZFI-a z_=K7Z|I|r@#cHCYoe`r~8|$zc#~^zJSj+FZ&n4*DdxcLbDIlv(L672k=z17=_==~DEEg4EX|zE4l#T`HWk0sao_@sAJfE zGPn_XMNImCkIcfjGE1**wFf)M?AvmC!}Wj|k>TNZmt*F1uA7Yh5mq8K^}ox{zaW3- z@R&TL@nqHlKMRo?qLZ{Mx$OzGkqISunDKzp?^PpNa&{RiJ@=Y!Jer%_)RRMot`HBHIUc zOeq7jCLh9LzeS#Fu>%9&crjElL@=1 zw6B*ncON%BI%DY4G!6igLd)PP&hvLOX;0IRR5TgNGrk)a)<4^jWJ)?JG}qU3wd9~} zd<_CC??b#EH>lN;ES_3{fvI3Pi04Oez9ze0T*G|e7GHqP1+6L>#x_As)2-x(PMhA7Xp7RY=ta@n1>`KD%M!qB+Dy&>cI z%W}D$TXOY9K3D%;gg;r4x$tta$i5lmUnO6M&py=3XZdaLv16CtR$Oc=lIY0Wju2|z$jh_&H9uRmo0k?fS7@hXCc0btke`>>uVP(714*U85 z*zp>@ab7oVl>P808+7YC#^#ozU&qZ_jl!}CttnBJ9h~e9$C84!FrzwhG{lraAi7Cwq<7dqO;& z^;O@UmW9~9oa(wNygOqXbz3ePVQY-bZgpsp0qKv~+UrbqUpIVFsQ)=C zf+9rqRSn(Z`U8}VFMhus-SCJD9MGBkY4HNu5MmzENu<}j#zI+hbH)1{&ZQ zl%dkwLwuqB2$5fU8<}x12eqrO`cbTaH~Z|R19!5hrInrCO(mM%{ph9X%YCQKW=iWM z$!zpG#j*#`<0c^U=%Uc?!$6FK+!&}Y>?{c@^mak-@=ZQDg6a@MZpqT@P8=<$cKZh}SE^Uk?sladx5F62;HPqtd4G8`DUJb z5WM2RlwQQA?Rj|3hhz>GgG(2j9K5!@pRhB!Qc_Lkf!U|y%Yf_TUGFx+X6V#5bX3Zv zPW?FcB8x?9u07ON0^QKUoRY(wd7nLT4ZB!?&x7*~qpt@%o$Ui@WN&LWX+D}f3*?eR z?bZcI{EG>ev69)&?s=yHDg*~28#+1u{W3qm(#!v8wr0LVRF(4>ZB zL{JptsP_449LXByV#{;rf#N)7nfBf!J&)n(>)}1UD-Ne(Z|-zdmNiP$LFW@+WBlup z_Y9p!O8JzKvZ+DXCpOBnvqJs_qWOU`ZkGb9#T6yDR%^_C_l2(`>0#-n+6_{mf`cAG zQtY3+O_BphqO7LWxU1St0gvMxWYF?`{NiW$=(VFmqeO4)lwxB=d>A*2w3vQ9W26@= z5+8Dvb5-@7XUNTvj@DTKF7+XErB0KkhU@6$uR!-de0#3a()0hIEk8_YmPtZwM(svZ z3H!}mP|;Xim>hI4m29*%{KJ*Y(OjdG3SZ+C;4N0>3t|>qQkor?B}T}k&WM4Hz2_|h z4UULSF<(|ui;g+(^j7_qE|fEW?+a@!9<%$*fF4#)a`+*iZ3+hNY!7og16<08*MoK#yy0r3!Zq!&+``yp89|Oi8)e`g z`kqm(5*S>9`U|}$%$u_R-M8k7@deVanD1#p=q`4Sao{QYu3}w6O|sfHA+ZvJ56{I zNsmzZnYP@66cSK!t`)>*P$PorGfpyWo|}f>-7p37u2DH+RC}GR4~jUMqLXf_k5F(a zqYN@*FF!ZD*jW9S#gdD%vDr!G*V`L0yRo_Bt-XG&j6Yn1bu&8!gV8B@tj<4IiVK#3 zFzT{sn5zVjZU32*IF;1QV&zLc!A$*dK__390I6vvgY$D<3L7}#zene4q# zfb|>}KoCUcEGs!52`2>}s@N@r$e zMlBz-oYrZprTrp1L2P-C8d6i{Z}8XSg6lJ|^EV~(Jy%`0$7SV9Iav2cMujCiKTUZB z7eRq-mvq=q&r`}0D+w{eyVx&&>FhpVe^1rK;j)@qlBYyN6Txw`%;K_Q4xy7(T75OW zmUa-9bKlqB@{DjiF=&}O1=bdCr~!v7Yzx2G2VC844`9zwsH&JRyztfSVh&(t&N3=A zl6#BI2MD3GQgE@d{t(h{|Di1X4w6T`Pb}z^))=0q0DOgFc&veak0?5-a|FC!9ZG0j z{l_+)O-glvoc0ZmqGeGbxVCo?%1sdp`!bHH{Z@A0ohT4Oe{h?ZcnJ`52W)=7^#3Hp zH!_0=mqsRF@eEn?zl>YO+@Zth>=putoE<)8B9fDl`MwWM)%`xsOF^VT2#H++kG&cY z@UMQLq6%1(t=)0(H;u{=!YfDsjR-2m!N5X#(oQUyc1a6HxV>RkDM{mbfp=g5E)%h3 z)_e~N-A?p!(iP;gDh8+T8Ac8T4>Ppqb#1(s*r;R`xUzg`lNt<64c{p&6auM`)J1@Pf%@`+Wb*?@`#Ry z){F~`ob$o0$VQFLWyxXRr>WOi3c*{*of2kNX)OtT7`u*GX$7f>;edIk13 zM~^tz)NaDq$Kv*Mfih;Vk^sn?c#=UPp^&<{GH&mmX4Fvs3RsBEr@KCv6N4Vn%N^b> zquQcfs(%*sG|P@o=DXMFqRnPwagUj7ZQqHPmG>Rt&6i6TM99FS!9_&yXf!=O%sIA# z4l_`Jiw_PmfI~g8G$2e~jN_-wD`&+Om=1l-sy*GENFq&zur(+&w#^{w>6J zV|%#r;iCYGGa9JH`ifowPdaFAOM30MFug#l)VW2RO05c9)04K9G}hwxsEJ!g#A(>% zxV`<>zR_mRNez0gU_ujL{Vuohjoyp^F?z=Cs^&Ch7{@aX`}3(6-KX~6Rh|>pM{=dV zoi5l0pS;VJEE+T{!fixPRLcLe!HcGEoe4ZQ@U0rNmbjynEP?Gb08v1$zqHA8)>=dq zJWB#Sb-A^t}s68`J5_U0YWBPOAn3c<`?@_Pe>jF^FruD4E!6HJ9}RaF!AC0 zKeiZ|0nsNQBgcX(z>|CbLvCIMMx*A?0oKvBzZwIyA}epf_(W+_xB=cnm{SC&`8!$3v5H z+k%YE@i=*4`-DCk!5<&LXz<7jFCBt(p)fSK&+&_hH7UF(6&Af3 zY&ATa-fPRh-xnxvhp~7ot3SBC&M)G=n|;Ab!u}`B5uAx`qOE#iHb<#HuE$o#jb~tD zfJgAg(kmYDPI|WYm^yu(w~i^++NYjAH+IL;)V?x#7Q!D7l`aNmrLRcri>ylz01R5G zm96P36|dJq=P=ldOZ`SCDksDN=()a}&y0{4epwnYeM*9lS$t1dy)#^u8=_`m1(<*= zY-DKVn2JM3C{}_+4!dngi_8O*yseRdN^}jXspRY^5-|AVdWknc$a%NRswe}h&8h1i zlPICFX|Zyhr(e9i%5)fs+TbN)^^8S7MZz&5pUHB4R1F%Ngqa^Yt|63Z*}3so@LJ6zhwr7&}6onoeX>C>D{|U;AzE&`cfti*%Y5(>*W`KCjF;? zmY{44xOvoE>=VtNy0=Wwv}%{dh{BlpEOVpEhSmTgzd{+OU2x1*cr^qET3-wP)nFU5 zmpR7?-lCb*rURS50=1o|kUqARGdE8%>C!-eU3f%|_vD%pvhoq8PPdAXz7WPYRZBAN zc3tBbQrVN2b#pdqhZH(hncsv1+>u5TCH4}}6e05ooXvThEyDsuKVKCCB=t0l?z;89 zTR2GE1=ELR7lbf!SGpu_+l}GAogW094Yvk~2yR|eIKa_Ym`!=!EA{8{CJJ;t zjKq+)(~XWTo~`m@B+tbLiGwsC*iyU_AAf4Av8EiI^&YdTKAuHI^~H&h9|4KDZ5`)m z@_l{g4F2E`bzx6V9(-15l5$HFAiJ_(6tM;ZeQPrq@<}3OPz2m)984fbA?S4cIN1cZ z|GSD)np${p$x<3==aLCM5*ho;IK)X$$E+(?JU5c$T<#;qDx->COpR&G`~H3~Vu@aG zZXn)(mN}PH@DqkD%dXipcPBh08|KZ+kJw&UigB?-Sc;ejk2dw>W@azci&(~cT1l-K zP$<^r7*w&}d4f7n4f@DrY`5VVe(A)B(#pj|bP69`#@z4{Zc)}UG#X_kXhfSv4NeZl zbLz|o*0I3r?x)jI`fFy_+ zyw9qTeXA=}3E|SBp9&R&g({%RYTIs3u3V1*^-}#GcvS#EaZn)n8s?>fk%;`UoF0j~1WIEiy_ z`5HI1fHhlH`_tes%cwI0@X8dv_XrW zn@&W7-6bdPDl={4a64#{wjDe=5+H^ZlCs0=HTA*)M`0MUGm<0R1sWxQZ1S~*luwtl zvP>ZU*i+!s8TLYc#t5m%tKDb)Hmn#apUvJ#ug@g;DQ>V zqw*U}R54@o1#}(8sJzzYoe$2c8>5y=HPRLC#Rw=2fQjfg!9N40%cYk@vFZ;dX=>MI z(~GnmKJO?mrkfkU%Q_dYLs3EkEYTUyYVe|EPL>cReM%mhvGMVt%mH~!7q@7(Ju6QN zfDV_I++l3$$fFDavr~&MRRz5ED14dq*T0bWng2n8TD^psfa@AaLtsQ6!gcQL-w)mw z0^A|JkJShl@E`{Whyz89#Lkqu3AKTw^|#?|TC0;YeKLId%a*zxfL3#EB>>zLKjq)Z zuhsK_5rqP}uCjlL^bp9)4u=PGQ}*bN-4l@@11)b78ip(t;t|1elbS^ljVaDoFtwHJ!Bewa(#&X+n*7R%bI*Q_iAa`sJI9VB&lgA zxVge>9?cs1BEF@nDISyiIsqw%ce+CBdX_95@Aw^ zZ~%PDI)767%HmLO)Fs6ECg;k)g1H#4+2syoOo3y%c=s2t_b}?tj?`a}I9RGT7oMJ&9Faoe)Kvm@6@9t#|yydFlVB9!TJP3ok?ds z6($!zYhSyXTLr)1x9Mq&)U1V)%LIuK^Vb3qtrgJb??8I-haq)~iJ@)S@RTjq<95&} zVm3B?Kh_}2Tjzi%{VEao5Hz$+DUoeMZ~0HMkIP}71a0urqHgu}VkImG3H&T=w;!)D zE9OHUCaOFiue;uXQBeJF3lQ$UBem1&E0TxXLQmE<$Ipe)>jl{fk^BrhD~6etHRp6H z4nnd{%sjL_&<#)*A$UVcP;ZDnm$2j#4J;QVyYKH+IqW;i+qGm81TZ?os?9HN+BbAf zoSdoj;I%+-Ax4>(b$_gWsYf=qxDwki^?5$o+s}7zQ6hM* zAWG4$!DMfH2n3p?NQrnlv<4`qzpwQMuRnN-gk0MT(sB2mr=s-|Xx@Uk`n;*BhSv4= zG?T-57O~E)A~fPZv4|+m(zq*$;xAUB7OL$Phs1Fq||4dRtn_UTLwsp{m`~{*jiKy4dA$)p4d2eWtu2;eAuDIr4s=PFUlNF6-!EKC`9}U zMBNl!dbi5tg3OhtXs%47E?^r$`E1uBt#3`HIK|yw^2hMCKbb7ab>;ve%d?n{)w=xi z91%C#JH*B{Zgmv@MDLBRDLiG5uo{ttKGWx0qj~p1aH1LeI=EDCuLx5euRZQPbOz?G z;^CaC-D?sV1f6Ov`U}S!xP!|)qI_Q!tV|=w>i}k8-h=bGxde0Zi=Ol%pbGF;28X_x zz>bccyV3Y=jl6S@awt}1s#HZ*bQyxmH4O^Gf9Pp0pvqM6#v({}XR>y=>>#fi54^Zm zM@$_uKpn#${14AS?o+zKtYB0?R@A8#Dm`uc zp)htT2VD)kS+fYvihbKRv{BB_7)evFn@ z6#Y5|b1DS(F|2d==InG}re0N){?s0-Y{eO6`f$tEg3B09@r*-R1Issd@(iq^`u~(I zI=(RW9mpZ0$K7H_4xqJ%ZYr0G?TZGjYs~C(f zpB*6Izb%q2E$S~87rDmHq-q>Ws0t7#1Nih*FQ<%@1a*f$!M;fJsh++X&-)hj$p5jiu zW=5@3m5<<8*(Ek^qd41ED!^-ddV?uyt>MCZk7zGltqXIL`yewXb`juCD(l3cP7$1J z!sdgtTio>-{rjOLM&Kk#F%yzD>Z6-~6XPv+`?6Y)9gCS2D9j#oY>Q^lzn*i;3y+}@ z7H{^*&mYR8nCLc1d8L=2|K#&$jz4&v0W5=nwodbhuI1XSbb_> zU&5r6)@?a8LPsDJ`33Z(%-Ajezs#_MQ=0ZRj1DH|SdBd|rzeprb0!1{oS1R(py$Vq zc1{nz<{$-FK$Rb0IYc6wlMILhJ#VnW9aXCAf=cqw=!yt5OBr^|C zQnWrosC=yVU?_ApYdiMFYe>(f3C_gr^&y}hog(k~X2B@_CP&1qDOI=K5Py=|RD>y| zM8`iue-Scpr=Sbc^8q_>navGrxCiS$a7IIAvDwx;_effXWEY4CUf4RhA?s z!L0yc@eb71T+6>1&U~3u5c;~bnXS-SO-nNJ-pKRvi#LDXAPm*>6o6HJ9bOLjIOTTk=#M+7TO>OzGm$>}a67teAXTn*^QY9+ zE|F|j*;kzMxhk13Cpm>0&Lbrx88pF=G&pxgr>Yt@tQ&+=-SI4ITMKyP{;WYq8uGe% zahyJKGU}>0tC%^{eOh-4rCN>oQ(!!k&$05wKT!N)n#7I!zgFmm9-(??%4-@mu;NQQ zzf2Zn96p`$P_J-GkH~i9nk@cwm-os?rB2j<+o&(ls=7T90Bd$W&|yzwz5ounpn)VH z%9YC{%=GsSN#_=*b%)%2KrrJVVDeLd8DTx33CN(az1_S0H5Py} zA8l=Y629OSC2wIh@oV8i@3}X@aN~bY+j~~~*Qb{K$sZbty0-oibh!q?21e8}6?Y+f zdbG1Y$lr7+GJPxNtTnlD zqFM`;=ZD^+o&Z6D9IAUM#GwUM1C{Zv$w%etI=$xdB>{FNiVsc?*dJ%}K+O?VXw{z5 z-H%WmWK5e#Q*FO7(0x1Xaz|Ik8r$-?>^U#iFdx^eooDlU*m2(|xT$kpe`D~gZLIB9 zVKMf(%do+)=DwR@{<*GDlCBqPBoU!$Az1n;W0`6&*4!L{+JAxutTgnP2)WYY>{-IoeKBOOx8meHXHI@HVpP4EBPbL$aTg@2X(0(K)mLuuHw&^1|g*uQ}&z&39rrJ*IlWDm`-mnMb zlIw#gG#o*Q2=Fu?XJj^o0`!mUzM@yVf(q5U!2N ziJsddZ~$bn=->^570w@CaCNr^ds_6 z>z<11&8@60@64Vv7?5I$XY$fytU}ew6CKuIle%06@2;jXq7==hfDE^NOPao-WKX7! z`34R0a}*~j#hT~iAEN}(TewyIJ^{rL0rz$?2tR$UWQ$EIvRtyz@x z?2L2FhMO_jWS}KWGId}8uLE?sf;@{#KZ>4jBPB_iMRvMPq$Cnu7d6dV8&OjBJZjEH zHj-)$*t?Wd3*+alh%MIVRCm_K)4=$9#5;C&=UQ8CtT81=jFK|-a%X(h?4rZlKFQ92 zfGa5Jemfos(3@7Rw*
  • 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 literal 0 HcmV?d00001 diff --git a/exercises/morton-order/mortonorder.png b/exercises/morton-order/mortonorder.png new file mode 100644 index 0000000000000000000000000000000000000000..b36cf29ea3e86a96754fd673cd50604ab1d5b353 GIT binary patch literal 8547 zcmeHsX;@R))+Sad6rxh1e28FCrA!IRpb3KleyE5E9Kj@jOo9UfVHS}wphOGBff5qY zpnw=c1qe}@A%uz(5(;DpVGN02Koc1R0}`g*say9x-Tn0a@pb>}=Q}^n*=Oyw&K}ph z-nGvSx8qJ5*Kc31q@=VFb?gX6N$ESRlG69+AHD~Y2NnnHz+-KY1LUBj^ej_t>GV4A z{`1*m7)VJe(NIb0@>L}zIS^g`sH7BYuB0RhP*U1|Ur9+T>S6r}TTn6X=7Muv{p;%L z?xvS0u1}vnJ*}>8S}RGNye>PlCiOo_V%eSUpfj3D&5@vB$1k8 zV)|=ps(pRO1_rur-h6xR+`B7Rre|m0H#H5Gl(a-d^c57mOigVF3hF5>6})`;_WJd4 z9#1knJn`}4&0Dt;5))@zcXhQC7x%t;Rhg1<*V6Kq zu`wemDj$oboj!fv(edNx=o>P5VtRV0rKOX}EU>j@o;}-ISop{F>mz(V6@{uN5a=Er zy)0H$R1~|Z>DH}V!^6WxSKPLOA+NcJIgVBO&#}JqikCCaPDhlkuiJ49yr@PU^NIma zMfsT0(UwqqP*Ayuf*e&wl((zxP&@4TgNl-po*L?i11^4GLXecR%PHY<^dHI_Uca{N z`*8HkA=BT2soJ-xog0!K$RLH=jH)krhOeEf2Hqqf<3fc96R@gU3i>i_<|wxAF@0+=JQ6|Hp`fq)UkR$;(o$rhPWi1X z0r?H>JsWBCn_-fhW`d=o_j!>!#_=lMJPis338Q!)!p<5xVsrXQJkN3zVYy+NgCM`~ zg$z&`w5`su&UXGbbZ4} zcpwHre#L_fAcb))y;5P^ZArFP7$%9EP>zxCQqbyeo|tF3ToV{&{b&yE18uK!1}!b# zP_u?U1itVi8|4@dZvbkS<1iMvTr(JDW;`GFiniA!gT`8?ugRqAW*5Tze?d8h!dt1q zT&x@B8HKwKsBO82qtf<*QM1+>Y8KOdftuc9lw$~d5U3rF!dOtaRxrv1tvuXS+TPpyp|jwLU^pIpd$QYgVO~N+mXFYooEMS?j|kCN);^wT1?BQwTDIxdMr^ zcsc$ZI7`$uq-;T}{3@zN*~)CcoI;yHNiGQY$(x1AgiR8wRNX}lsKwD)awu10T~RRC zfkica1`Bb^pnceB7#j`QtSt&g?>>*o=^^<5A+^vj)&a6n0Yc*lOimZc6$sDmG>Y8} zB`5=-{w2(Ul~|8d2)pqS6*!D@1J!FsjL0$A#||*c^W2~5VYwMUg6dLO7Po?Ktq?xY zr*Fv3_zxhw8Ir|i(C-7`-dtmP86`s(2%pfixW)8u3gLs@bQcOm-`EkW+-*QUjKzW; zQ zIu?m%1EWtadAvWNw(X#$+n=&274$lV5#lhW0!jWEwDf(9KGGE%l7>O_SUF?%A;`Od z&~8>A8HA@nDTJ0jm@Qyuf;PR!obeg73##Z&+}StOLM!qK zAjHQgHW3SaGuAQ`vpJV*3e3p~*%>{!J7AoNmNA$U6fOb?jbe;6hjCkYIjP@9dcXV2 zKb_CVcHn+OU9;+8xj4KLYkD7N7t(FB)<;SXD)tISUvrqJr44)s?DeU*y!NR(ON?o= zQ~tM&s=m>(^pQSTRF-!lHYAHu3fy%Mi+%*v#={j-?+I`v)Ugn_JLYBt+zV3yMoKrZ zBAe1}fZy`ca?$sB8z2K0d>vHef|t`UhE;vEEJI`h7M1Od$A)B6>VX6AsieO`K|{C^ z>b-uPgh~sC$6{`V!4nj7WJ@=&B-_(rz>|63<#K6C=TXDM?3cpD;RNU_I zagT7xs}I;I$ z#%dc>J*2Hj=eI0QksvXNcY(r1f2KW01Bkgkggd1Gjp$tNZh#Uy@z^>AKD`S2%ZqPZ zhr|ke+RUVHP~cM`l6)56(~&aTbKuZf*Lk?Szl_1cD2&nAIsk;ISHTLWh2QuA66Y$6 zhjDKdS{z9HQ1Lpz3lTRh9UW5#V7W(ksckA4u6G3@h`+5@uc3ZOVdNje=JeuBfywbS zihN1Uvnyx5u6~SDgW*;P@^_H>Uyjbb$s?s|h{~zI1OWCJ) zsR^f7KF@4=vZ@HWvf1y3Prqv5&tP6O@PpxI|I?J$T2kq6lJ7muu;g(m0RauzD&{mggydlH@+(7Py!3;2(N&&a8z3o|<57)jM+>k4t1@|WTZDlftW zDjAS}Mv?iXHx2V=O_&QaJ_L+}nK^Z4(;Oask2lLVg3tmXIy-S#z7|Cm;z-m}_9NvAQdtuzhjnLa|%)QAJoj-p{0J0Sl6hK!(h^Nr9YUuh%y zMg8&@$_-Xkc0)b$2M16)q^_Rt^aw-p^2|kf_Z(MG;ws%6G1aUrl&R?DE9+Ge=LMWV zD@_>vJzvYZuaQ1@&)sgECjTIL9~GA*{}3YescP~~ollMnN{WlG-Je=pSD~J=DcnHM z_agRg*7gX(W8#w))6*4$!f@$<-3LbFJf)*A-9tSa>h~ts?Tg=|=X(MBENgohfkPZc z_ISnh)b|E?&2u9T%!yY-Pm-fJkfU=+lkA%M9Ud-K;4?1|lb)(;>Pbnkju)HP4$%q? zdW7&%|C+ zVrv-uJmwL@tSdlByCp5J_sK^Z_tcXDbdoP>`<}y|$i_z!o+&3G1AXS__(rPeM`i|n zD$Iw5JlJnEMw$F2m0$QqSL(J*L`eAu>^UG+vTFdgfGbyQq+R0D!hQbIF zoZcrywJ>-DhQTl!7X23VY?5MhE`p*H?wRgaAw$0NoX8z~)4*@6pDkXL&WYwG*nClV zg{(@sCK8%g2C(>nN@19dh%PrhsY$sJRWY@K4*2FzXt;!t9gL8shWVp|mo*;mi!WVd zvLDU$Zt4+@P%<9kDrB#9KMP5}(BH3f^}$RytNu#;Rm=7^O0yUDnJQtJNdl&5E~t&B z@dH_Sf3&#)vQ`vwyrhz5U(Q--7Rkw}tEaySCMQN_`C4&LBe8F&axg)3K2zfsN>*d< zi~)QqS}gl&!t81E_f;%SlWGL_J}y;SVbrq(=loSNa6gF^-myJ7&p0m@Ze+`Pi^-`% z26aHbQ++O!`w$l?)j{Ef?COgv?rApkVSW%)@|5-+E9r}%yFT?}N=Z`fFE0X^wB4xK z8haFG+~4427Ff+Wzz%;Tb=eR7cosO$Jt|l^W4Z*BWkEtlZj_8J+{Y7>I%Dy zuI4U#AE=cvLpMgO#6I${dc?UI!POQo|>F*6NxPYH=+|F2x**({P6@rLt}lzLE9mJKV)1+vtHD1K7w-QWTt?l7LL{+ z_418$Z2hqV_u;$Lt>1n;Q?mORtiRr5p5ba6|0~VK!hNncVpqO4ke9>0)SEOj-UUvR zAk{M^x>vWD%-x5#;<N7eQeNoRF*hjD!r&x<)4g&RzpV8Ym% z2*NP&drHRhF>-s+)%!%XNO*vt&By<3KvNv?mCr19w&<#=a?TL0uU@B`{glI%rU;k& zzjW+B`Q>D4a`0r6;Iq_qeuAheb=5nb@6m(~Rsg?M&21|NXJU}h$a!t4$(lUt<39}+ z8lP6NKiA6ZLA&I$Kl;aqJ$0eVp{WyY%dZ~)Njp>4a7lX8!uoeu%NM5l`1q0A%}sNr z2FLEC3VMkUirj~L7~300xSO^<1f9ieJCTK(!ldcbA-lf&xM;}HXMTmRW%m1J+L3fz zevN(WFFlW(RSOT7yz|Ld0K43L=559#^C(j$B&;rnypx6#m`^rt3PxX=OsJCex7$Vf zqknspbSj)sO$Dr3Fuy%>z{uJ^)%U~Wsgk(28``IDA*~BwUYH(!kR7^7R=W1DA_N@j z;_w{?YjR37UVPhNUd~cpv@#%c_jr?VQcudN!dDmaX0BN{Ets}A;26cybx)&zI!q@&m>YPKa@37XSIv4rxV17 zggu=Ln6!U|ie%5>df7SyaVM{b@TBf(B_lFJx82IaK7wGym>TYFB@jG?;WoC29F5(? z`SimwMBDKGZ}HZ;t&!X~F~i6IB<5~vcCY=}3bx2*EIGdT!H0*I1aE+?l54^UAioR6$FHA$ ziT~Ov7`@h}Zv8b4!$=~0FDSruLJLe*pj7QR{5ZD$Y>`t9dnKWVrlR|+!|g}{u>jWs ztt(?CNYz~7hp@ZGNzxkowlyE0s9S$b!|d|OH#K&T!v10sIV9hyuQ|Z`#+j!uTvH3# zD{Ip47LX#OI;v>$Anq+!r-r=^wGJ7WnEfI^szY!jj;%@mQt+#fFy5`CkCx^!Tq$!z z!A06Cv!ylwT0T9}TXt5Z6#%f>r(A>%hlhzb`uIPj+U7oQk``6TyiV=xt|JAgqN{4` zecVbqXfHg5pUNE3++tWuD^bFDx8hMahDo#g{k(L`+9GZkJWAYL!#;^hK*T0le@?G) z8?f@2ESEB-R-&ve^YaEngeSdvb2Ka&9G?kM>3Qh^Zxt>1kjqDIW(1)#YrXtH{rj?Z zPO9v7UJt#26kuH%WA;;7Mi~5}7|d5Z>KY>O7=GHHFlxdCy*h^9r3Yde$K+tO%+Up2 z0PDW-Vp%QkSF+wIwD}`rR<^q7Gx{`HuU~$~P%I>U`Aq^q*n5EkP(B?uB?fUzGBG-; zBY644E)!BS!fxa0NeNbni7W@X9RQlPS*|57QcD{T}QX7-w$N1Mum87&u}1 zy&6^3_EK(*nZZea=gPQk$%n8NZ*b9(cu(Qhx`WmJ&R;upQT(zc_CjUj3}Z_R#aXrC zW#gqNssFfn{QId~lty+O_CZ3TKmSvYV{vg+o_z6JDkH({US`LAcup_xO#5!9G7Lo9lSqC7VcdLq}LHUM9=+SXj~Vl zP4k30M7KFx;?jdFyqI#hKSX z_@yzM*`JYpHLy;vt{%Qo^84mT;KK^lQ@3q}g$YBG;@rDalDyHRg>A77lWEk3W+^RVy^W67s2M;M%)m}qS?7SKe~clrdN`qK${vH#}QJ6-3Hjd@ucj9bX~ZwYP+Z*hP8@VEq&7 zaqluc?ZOGAb2-wfys62u%=C2m-Ojd0gz1=IlLb*>ZU%`LB~{y@J3EgR?6a&nFq*TN z9w*5}^=>@XssaLP8C4lXMNu%caZ`BX;H^}znC)d__rKodI4y|Max?A$s->oOhW$3$ZtX=o|_M6q^sSvpDP+A$W>CyVRTb#w{wiz(*75n8!G?;lhdEEzbjj(0;ZMjeiF%Y*udTRZ#Z zM^Iqi!-&1*#1Oo#aZzfy8N#@UR>n*Wi3GWB9>7f%JwFw*Mi|!3K@k#9L4d%;6dr9) z!B4m~JP}uxjAtCr0hyOoJ5ftOvN0An$+U?xczn2Bd-+1(LfgmaOAW=}>*Q}5I6$~i zPcrBHiw##7uqf**>;3!%dg{%KrLnWGdOm)?=?YP6fTVBCWVrrFqEx`bT{M@!-}IiC z(?{BEEN07E(!dd1U@Aq;i^lbRKpxx$i%2ZsVERB)*yBB$2CZl z-(d+Z?-I=-Gp*tspt^NMAAIu9y1_4D%R^6nVzcZJvF4#9K(g(%JRsYgU@oW151ZtHwk?f6R;nh4N$~W)0-%HH#j{9Qu=U%}Tt3^gN8P z#sT)fG2mlvZy08v(~Fy)1T`O)mJdB!`PMNcXzcIJpB#)6O8^0OeT!>CM{Q%>-Dp}( ze_Fu%#@Es%d18^AyOg%vGMAv(IWvPFl&6jmK|HWFMn0Fl{s9gMFN~o+Zue*HOe3JI z^E+-RQqWrkl|KH|fz(fv;=XT$2LTMQ0+hA?%Ll+&eHP}5*7l1U!=k`h$l|Hd6N_udrOoq{ zsT9w~!{?)Z4JzZTfm%G+1M)Hxq1-)fTGRUlrwCazdnpWLb_W^xmiLCFv)e(!`4#dE z?dMuGp?};otg2#G0Ba&^fht$-)DrBy+Cgy2K@jIUt9Egc`bFyy;+mPXB*Gfh0>Z#= z0f6+$1vw_|;`CAL+9jH;=P+A#OveP z1u2;|Y9VhtgwX3;A?xQi0>)$?4+!J>zj-W`%4%=f!m|CylBx0=>qtLqv+k;U1X^m= z&W!r_mr-pg^>(_FW-O&?y)2^aVGVon<@=?fR=*wpIsS%Q&n7*+yTLw^;3O3t%Fk8x zTj*q%d1D+>ovd`}Hs6@+&Wio9IT{;?^CO&+x3oi^DHo+Tb8yG7fPeZ<>-s0O6|H?K zx}6Nd!#d_tA79IYewpT?vN~rLzuhAx9>zh$8|nF;!M-;+2t2`s+XNf+>S|=XtDGS! z(DmQ&)1{p(1qlC>o$9ipxA~sJ?uu03?vr3A;A@?op65UhTv<~fxRIxp;T+reaRq-h zz2=X-mt%af+J2Th4-SyDSvl(V;Fltc^1LiLNa05Fim82bdRi4K5_OX%+|4E!@2Y1& z9$C#fkj^nekkbGItx@?G167&Y0XQpe{UkK8sjdGkgM1JXl!-jRYg>72lT=pqH~-{w zoN_p7slq=4k+G;?_&N$#2NM5E!xYe2owx{eup~0I9+A3wFrBud_yPJkGDo;|CcAz; z1@0<=2bb8=OaE)XT>o49-^{=tYghDo3v4{-lZRdd6@!b8Coi5meKBzV*$aW-p|scB z!g`On<(|EkI1BUrdu{exSeTew>^C>x>q~0;Ukt({&xM>%`1b~f*X)i420trWh&p$E z|FIBEV9cS&*obo>5kZF{ + * + * This piece of software was created as part of the Drosophila Population + * Genomics Project opensource agreement. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef RANGE_ITERATOR_HPP +#define RANGE_ITERATOR_HPP +#include + +namespace rangepp { + + template + class range_impl{ + private: + value_t rbegin; + value_t rend; + value_t step; + int step_end; + public: + range_impl(value_t begin, value_t end, value_t step=1): + rbegin(begin),rend(end),step(step){ + step_end=(rend-rbegin)/step; + if(rbegin+step_end*step != rend){ + step_end++; + } + } + + class iterator: + public std::iterator + { + private: + value_t current_value; + int current_step; + range_impl& parent; + public: + iterator(int start,range_impl& parent): current_step(start), parent(parent){current_value=parent.rbegin+current_step*parent.step;} + value_t operator*() {return current_value;} + const iterator* operator++(){ + current_value+=parent.step; + current_step++; + return this; + } + const iterator* operator++(int){ + current_value+=parent.step; + current_step++; + return this; + } + bool operator==(const iterator& other) { + return current_step==other.current_step; + } + bool operator!=(const iterator& other) { + return current_step!=other.current_step; + } + iterator operator+(int s) { + iterator ret=*this; + ret.current_step+=s; + ret.current_value+=s*parent.step; + return ret; + } + iterator operator-(int s){ + iterator ret=*this; + ret.current_step-=s; + ret.current_value-=s*parent.step; + return ret; + } + const iterator* operator--(){ + current_value-=parent.step; + current_step--; + return this;} + iterator operator--(int){ + iterator old=*this; + current_value-=parent.step; + current_step--; + return old; + } + }; + + iterator begin(){ + return iterator(0,*this); + } + iterator end(){ + return iterator(step_end,*this); + } + + value_t operator[](int s){ + return rbegin+s*step; + } + + int size(){ + return step_end; + } + }; +} +template +auto range(other begin, other end, vt stepsize)->rangepp::range_impl +{ + + return rangepp::range_impl(begin,end,stepsize); +} + +template +auto range(b begin, e end) -> rangepp::range_impl +{ + return rangepp::range_impl(begin,end,1); +} + +template +rangepp::range_impl range(e end){ + return rangepp::range_impl(0,end,1); +} + +#endif diff --git a/exercises/morton-order/step1/Makefile b/exercises/morton-order/step1/Makefile new file mode 100644 index 0000000..290dfeb --- /dev/null +++ b/exercises/morton-order/step1/Makefile @@ -0,0 +1,12 @@ +include ../config.mk + +exes = test_matrix_base + +all : $(exes) + +test_matrix_base : test_matrix_base.o matrix.o + +%.o : matrix.hpp + +clean : + -rm -f *.o $(exes) diff --git a/exercises/morton-order/step1/matrix.cpp b/exercises/morton-order/step1/matrix.cpp new file mode 100644 index 0000000..923c723 --- /dev/null +++ b/exercises/morton-order/step1/matrix.cpp @@ -0,0 +1,55 @@ +#include "matrix.hpp" + +#include + +namespace morton { + + // TODO - allocate some memory + matrix::matrix(uint32_t r) + { + // Check it's a power of 2. Could consider throwing an + // exception, but these are not in the syllabus! + assert((r & (r-1)) == 0); + } + + // Moving is allowed + // TODO - if you need to provide these, do so here + matrix::matrix(matrix&& other) noexcept {} + matrix& matrix::operator=(matrix&& other) noexcept {} + + // Destructor + // TODO - will the default implemenation be OK? + matrix::~matrix() {} + + // Create a new matrix with contents copied from this one + matrix matrix::duplicate() const { + // TODO + } + + // Get rank size + uint32_t matrix::rank() const { + return _rank; + } + + // Get total size + uint64_t matrix::size() const { + return uint64_t(_rank) * uint64_t(_rank); + } + + // TODO + // Const element access + const int& matrix::operator()(uint32_t i, uint32_t j) const { + } + + // TODO + // Mutable element access + int& matrix::operator()(uint32_t i, uint32_t j) { + } + + // TODO + // Raw data access (const and mutable versions) + const int* matrix::data() const { + } + int* matrix::data() { +} + diff --git a/exercises/morton-order/step1/matrix.hpp b/exercises/morton-order/step1/matrix.hpp new file mode 100644 index 0000000..a29df6a --- /dev/null +++ b/exercises/morton-order/step1/matrix.hpp @@ -0,0 +1,65 @@ +#ifndef MORTON_MATRIX_HPP +#define MORTON_MATRIX_HPP + +#include +#include "bits.hpp" + +namespace morton { + + // 2D square matrix of ints that stores data in Morton order + // + // NB: + // + // - This simple implementation requires that the size be a power + // of 2 (or zero indicating an empty matrix) + // + // - The matrix does not need to be resizeable + // + // - The matrix must not be implicitly copiable, must use explicit + // duplicate member function + class matrix { + private: + // rank of matrix + uint32_t _rank; + // Data storage + // TODO - choose how to store data and manage that memory + + public: + // TODO - anything needed? + matrix(); + + // Construct with appropriate memory for an r by r matrix. + matrix(uint32_t r); + + // Implicit copying is not allowed + // TODO: do we need to do anything to prevent this? + + // Moving is allowed + // TODO - will the default implementations be OK? + matrix(matrix&& other) noexcept; + matrix& operator=(matrix&& other) noexcept; + + // Destructor + // TODO - will the default implemenation be OK? + ~matrix(); + + // Create a new matrix with contents copied from this one + matrix duplicate() const; + + // Get rank size + uint32_t rank() const; + + // Get total size + uint64_t size() const; + + // Const element access + const int& operator()(uint32_t i, uint32_t j) const; + // Mutable element access + int& operator()(uint32_t i, uint32_t j); + + // Raw data access (const and mutable versions) + const int* data() const; + int* data(); + }; +} +#endif diff --git a/exercises/morton-order/step1/test_matrix_base.cpp b/exercises/morton-order/step1/test_matrix_base.cpp new file mode 100644 index 0000000..b998684 --- /dev/null +++ b/exercises/morton-order/step1/test_matrix_base.cpp @@ -0,0 +1,112 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +bool test_small() { + const int N = 4; + morton::matrix small{N}; + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + small(i, j) = i*N + j; + + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + auto data = small.data(); + const std::vector expected = { + 0, 4, 1, 5, 8, 12, 9, 13, + 2, 6, 3, 7,10, 14,11, 15 + }; + for (auto z : range(N*N)) { + TEST_ASSERT_EQUAL(expected[z], data[z]); + } + return true; +} + +// Helper for making a matrix filled down the diagonal. +// This touches plenty of the pages to ensure mem is actually allocated. +morton::matrix make_diag(uint32_t rank) { + auto mat = morton::matrix{rank}; + // fill diagonal + for (auto i: range(rank)) + mat(i,i) = i; + return mat; +} + +bool test_large() { + const int logN = 10; + const int N = 1 << logN; + auto mat = make_diag(N); + + auto data = mat.data(); + uint64_t z = 0; + // pretty easy to convince yourself that the "last" index in each + // successively bigger quad (starting at the origin) is (n^2 - 1) + // where n is the linear size of that. + + // So in the below we're talking about the values 0, 3, 15 + + // 0 1 4 5 + // 2 3 6 7 + // 8 9 12 13 + //10 11 14 15 + + + for (auto i: range(logN+1)) { + auto n = 1 << i; + auto z = n*n - 1; + TEST_ASSERT_EQUAL(n - 1, data[z]); + } + + return true; +} + +bool test_move() { + auto m1 = make_diag(4); + auto m2 = make_diag(8); + + m2 = std::move(m1); + // m1 is now moved-from: we can't do anything except destroy it or + // assign a new value + TEST_ASSERT_EQUAL(4, m2.rank()); + + // Test return of operator== + const morton::matrix& matref = (m1 = std::move(m2)); + // Also test the const element access version of operator() + for (auto i: range(4)) + for (auto j: range(4)) + TEST_ASSERT_EQUAL(matref(i,j), m1(i,j)); + + + return true; +} + +// Try to ensure we really are deleting used memory +bool test_free() { + const int logN = 10; + const int N = 1 << logN; + for (auto j: range(10000)) + auto mat = make_diag(N); + + return true; +} + + +int main() { + static_assert(!std::is_copy_constructible::value, + "Require that morton matrix is not copyable"); + static_assert(std::is_move_constructible::value, + "Require that morton matrix is moveable"); + RUN_TEST(test_small); + RUN_TEST(test_large); + RUN_TEST(test_move); + RUN_TEST(test_free); + return 0; +} diff --git a/exercises/morton-order/step2/Makefile b/exercises/morton-order/step2/Makefile new file mode 100644 index 0000000..c8d431f --- /dev/null +++ b/exercises/morton-order/step2/Makefile @@ -0,0 +1,13 @@ +include ../config.mk +exes = test_matrix_base test_matrix_iter + +all : $(exes) + +test_matrix_base : test_matrix_base.o matrix.o + +test_matrix_iter : test_matrix_iter.o matrix.o + +%.o : matrix.hpp + +clean : + -rm -f *.o $(exes) diff --git a/exercises/morton-order/step2/matrix.cpp b/exercises/morton-order/step2/matrix.cpp new file mode 100644 index 0000000..ea2f262 --- /dev/null +++ b/exercises/morton-order/step2/matrix.cpp @@ -0,0 +1,94 @@ +#include "matrix.hpp" + +#include + +namespace morton { + + matrix::matrix(uint32_t r) + : _rank(r), _data(new int[r*r]) + { + // Check it's a power of 2. Could consider throwing an + // exception, but these are not in the syllabus! + assert((r & (r-1)) == 0); + } + + // Create a new matrix with contents copied from this one + matrix matrix::duplicate() const { + matrix ans(_rank); + std::copy(data(), data() + size(), ans.data()); + return ans; + } + + // Get rank size + uint32_t matrix::rank() const { + return _rank; + } + + // Get total size + uint64_t matrix::size() const { + return uint64_t(_rank) * uint64_t(_rank); + } + + // Const element access + const int& matrix::operator()(uint32_t i, uint32_t j) const { + auto z = encode(i, j); + return _data[z]; + } + + // Mutable element access + int& matrix::operator()(uint32_t i, uint32_t j) { + auto z = encode(i, j); + return _data[z]; + } + + // Raw data access (const and mutable versions) + const int* matrix::data() const { + return _data.get(); + } + int* matrix::data() { + return _data.get(); + } + + // Mutable iterators + // TODO: implement functions to get iterators to first and + // just-past-the-last elements in the matrix + // NB: use trailing return type to have access to names defined + // inside the class namespace. + auto matrix::begin() -> iterator { + } + auto matrix::end() -> iterator { + } + + // TODO: implement constructors. + + // TODO + // Get the x/y coordinates of the current element + uint32_t matrix_iterator::x() const { + } + uint32_t matrix_iterator::y() const { + } + + // Dereference operator + auto matrix_iterator::operator*() const -> reference { + // TODO + } + + // Preincrement operator + matrix_iterator& matrix_iterator::operator++() { + // TODO + } + // TODO + // Predecrement operator + matrix_iterator& matrix_iterator::operator--() { + // TODO + } + // Comparison operators. + bool operator==(const matrix_iterator& a, const matrix_iterator& b) { + // TODO + } + // Note this can be done in terms of the above + bool operator!=(const matrix_iterator& a, const matrix_iterator& b) { + return !(a == b); + } +} + diff --git a/exercises/morton-order/step2/matrix.hpp b/exercises/morton-order/step2/matrix.hpp new file mode 100644 index 0000000..0154bb8 --- /dev/null +++ b/exercises/morton-order/step2/matrix.hpp @@ -0,0 +1,130 @@ +#ifndef MORTON_MATRIX_HPP +#define MORTON_MATRIX_HPP + +#include +#include +#include +#include "bits.hpp" + +namespace morton { + // Forward declare the iterator + class matrix_iterator; + + // 2D square matrix of ints that stores data in Morton order + // + // NB: + // + // - This simple implementation requires that the size be a power + // of 2 (or zero indicating an empty matrix) + // + // - The matrix does not need to be resizeable + // + // - The matrix must not be implicitly copiable, must use explicit + // duplicate member function + class matrix { + public: + using iterator = matrix_iterator; + + private: + // rank of matrix + uint32_t _rank; + // Data storage + // Note using array version of unique_ptr + std::unique_ptr _data; + + public: + // Default initialisation of unique_ptr is OK + matrix() = default; + + // Construct with appropriate memory for an r by r matrix. + matrix(uint32_t r); + + // Implicit copying is not allowed + // Use of unique_ptr prevents copying. + + // Moving is allowed + // Default is ok because of choice to use unique_ptr to manage data storage + + // Destructor + // Default ok because of unique_ptr + + // Create a new matrix with contents copied from this one + matrix duplicate() const; + + // Get rank size + uint32_t rank() const; + + // Get total size + uint64_t size() const; + + // Const element access + const int& operator()(uint32_t i, uint32_t j) const; + // Mutable element access + int& operator()(uint32_t i, uint32_t j); + + // Raw data access (const and mutable versions) + const int* data() const; + int* data(); + + // Mutable iterators to beginning and just-past-the-end + iterator begin(); + iterator end(); + }; + + // Iterator type for matrices + class matrix_iterator { + public: + // Here we exposed the member types required by the standard + // library's concept of an iterator. See: + // https://en.cppreference.com/w/cpp/iterator/iterator_traits + using value_type = int; + using difference_type = int64_t; + using reference = int&; + using pointer = int*; + // This means we can go forwards and backwards. + // Upgrading to a random access iterator would be eay but require + // quite a lot of additional operations. + using iterator_category = std::bidirectional_iterator_tag; + + private: + // What members are required? + + public: + // Default constructor + // TODO: is this needed? + matrix_iterator(); + + // Note: must provide copy c'tor, copy assign + // TODO: Decide if the default copy/move/destruct behaviour is + // going to be OK. + + // Get the x/y coordinates of the current element + uint32_t x() const; + uint32_t y() const; + + // Comparison operators. Note these are inline non-member friend + // functions. + friend bool operator==(const matrix_iterator& a, const matrix_iterator& b); + // Note this can be done in terms of the above + friend bool operator!=(const matrix_iterator& a, const matrix_iterator& b); + + // Dereference operator + reference operator*() const; + + // Preincrement operator + matrix_iterator& operator++(); + // Predecrement operator + matrix_iterator& operator--(); + + private: + // TODO: declare and define appropriate constructor(s) to create + // iterators pointing into a matrix's data. + // matrix_iterator(...); + + // Other constructors should probably not be publicly visible, so + // we need to allow matrix access. + friend matrix; + }; + +} +#endif diff --git a/exercises/morton-order/step2/test_matrix_base.cpp b/exercises/morton-order/step2/test_matrix_base.cpp new file mode 120000 index 0000000..df4b3fc --- /dev/null +++ b/exercises/morton-order/step2/test_matrix_base.cpp @@ -0,0 +1 @@ +../step1/test_matrix_base.cpp \ No newline at end of file diff --git a/exercises/morton-order/step2/test_matrix_iter.cpp b/exercises/morton-order/step2/test_matrix_iter.cpp new file mode 100644 index 0000000..3825e9f --- /dev/null +++ b/exercises/morton-order/step2/test_matrix_iter.cpp @@ -0,0 +1,79 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +morton::matrix make_filled(int N) { + morton::matrix mat(N); + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + mat(i, j) = i*N + j; + return mat; +} + +// M = matrix or const matrix +template +bool check_mat(M& mat) { + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + // This will store the count of elements visited before the current + // and so should be the Morton index of the element. + int z = 0; + auto it = mat.begin(); + for (; it != mat.end(); ++it, ++z) { + uint32_t i, j; + morton::decode(z, i, j); + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(N*N, z); + + return true; +} + +bool test_mut_iter() { + constexpr int N = 4; + auto mat = make_filled(N); + return check_mat(mat); +} + +bool test_rev_iter() { + const int N = 4; + auto mat = make_filled(N); + + int z = N*N; + auto it = mat.end(); + for (; it != mat.begin();) { + // We want to run the below for it == mat.begin() and then finish + // so move decrement inside the body. + --it; + --z; + + uint32_t i, j; + morton::decode(z, i, j); + + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(0, z); + return true; +} + +int main() { + RUN_TEST(test_mut_iter); + RUN_TEST(test_rev_iter); + return 0; +} diff --git a/exercises/morton-order/step3/Makefile b/exercises/morton-order/step3/Makefile new file mode 100644 index 0000000..3d92d61 --- /dev/null +++ b/exercises/morton-order/step3/Makefile @@ -0,0 +1,13 @@ +include ../config.mk +exes = test_matrix_base test_matrix_iter + +all : $(exes) + +test_matrix_base : test_matrix_base.o + +test_matrix_iter : test_matrix_iter.o + +%.o : matrix.hpp + +clean : + -rm -f *.o $(exes) diff --git a/exercises/morton-order/step3/matrix.hpp b/exercises/morton-order/step3/matrix.hpp new file mode 100644 index 0000000..6665c46 --- /dev/null +++ b/exercises/morton-order/step3/matrix.hpp @@ -0,0 +1,129 @@ +#ifndef MORTON_MATRIX_HPP +#define MORTON_MATRIX_HPP + +#include +#include +#include +#include "bits.hpp" + +namespace morton { + // Forward declare the iterator + // TODO: any changes? + class matrix_iterator; + + // 2D square matrix of ints that stores data in Morton order + // + // NB: + // + // - This simple implementation requires that the size be a power + // of 2 (or zero indicating an empty matrix) + // + // - The matrix does not need to be resizeable + // + // - The matrix must not be implicitly copiable, must use explicit + // duplicate member function + // TODO: convert to a template class + class matrix { + public: + //TODO: it is common practice to make a type alias to the element + // type under the name `value_type`. + //TODO: any changes? + using iterator = matrix_iterator; + + private: + // rank of matrix + uint32_t _rank; + // Data storage + // Note using array version of unique_ptr + std::unique_ptr _data; + + public: + // Default initialisation of unique_ptr is OK + matrix() = default; + + // Construct with appropriate memory for an r by r matrix. + matrix(uint32_t r); + + // Create a new matrix with contents copied from this one + matrix duplicate() const; + } + + // Get rank size + uint32_t rank() const; + + // Get total size + uint64_t size() const; + + // Const element access + const value_type& operator()(uint32_t i, uint32_t j) const; + + // Mutable element access + value_type& operator()(uint32_t i, uint32_t j); + + + // Raw data access (const and mutable versions) + const value_type* data() const; + value_type* data(); + + // Mutable iterators + iterator begin(); + iterator end(); + }; + + // Iterator type for matrices + template + class matrix_iterator { + public: + // Here we exposed the member types required by the standard + // library's concept of an iterator. See: + // https://en.cppreference.com/w/cpp/iterator/iterator_traits + // TODO: update for template case + using value_type = int; + using difference_type = int64_t; + using reference = int&; + using pointer = int*; + // This means we can go forwards and backwards. + // Upgrading to a random access iterator would be eay but require + // quite a lot of additional operations. + using iterator_category = std::bidirectional_iterator_tag; + + private: + // We need the pointer to the first element to work out where we + // are in the matrix for x/y calculation. + pointer _start = nullptr; + pointer _ptr = nullptr; + + public: + // Default constructor + matrix_iterator() = default; + + // Note: must provide copy c'tor, copy assign + // Defaults are fine because this does not own data + + // Get the x/y coordinates of the current element + uint32_t x() const; + uint32_t y() const; + + // Comparison operators. + friend bool operator==(const matrix_iterator& a, const matrix_iterator& b); + friend bool operator!=(const matrix_iterator& a, const matrix_iterator& b); + + // Dereference operator + reference operator*() const; + + // Preincrement operator + matrix_iterator& operator++(); + // Predecrement operator + matrix_iterator& operator--(); + + private: + // Private constructor + matrix_iterator(pointer start, pointer current); + + // Other constructors should probably not be publicly visible, so + // we need to allow matrix access. + friend matrix; + }; +} + +#endif diff --git a/exercises/morton-order/step3/test_matrix_base.cpp b/exercises/morton-order/step3/test_matrix_base.cpp new file mode 100644 index 0000000..e7c1be0 --- /dev/null +++ b/exercises/morton-order/step3/test_matrix_base.cpp @@ -0,0 +1,113 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +bool test_small() { + const int N = 4; + morton::matrix small{N}; + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + small(i, j) = i*N + j; + + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + auto data = small.data(); + const std::vector expected = { + 0, 4, 1, 5, 8, 12, 9, 13, + 2, 6, 3, 7,10, 14,11, 15 + }; + for (auto z : range(N*N)) { + TEST_ASSERT_EQUAL(expected[z], data[z]); + } + return true; +} + +// Helper for making a matrix filled down the diagonal. +// This touches plenty of the pages to ensure mem is actually allocated. +template +morton::matrix make_diag(uint32_t rank) { + auto mat = morton::matrix{rank}; + // fill diagonal + for (auto i: range(rank)) + mat(i,i) = i; + return mat; +} + +bool test_large() { + const int logN = 10; + const int N = 1 << logN; + auto mat = make_diag(N); + + auto data = mat.data(); + uint64_t z = 0; + // pretty easy to convince yourself that the "last" index in each + // successively bigger quad (starting at the origin) is (n^2 - 1) + // where n is the linear size of that. + + // So in the below we're talking about the values 0, 3, 15 + + // 0 1 4 5 + // 2 3 6 7 + // 8 9 12 13 + //10 11 14 15 + + + for (auto i: range(logN+1)) { + auto n = 1 << i; + auto z = n*n - 1; + TEST_ASSERT_EQUAL(n - 1, data[z]); + } + + return true; +} + +bool test_move() { + auto m1 = make_diag(4); + auto m2 = make_diag(8); + + m2 = std::move(m1); + // m1 is now moved-from: we can't do anything except destroy it or + // assign a new value + TEST_ASSERT_EQUAL(4, m2.rank()); + + // Test return of operator== + const morton::matrix& matref = (m1 = std::move(m2)); + // Also test the const element access version of operator() + for (auto i: range(4)) + for (auto j: range(4)) + TEST_ASSERT_EQUAL(matref(i,j), m1(i,j)); + + + return true; +} + +// Try to ensure we really are deleting used memory +bool test_free() { + const int logN = 10; + const int N = 1 << logN; + for (auto j: range(10000)) + auto mat = make_diag(N); + + return true; +} + + +int main() { + static_assert(!std::is_copy_constructible>::value, + "Require that morton matrix is not copyable"); + static_assert(std::is_move_constructible>::value, + "Require that morton matrix is moveable"); + RUN_TEST(test_small); + RUN_TEST(test_large); + RUN_TEST(test_move); + RUN_TEST(test_free); + return 0; +} diff --git a/exercises/morton-order/step3/test_matrix_iter.cpp b/exercises/morton-order/step3/test_matrix_iter.cpp new file mode 100644 index 0000000..6666ebb --- /dev/null +++ b/exercises/morton-order/step3/test_matrix_iter.cpp @@ -0,0 +1,80 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +template +morton::matrix make_filled(int N) { + morton::matrix mat(N); + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + mat(i, j) = i*N + j; + return mat; +} + +// M = matrix or const matrix +template +bool check_mat(M& mat) { + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + // This will store the count of elements visited before the current + // and so should be the Morton index of the element. + int z = 0; + auto it = mat.begin(); + for (; it != mat.end(); ++it, ++z) { + uint32_t i, j; + morton::decode(z, i, j); + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(N*N, z); + + return true; +} + +bool test_mut_iter() { + constexpr int N = 4; + auto mat = make_filled(N); + return check_mat(mat); +} + +bool test_rev_iter() { + const int N = 4; + auto mat = make_filled(N); + + int z = N*N; + auto it = mat.end(); + for (; it != mat.begin();) { + // We want to run the below for it == mat.begin() and then finish + // so move decrement inside the body. + --it; + --z; + + uint32_t i, j; + morton::decode(z, i, j); + + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(0, z); + return true; +} + +int main() { + RUN_TEST(test_mut_iter); + RUN_TEST(test_rev_iter); + return 0; +} diff --git a/exercises/morton-order/step4/Makefile b/exercises/morton-order/step4/Makefile new file mode 100644 index 0000000..3d92d61 --- /dev/null +++ b/exercises/morton-order/step4/Makefile @@ -0,0 +1,13 @@ +include ../config.mk +exes = test_matrix_base test_matrix_iter + +all : $(exes) + +test_matrix_base : test_matrix_base.o + +test_matrix_iter : test_matrix_iter.o + +%.o : matrix.hpp + +clean : + -rm -f *.o $(exes) diff --git a/exercises/morton-order/step4/matrix.hpp b/exercises/morton-order/step4/matrix.hpp new file mode 100644 index 0000000..88e4c0c --- /dev/null +++ b/exercises/morton-order/step4/matrix.hpp @@ -0,0 +1,188 @@ +#ifndef MORTON_MATRIX_HPP +#define MORTON_MATRIX_HPP + +#include +#include +#include +#include +#include "bits.hpp" + +namespace morton { + // Forward declare the iterator + template + class matrix_iterator; + + // 2D square matrix of ints that stores data in Morton order + // + // NB: + // + // - This simple implementation requires that the size be a power + // of 2 (or zero indicating an empty matrix) + // + // - The matrix does not need to be resizeable + // + // - The matrix must not be implicitly copiable, must use explicit + // duplicate member function + template + class matrix { + public: + using value_type = T; + using iterator = matrix_iterator; + // TODO: using const_iterator = ?; + + private: + // rank of matrix + uint32_t _rank; + // Data storage + // Note using array version of unique_ptr + std::unique_ptr _data; + + public: + // Default initialisation of unique_ptr is OK + matrix() = default; + + // Construct with appropriate memory for an r by r matrix. + matrix(uint32_t r) : _rank(r), _data(new value_type[r*r]) { + // Check it's a power of 2. Could consider throwing an + // exception, but these are not in the syllabus! + assert((r & (r-1)) == 0); + } + + // Create a new matrix with contents copied from this one + matrix duplicate() const { + matrix ans(_rank); + std::copy(data(), data() + size(), ans.data()); + return ans; + } + + // Get rank size + uint32_t rank() const { + return _rank; + } + + // Get total size + uint64_t size() const { + return uint64_t(_rank) * uint64_t(_rank); + } + + // Const element access + const value_type& operator()(uint32_t i, uint32_t j) const { + auto z = encode(i, j); + return _data[z]; + } + + // Mutable element access + value_type& operator()(uint32_t i, uint32_t j) { + auto z = encode(i, j); + return _data[z]; + } + + + // Raw data access (const and mutable versions) + const value_type* data() const { + return _data.get(); + } + value_type* data() { + return _data.get(); + } + + // Mutable iterators + iterator begin() { + return iterator(data(), data()); + } + iterator end() { + return iterator(data(), data() + size()); + } + + // Mutable iterators + const_iterator begin() const { + return const_iterator(data(), data()); + } + const_iterator end() const { + return const_iterator(data(), data() + size()); + } + + }; + + // Iterator type for matrices + template + class matrix_iterator { + public: + // Here we exposed the member types required by the standard + // library's concept of an iterator. See: + // https://en.cppreference.com/w/cpp/iterator/iterator_traits + // + // TODO: will these be OK if T is a constant type? (e.g. `int const`) + using value_type = T; + using difference_type = int64_t; + using reference = T&; + using pointer = T*; + // This means we can go forwards and backwards. + // Upgrading to a random access iterator would be eay but require + // quite a lot of additional operations. + using iterator_category = std::bidirectional_iterator_tag; + + private: + // We need the pointer to the first element to work out where we + // are in the matrix for x/y calculation. + pointer _start = nullptr; + pointer _ptr = nullptr; + + public: + // Default constructor + matrix_iterator() = default; + + // Note: must provide copy c'tor, copy assign + // Defaults are fine because this does not own data + + // Get the x/y coordinates of the current element + uint32_t x() const { + auto z = _ptr - _start; + return pack(z); + } + uint32_t y() const { + auto z = _ptr - _start; + return pack(z >> 1); + } + + // Comparison operators. + friend bool operator==(const matrix_iterator& a, const matrix_iterator& b) { + return a._ptr == b._ptr; + } + friend bool operator!=(const matrix_iterator& a, const matrix_iterator& b) { + return !(a == b); + } + + // Dereference operator + reference operator*() const { + return *_ptr; + } + + // Preincrement operator + matrix_iterator& operator++() { + ++_ptr; + return *this; + } + // Predecrement operator + matrix_iterator& operator--() { + --_ptr; + return *this; + } + + private: + // Private constructor + matrix_iterator(pointer start, pointer current) + : _start(start), _ptr(current) { + } + + // Other constructors should probably not be publicly visible, so + // we need to allow matrix access. + // + // TODO: Suppose T = int const. How do get `int` from `int const`? + // See the standard type support library: + // https://en.cppreference.com/w/cpp/types + friend matrix; + }; +} + +#endif diff --git a/exercises/morton-order/step4/test_matrix_base.cpp b/exercises/morton-order/step4/test_matrix_base.cpp new file mode 100644 index 0000000..e7c1be0 --- /dev/null +++ b/exercises/morton-order/step4/test_matrix_base.cpp @@ -0,0 +1,113 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +bool test_small() { + const int N = 4; + morton::matrix small{N}; + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + small(i, j) = i*N + j; + + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + auto data = small.data(); + const std::vector expected = { + 0, 4, 1, 5, 8, 12, 9, 13, + 2, 6, 3, 7,10, 14,11, 15 + }; + for (auto z : range(N*N)) { + TEST_ASSERT_EQUAL(expected[z], data[z]); + } + return true; +} + +// Helper for making a matrix filled down the diagonal. +// This touches plenty of the pages to ensure mem is actually allocated. +template +morton::matrix make_diag(uint32_t rank) { + auto mat = morton::matrix{rank}; + // fill diagonal + for (auto i: range(rank)) + mat(i,i) = i; + return mat; +} + +bool test_large() { + const int logN = 10; + const int N = 1 << logN; + auto mat = make_diag(N); + + auto data = mat.data(); + uint64_t z = 0; + // pretty easy to convince yourself that the "last" index in each + // successively bigger quad (starting at the origin) is (n^2 - 1) + // where n is the linear size of that. + + // So in the below we're talking about the values 0, 3, 15 + + // 0 1 4 5 + // 2 3 6 7 + // 8 9 12 13 + //10 11 14 15 + + + for (auto i: range(logN+1)) { + auto n = 1 << i; + auto z = n*n - 1; + TEST_ASSERT_EQUAL(n - 1, data[z]); + } + + return true; +} + +bool test_move() { + auto m1 = make_diag(4); + auto m2 = make_diag(8); + + m2 = std::move(m1); + // m1 is now moved-from: we can't do anything except destroy it or + // assign a new value + TEST_ASSERT_EQUAL(4, m2.rank()); + + // Test return of operator== + const morton::matrix& matref = (m1 = std::move(m2)); + // Also test the const element access version of operator() + for (auto i: range(4)) + for (auto j: range(4)) + TEST_ASSERT_EQUAL(matref(i,j), m1(i,j)); + + + return true; +} + +// Try to ensure we really are deleting used memory +bool test_free() { + const int logN = 10; + const int N = 1 << logN; + for (auto j: range(10000)) + auto mat = make_diag(N); + + return true; +} + + +int main() { + static_assert(!std::is_copy_constructible>::value, + "Require that morton matrix is not copyable"); + static_assert(std::is_move_constructible>::value, + "Require that morton matrix is moveable"); + RUN_TEST(test_small); + RUN_TEST(test_large); + RUN_TEST(test_move); + RUN_TEST(test_free); + return 0; +} diff --git a/exercises/morton-order/step4/test_matrix_iter.cpp b/exercises/morton-order/step4/test_matrix_iter.cpp new file mode 100644 index 0000000..18cd680 --- /dev/null +++ b/exercises/morton-order/step4/test_matrix_iter.cpp @@ -0,0 +1,88 @@ +#include + +#include "matrix.hpp" +#include "test.hpp" +#include "range.hpp" + +template +morton::matrix make_filled(int N) { + morton::matrix mat(N); + + // Fill with standard C array layout 1D index + for (auto i: range(N)) + for (auto j: range(N)) + mat(i, j) = i*N + j; + return mat; +} + +// M = matrix or const matrix +template +bool check_mat(M& mat) { + // Matrix contains: + // 0 4 8 12 + // 1 5 9 13 + // 2 6 10 14 + // 3 7 11 15 + + // This will store the count of elements visited before the current + // and so should be the Morton index of the element. + int z = 0; + auto it = mat.begin(); + for (; it != mat.end(); ++it, ++z) { + uint32_t i, j; + morton::decode(z, i, j); + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(N*N, z); + + return true; +} + +bool test_mut_iter() { + constexpr int N = 4; + auto mat = make_filled(N); + return check_mat(mat); +} + +bool test_rev_iter() { + const int N = 4; + auto mat = make_filled(N); + + int z = N*N; + auto it = mat.end(); + for (; it != mat.begin();) { + // We want to run the below for it == mat.begin() and then finish + // so move decrement inside the body. + --it; + --z; + + uint32_t i, j; + morton::decode(z, i, j); + + int expect = i*N + j; + TEST_ASSERT_EQUAL(expect, *it); + + TEST_ASSERT_EQUAL(i, it.x()); + TEST_ASSERT_EQUAL(j, it.y()); + } + TEST_ASSERT_EQUAL(0, z); + return true; +} + +// Basic test of const iterator +bool test_const_iter() { + const int N = 4; + const morton::matrix& mat = make_filled(N); + return check_mat(mat); +} + +int main() { + RUN_TEST(test_mut_iter); + RUN_TEST(test_rev_iter); + RUN_TEST(test_const_iter); + return 0; +} diff --git a/exercises/morton-order/test.hpp b/exercises/morton-order/test.hpp new file mode 100644 index 0000000..9cc3bc1 --- /dev/null +++ b/exercises/morton-order/test.hpp @@ -0,0 +1,23 @@ +#ifndef MORTON_TEST_HPP +#define MORTON_TEST_HPP + +#include + +// A few macros to help with basic unit testing + +// (Don't want to introduce any dependencies by using a framework) + +#define TEST_ASSERT_EQUAL(expected, actual) \ + if (expected != actual) { \ + std::cerr << "FAIL! Expected '" << expected \ + << "' Got '" << actual << "'" << std::endl; \ + return false; \ + } + +// Runs a nullary predicate as a test +#define RUN_TEST(tfunc) if (tfunc()) \ + std::cerr << #tfunc << ": ok" << std::endl; \ + else \ + std::cerr << #tfunc << ": FAILED" << std::endl; + +#endif diff --git a/exercises/morton-order/test_bits.cpp b/exercises/morton-order/test_bits.cpp new file mode 100644 index 0000000..b8a4080 --- /dev/null +++ b/exercises/morton-order/test_bits.cpp @@ -0,0 +1,92 @@ +#include +#include "bits.hpp" +#include "test.hpp" + +using namespace morton; + +using p32_64 = std::pair; +const std::vector pdata = { + {0x00000000U, 0x0000000000000000UL}, + {0x00000001U, 0x0000000000000001UL}, + {0x00000002U, 0x0000000000000004UL}, + {0x00000004U, 0x0000000000000010UL}, + {0x00000008U, 0x0000000000000040UL}, + {0x00000010U, 0x0000000000000100UL}, + + {0x0000000fU, 0x0000000000000055UL}, + + {0xffffffffU, 0x5555555555555555UL}, +}; + + +bool test_split() { + for(auto& item: pdata) { + auto res = split(item.first); + // All odd bits must be zero + // 0xa == 0b1010 + auto mask = 0xaaaaaaaaaaaaaaaaUL; + if (mask & res) { + std::cerr << "FAIL! Have a non-zero odd bit in " << res << std::endl; + return false; + } + + TEST_ASSERT_EQUAL(item.second, res); + + } + return true; +} + + +bool test_pack() { + + for(auto& item: pdata) { + auto res = pack(item.second); + TEST_ASSERT_EQUAL(item.first, res); + } + return true; +} + + +const std::vector> enc_data = { + {0, 0, 0}, + {1, 0, 1}, + {0, 1, 2}, + {1, 1, 3}, + + {42, 7, 1134}, + {0x45812369U, 0xa7112504U, 0x983b42030c271461UL}, + {0xffffffffU, 0xffffffffU, 0xffffffffffffffffUL} +}; + +bool test_encode() { + for (auto& item: enc_data) { + auto& x = std::get<0>(item); + auto& y = std::get<1>(item); + auto& z = std::get<2>(item); + + auto res = encode(x, y); + TEST_ASSERT_EQUAL(z, res); + + uint32_t rx, ry; + decode(z, rx, ry); + + TEST_ASSERT_EQUAL(x, rx); + TEST_ASSERT_EQUAL(y, ry); + } + return true; +} + +bool test_shift() { + uint64_t start = 0; + auto res = dec_y(dec_x(inc_y(inc_x(start)))); + TEST_ASSERT_EQUAL(start, res); + return true; + +} +int main() { + RUN_TEST(test_split); + RUN_TEST(test_pack); + RUN_TEST(test_encode); + RUN_TEST(test_shift); + return 0; +} diff --git a/exercises/threads/Makefile b/exercises/threads/Makefile new file mode 100644 index 0000000..60a3368 --- /dev/null +++ b/exercises/threads/Makefile @@ -0,0 +1,28 @@ +# Makefile for mandelbrot area code + +# +# C compiler and options for Intel +# +CC= icpc +CFLAGS = -fast -std=c++11 +LIB= -lm -lpthread + +# +# Object files +# +OBJ= area.o + +# +# Compile +# +area: $(OBJ) + $(CC) -o $@ $(OBJ) $(LIB) + +.cpp.o: + $(CC) $(CFLAGS) -c $< + +# +# Clean out object files and the executable. +# +clean: + rm *.o area diff --git a/exercises/threads/README.md b/exercises/threads/README.md new file mode 100644 index 0000000..f8a502d --- /dev/null +++ b/exercises/threads/README.md @@ -0,0 +1,3 @@ +This document is available in multiple formats: +* [PDF](instructions.pdf) +* [Markdown](instructions.md) diff --git a/exercises/threads/area.cpp b/exercises/threads/area.cpp new file mode 100644 index 0000000..898dd9a --- /dev/null +++ b/exercises/threads/area.cpp @@ -0,0 +1,49 @@ +#include +#include +#include + +using complex = std::complex; + +// Determine if a complex number is inside the set +bool in_mandelbrot(const complex& c) { + const auto MAXITER = 2000; + auto z = c; + for (auto i = 0; i < MAXITER; ++i) { + z = z*z + c; + if (std::norm(z) > 4.0) + return false; + } + return true; +} + +int main() { + const auto NPOINTS = 2000; + + const auto scale_real = 2.5; + const auto scale_imag = 1.125; + const auto eps = 1.0e-7; + const auto shift = complex{-2.0 + eps, 0.0 + eps}; + using clock = std::chrono::high_resolution_clock; + auto start = clock::now(); + + // Outer loops run over npoints, initialise z=c + // Inner loop has the iteration z=z*z+c, and threshold test + int num_inside = 0; + for (int i = 0; i < NPOINTS; ++i) { + for (int j = 0; j < NPOINTS; ++j) { + const auto c = shift + complex{(scale_real * i) / NPOINTS, + (scale_imag * j) / NPOINTS}; + if (in_mandelbrot(c)) + num_inside++; + } + } + auto finish = clock::now(); + + // Calculate area and error and output the results + auto area = 2.0 * scale_real * scale_imag * double(num_inside) / double(NPOINTS * NPOINTS); + auto error = area / double(NPOINTS); + + std::printf("Area of Mandlebrot set = %12.8f +/- %12.8f\n", area, error); + auto dt = std::chrono::duration(finish-start); + std::printf("Time = %12.8f seconds\n", dt.count()); +} diff --git a/exercises/threads/instructions.md b/exercises/threads/instructions.md new file mode 100644 index 0000000..7e909da --- /dev/null +++ b/exercises/threads/instructions.md @@ -0,0 +1,32 @@ +# C++ threads +## Mark Bull +## m.bull@epcc.ed.ac.uk + +Source for this can be obtained from Github. Get a new copy with: + +``` +git clone https://github.com/EPCCed/APT-CPP +``` + +or update your existing one with + +``` +git pull +``` + +then you can + +``` +cd APT-CPP/exercises/threads +``` + + + +`area.cpp` contains a C++ version of the Mandelbrot example which you used in Threaded Programming. + +Parallelise the outer loop of the main computation using C++ +threads. Try using either a function pointer or a lambda expression. + +Try different mechanisms for synchronising the update to the shared +counter: a mutex, and lock guard or an atomic int. + diff --git a/exercises/threads/instructions.pdf b/exercises/threads/instructions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..89d5995a37bfdad0e749f9f168920352208ad3ec GIT binary patch literal 80342 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 literal 0 HcmV?d00001 diff --git a/lectures/README.md b/lectures/README.md new file mode 100644 index 0000000..c7635af --- /dev/null +++ b/lectures/README.md @@ -0,0 +1,11 @@ +# Lectures + +* [A brief introduction to C++](cpp-intro) +* [Class types](classes) +* [Loops, containers, and iterators](loops-containers) +* [Managing resources](resources) +* [Templates for generic programming](templates) +* [Algorithms and lambdas](algorithms-lambdas) +* [Linear algebra with Eigen](eigen) +* [Threads with C++](threads-1) and [Further topics with threads](threads-2) +* [C++ frameworks for portable performance](frameworks-kokkos) diff --git a/lectures/algorithms-lambdas/README.md b/lectures/algorithms-lambdas/README.md new file mode 100644 index 0000000..1e884f8 --- /dev/null +++ b/lectures/algorithms-lambdas/README.md @@ -0,0 +1,416 @@ +template: titleslide + +# Algorithms and lambdas +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +--- + +template: titleslide +# Recap +--- + +# Iterators +```C++ +std::vector data = GetData(n); + +// C style iteration - fully explicit +for (auto i=0; i != n; ++i) { + data[i] *= 2; +} +// Old C++ style - hides some details +for (auto iter = data.begin(); iter != data.end(); ++iter) { + *iter *= 2; +} +// New range-based for +for (auto& item : data) { + item *= 2; +} +``` + +--- +template: titleslide +# Standard algorithms library +--- + +# Standard algorithms library + +The library includes many (around 100) function templates that +implement algorithms, like "count the elements that match a criteria", +or "divide the elements based on a condition". + +These all use *iterators* to specify the data they will work on, e.g., +`count` might use a vector's `begin()` and `end()` iterators. + +```C++ +#include +std::vector data = Read(); +int nzeros = std::count(data.begin(), data.end(), + 0); + +bool is_prime(int x); +int nprimes = std::count_if(data.begin(), data.end(), + is_prime); +``` +--- +# Standard algorithms library + +Possible implementation: +```C++ +template +intptr_t count_if(InputIt first, InputIt last, + UnaryPredicate p) { + intptr_t ans = 0; + for (; first != last; ++first) { + if (p(*first)) { + ans++; + } + } + return ans; +} +``` + +(Unary `\(\implies\)` one argument, a predicate is a Boolean-valued +function.) + +--- + +# Key algorithms + +|Algorithm | Description | +|--|---| +| `for_each` | Apply function to each element in the range. | +| `count`/`count_if`| Return number of elements matching. +| `find`/`find_if` | Return iterator to first element matching or end if no match. | +| `copy`/`copy_if` | Copy input range (if predicate true) to destination | +| `transform` | Apply the function to input elements storing in destination (has overload work on two inputs at once) | +| `swap` | Swap two values - used widely! You may wish to provide a way to make your types swappable (see cpprefence.com) | +| `sort` | Sort elements in ascending order using either `operator<` or the binary predicate provided | +| `lower_bound`/ `upper_bound` | Given a *sorted* range, do a binary search for value. | + +--- + +# `for_each` + +One of the simplest algorithms: apply a function to every element in a +range. +```C++ +template< class InputIt, class UnaryFunction > +UnaryFunction for_each(InputIt first, + InputIt last, + UnaryFunction f); +``` + +Why bother? + +- Clearly states your intent + +- Cannot get an off-by-one errors / skip elements + +- Works well with other range-based algorithms + +- Concise if your operation is already defined in a function + +However often a range-based for loop is better! + +--- +# `transform` + +A very powerful function with two variants: one takes a single range, +applies a function to each element, and stores the result in an output +iterator. +```C++ +template +OutputIt transform(InputIt first1, InputIt last1, + OutputIt d_first, + UnaryOperation unary_op ); +``` + +This is basically the equivalent of `map` from functional programming or MapReduce. + +```C++ +std::vector data = GetData(); +std::transform(data.begin(), data.end(), + data.begin(), double_in_place); +``` + +You can use your input as the output. + +--- + +# Motivation + +Implementations have been written *and tested* by your compiler +authors. + +The library may be able to do platform-specific optimizations that you +probably don't want to maintain. + +They form a language to communicate with other programmers what your +code is really doing. + +It's nice code that you don't have to write. + +```C++ +for (auto it = images.begin(); + it != images.end(); ++it) { + if (ContainsCat(*it)) { + catpics.push_back(*it); + } +} +``` +vs +```C++ +std::copy_if(images.begin(), images.end(), + ContainsCat, std::back_inserter(catpics)); +``` + +--- +template:titleslide + +# Lambda functions +--- + +# Algorithms need functions + +Very many of the algorithms just discussed need you to provide a +function-like object as an argument for them to use. + +If you have to declare a new function for a one-off use in an algorithm +call that is inconvenient and moves the code away from its use site. + +Worse would be to have to create a custom function object class each +time! + +--- +# A verbose example + +```C++ +struct SquareAndAddConstF { + float c; + SquareAndAddConstF(float c_) : c(c_) {} + + float operator()(float x) { + return x*x + c; + } +}; + +std::vector SquareAndAddConst(const std::vector& x, float c) { + std::vector ans; + ans.resize(x.size()); + + std::transform(x.begin(), x.end(), ans.begin(), + SquareAndAddConst(c)); + return ans; +} +``` +--- + +# Lambdas to the rescue + +- A lambda function a.k.a. a closure is a function object that does + not have a name like the functions you have seen so far. + +- You can define one inside a function body + +- You can bind them to a variable, call them and pass them to other + functions. + +- They can capture local variables (either by value or reference). + +- They have a unique, unknown type so you may have to use `auto` or + pass them straight to a template argument. + +--- + +# A less verbose example +```C++ +std::vector SquareAndAddConst(const std::vector& x, float c) { + std::vector ans; + ans.resize(x.size()); + auto func = [c] (double z) { return z*z + c; }; + std::transform(x.begin(), x.end(), ans.begin(), + func); + return ans; +} +``` + +--- + +# A less less verbose example +```C++ +std::vector SquareAndAddConst(const std::vector& x, float c) { + std::vector ans; + ans.resize(x.size()); + std::transform(x.begin(), x.end(), ans.begin(), + [c] (double z) { return z*z + c; }); + return ans; +} +``` + +--- +# Anatomy of a lambda +``` +[captures](arg-list) -> ret-type {function-body} +``` +| | | +|---|----| +| `[ ... ]` | new syntax that indicates this is a lambda expression | +| `arg-list` | exactly as normal | +| `function-body` | zero or more statements as normal | +| `-> ret-type` | new C++11 syntax to specify the return type of a function - can be skipped if return type is void or function body is only a single `return` statement. | +| `captures` | zero or more comma separated captures | + + +You can capture a value by copy (just put its name: `local`) or by reference +(put an ampersand before its name: `&local`). + +--- +# Anatomy of a lambda + +``` +[captures](arg-list) -> ret-type {function-body} +``` + +This creates a function object of a unique unnamed type (you +must use `auto` to store it in a local variable). + +You can call this like any object that overloads `operator()`: +```C++ +std::cout << "3^2 +c = " << func(3) << std::endl; +``` + +Note that because it does not have a name, it cannot take part in +overload resolution. + +--- + +# Quick Quiz + +What does the following do? +```C++ + [](){}(); +``` +-- + +Nothing + +--- + +# Uses + +- STL algorithms library (or similar) - pass small one-off pieces of + code in freely + +```C++ +std::sort(molecules.begin(), molecules.end(), + [](const Mol& a, const Mol& b) { + return a.charge < b.charge; + }); +``` + +- To do complex initialisation on something, especially if it should + be `const`. + +```C++ +const auto rands = [&size] () -> std::vector { + std::vector ans(size); + for (auto& el: ans) { + el = GetRandomNumber(); + } + return ans; +}(); // Note parens to call! +``` + +--- +# Rules of thumb + +Be careful with what you capture! + +![:thumb](If your lambda is used locally - including passed to +algorithms - capture by reference. This ensures there are no copies +and ensures any changes made propagate.) + +![:thumb](If you use the lambda elsewhere, especially if you return +it, capture by value. Recall references to locals are invalid after +the function returns! References to other objects may still be valid +but hard to keep track of.) + +![:thumb](Keep lambdas short - more than 10 lines you should think +about moving it to a function/functor instead.) + + +--- +template: titleslide +# Performance + +??? + +Many people are a bit concerned that using iterators/lambdas etc +incurs some overhead - after all you're calling a bunch of +functions. So let's benchmark them + +--- + +# Many ways to iterate +```C++ +// C style iteration - fully explicit +for (auto i=0; i != n; ++i) { + data[i] *= 2; + } + +// Old C++ style - hides some details +for (auto iter = data.begin(); iter != data.end(); ++iter) { + *iter *= 2; +} + +// New range-based for +for (auto& item : data) { + item *= 2; +} + +// Algorithms library +std::for_each(data.begin(), data.end(), + double_in_place); +``` + +--- +# Is there any overhead? + +Going to quickly compare four implementations to scale by 0.5: + +- C-style array indexing + +- Standard vector with iterator + +- Standard vector with range based for-loop + +- Standard vector with std::for_each + +```C++ +int main(int argc, char** argv) { + int size = std::atoi(argv[1]); + std::vector data(size); + for (auto& el: data) + el = rand(1000); + Timer t; + scale(data.data(), data.size(), 0.5); + std::cout << size << ", " + << t.GetSeconds() << std::endl; +} +``` + +--- +# Results +.center[![-O0](looptests/opt0.svg)] + +--- +# Results +.center[![-O2](looptests/opt2.svg)] + +--- +# Exercise + +See [exercises/algorithm](../../exercises/algorithm) + diff --git a/lectures/algorithms-lambdas/index.html b/lectures/algorithms-lambdas/index.html new file mode 100644 index 0000000..b2fe5d7 --- /dev/null +++ b/lectures/algorithms-lambdas/index.html @@ -0,0 +1,31 @@ + + + +C++ for numerical computing part 2 + + + + + + + + + + + + + + + diff --git a/lectures/algorithms-lambdas/looptests/opt0.svg b/lectures/algorithms-lambdas/looptests/opt0.svg new file mode 100644 index 0000000..19477d2 --- /dev/null +++ b/lectures/algorithms-lambdas/looptests/opt0.svg @@ -0,0 +1,1489 @@ + + + + + + + + 2023-02-24T11:49:36.314145 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lectures/algorithms-lambdas/looptests/opt2.svg b/lectures/algorithms-lambdas/looptests/opt2.svg new file mode 100644 index 0000000..274a421 --- /dev/null +++ b/lectures/algorithms-lambdas/looptests/opt2.svg @@ -0,0 +1,1401 @@ + + + + + + + + 2023-02-24T11:49:37.044643 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lectures/classes/README.md b/lectures/classes/README.md new file mode 100644 index 0000000..5d2ae97 --- /dev/null +++ b/lectures/classes/README.md @@ -0,0 +1,818 @@ +template: titleslide +# Classes +## Rupert Nash, EPCC +## r.nash@epcc.ed.ac.uk + +--- +# Compiler explorer (Godbolt) + +A very useful tool is the Compiler Explorer - https://godbolt.org + +Type some code on the left and it will compiled with your choice of +very many compilers. + +Will show compiler errors/warnings/reports and can execute your +program. + +Can get shareable links to your code. + +??? + +The name comes from the creator, Matt Godbolt + +--- +# User defined types + +Called "class types" formally - can be defined with either the `class` +or `struct` keyword. + +```C++ +struct Complex { + double re; + double im; +}; +``` + +Let's show this on Compiler Explorer: https://godbolt.org/z/j8Kf31T89 + +This style of type is often called a "plain old data" (POD) type or a +"trivial" type. + +This simply aggregates together several *members* which have a name +and type. You can then pass them around together and access the data. + +??? + +Talked already about the built in types and one of the library +provided types (`std::string`) + + +--- +# Class types + +Creating trivial types - give the class name then list the values to be assigned to the +members, _in order_, inside braces: + +```C++ +Complex mk_imaginary_unit() { + return Complex{0, 1}; +} +``` +This is called aggregate initialisation. + +Alternatively: +```C++ +Complex mk_imaginary_unit() { + Complex sqrt_m1; // Values are uninitialised + sqrt_m1.re = 0; + sqrt_m1.im = 1; + return sqrt_m1; +} +``` + +--- +# Class types + +Using trivial types: + +```C++ +void test() { + Complex z = mk_imaginary_unit(); + assert(z.re == 0); + assert(z.im == 1); +} +``` + +Any piece of code can access the member variables inside the object. + +??? + +This is probably something you're familiar with from other languages + +--- +template: titleslide +# Creating instances + +--- +# Default member initialisers + +In the class definition you can (should?) provide default values for +member variables: + +```C++ +struct Complex { + double re = 0.0; + double im = 0.0; +}; +``` + +Now when you create an object it will be initialised to a know state +for you: + +```C++ +void test() { + Complex z; + assert(z.re == 0); + assert(z.im == 0); +} +``` + +??? + +Why "should"? + +The compiler will generate code for you to set the defaults whenever +you create these objects - can't forget to do this. + +Why not should? + +Perhaps your types act as much like the builtin types as +possible. Initialising members incurs a RUNTIME COST which perhaps you +don't wish to pay. + +--- +# Default member initialisers + +A note for C++11: you lose the ability to set the member variables by +just providing the values: + +```C++ +struct Complex { + double re = 0.0; + double im = 0.0; +}; + +Complex mk_imaginary_unit() { + return Complex{0, 1}; +} +``` + +GCC says: +``` +error: no matching constructor for initialization of 'Complex' + return Complex{0,1}; +``` + +--- +# Constructors +Often you want to control the creation of instances of your classes. + +You do this with _constructors_ - these are special member "functions" +with the same name as the type. + +```C++ +struct Complex { + Complex() = default; + Complex(double re); + Complex(double re, double im); + double re = 0.0; + double im = 0.0; +}; +``` + +Note we declare three: +- one that initialises with a purely real value +- one that initialises with a real and imaginary value +- a *default constructor* which needs no arguments (that we tell the + compiler to generate for us as before with `= default` ) + +??? + +Control in more detail than just starting from a default value or +having to provide *all* the of member values. + +Constructors are not strictly functions in C++ but very nearly (next slide) + +Why do you have to "explictly default the default constructor"? + +Because the language rules say if the user provides any constructors, +the compiler must not create one unless asked to... + +--- +# Constructors + +- Constructors are not directy callable +- Constructors do not return a value +- Constructors can do initialisation of member variables before the body begins execution + + +Let's define the ones we declared just now: + +```C++ +Complex::Complex(double real) : re{real} { +} + +Complex::Complex(double real, double imag) : re{real}, im{imag} { +} +``` + +??? + +Point out the member initialiser syntax after the colon + +Assert that this is where you want to do as much initialisation as you +possibly can. + + +--- +# Creating complexes + +We can now create complex numbers different ways +```C++ +auto zero = Complex{}; // Uses default member initialisers +auto pi = Complex{3.14159}; // pi.im == 0.0 +auto sqrt_minus_one = Complex{0, 1}; +Complex one = 1.0; +``` + +--- +template: titleslide +# Member functions + +--- +# Object-oriented programming + +Object oriented programming is one of the major paradigms supported by +C++ + +> OOP is based on the concept of "objects", which may contain data and +> code. A feature of objects is that an object's procedures can access +> and often modify the data of the object with which they are +> associated. + +In C++ these attached bits of code are known as member functions - +other languages might call them methods + +For example: + +```C++ +int main() { + std::string name; + std::cin >> name; + std::cout << "Hello, " << name << ". " + << "Your name has " << name.size() << " characters." << std::endl; +} +``` +??? + +Quote from wikipedia + +Note that an object in C++ may not be an object in the OOP sense! + +--- +# Member functions + +Typically these are declared in the class definition... + +```C++ +// complex.hpp +struct Complex { + // Constructors as before + double magnitude() const; + + double re = 0.0; + double im = 0.0; +}; +``` + +??? + +If anyone asks, discussion of const is coming up! + +--- +# Member functions + +... and defined out of line + +```C++ +// complex.cpp +double Complex::magnitude() const { + return std::sqrt(re*re + im*im); +} +``` + +Within a member function we can access the members (data or function) +by just giving their names. + +Outside the class, we need to have an instance to use: + +```C++ +Complex z{3, 4}; +assert(z.magnitude() == 5.0); +``` + +??? + +The compiler inserts an implicit argument referring to the current +instance for us + +--- +# More on operator overloading + +Complex numbers have the usual arithmetic operations: `\(+-\times\div\)` + +We can provide operator overloads, like: + +```C++ +struct Complex { + // Other members... + + Complex& operator+=(Complex const & increment) { + re += increment.re; + im += increment.im; + return *this; + } +}; +Complex operator+(Complex const& a, Complex const& b) { + return Complex{a.re+b.re, a.im+b.im}; +} +``` + +??? + +Recall that these are just functions (with funny names) + +We have a member function `operator+=` and a non-member (aka free +function) + +The compiler is already implicitly turning `a+b` into plus(a, b) +internally. + +If anyone asks, references and `const` coming up + +--- +# More on operator overloading + +Complex numbers have the usual arithmetic operations +(`\(+-\times\div\)`) and comparisons. + +We can now use the natural syntax to add these values + +```C++ +Complex i{0, 1}; + +Complex z; +z += i; + +assert(z.re == 0 && z.im == 1); + +auto c = z + i; +assert(c == 2*i); +``` + +??? + +We could also overload multiplication and equality comparison as shown +in the last line + +Go look up the complete list on CPP Reference! + +--- +# Classes and structs + +You define a class using either the `struct` or `class` keywords - +technically the difference is only the default _accessibility_ of +members. + +Members can be: + +- `public`: usable from any piece of code - i.e. the public interface + of the class - default for `struct` + +- `private`: only usable from with a the context of the class - + i.e. an implementation detail of the class that should be of no + interest to code that uses it - default for `class` + +Restricting access to implementation details is part of encapsulation: +another common aspect of OOP + + +??? + +Context of a class means from inside a member function or from +elsewhere in the class scope + + +--- +# Access Control + +```C++ +class Greeter { + std::string greetee; + void say_hello() const { + std::cout << "Hello, " << greetee << std::endl; + } +}; + +void test(Greeter const& g) { + g.say_hello(); +} +``` +??? + +Compiler will say something like +`error: 'say_hello' is a private member of 'Greeter'` + +--- +# Access Control + +```C++ +class Greeter { + std::string greetee; +public: + void say_hello() const { + std::cout << "Hello, " << greetee << std::endl; + } +}; + +void test(Greeter const & g) { + g.say_hello(); +} +``` +??? + +To fix this need to add the `public` access specifier + +Why is encapsulation worth bothering with? Enforces modularity and can +(sometimes) swap out parts of the implementation for e.g. performance +without have to re-write the client code + +A class can declare another function (or class) its `friend` which +allows only that bit of code to touch its private members. + +This is a controlled, partial relaxation of encapsulation that often +makes the whole system more isolated. + + +--- +template: titleslide +# Constants + +--- +# Const-ness + +Variables can be qualified with the `const` keyword + +- objects marked with `const` cannot be modified + +- compiler will give errors if you try + +```C++ +int main() { + int const i = 42; + std::cout << i << std::endl; + // prints 42 + + i += 10; + // error: cannot assign to variable 'i' with const-qualified type 'const int' +} +``` + +You should be adding `const` to your local variables whenever possible. + +??? + +We can have a few degrees of constantness + +1. known at compile time: the value of pi is + always 3.14159... Compiler might be able to help us here + +2. local variable: the variable gets a single value for that one + execution of that block of code. Compiler probably won't speed it + up, but it helps us humans: + * You are giving something a *name* so you can refer to it again. It + means you won't accidentally change something + * give it a proper name: `local_mean_density` not `d` + * Maybe do this even if you only use it once (compiler will + probably optimise it away) + +--- +# Const-ness + +Since function parameters are just local variables, they can be +`const` too. + +```C++ +Complex operator-(Complex const a, Complex const b) { + return Complex{a.re - b.re, a.im - b.im}; +} +``` + +Since this function has no need to modify it's arguments, they should +be marked as `const` + +??? + +Deliberately omitting the `&` for references - that's next + + +--- +# Const-ness + +Member functions have an implicit argument of the instance they +"belong" to. + +If they do not need to change an instance, then they should be marked +`const` also: + +```C++ +struct Complex { + double magnitude() const; +}; +``` + +??? + +`this` pointer, if anyone asks, but we don't like pointers + + +Member variables can be marked `const`, but don't do it + +--- +# East-const vs West-const + +As far as the compiler and language specification are concerned, both +of these are identical: + +.columns[ +.col[ +```C++ +const int i = 42; +``` + +Rule: `const` applies to what is on its left, unless there is nothing on its left, then it applies to what is on its right + +] +.col[ +```C++ +int const i = 42; +``` +Rule: Always put `const` on the right of what it modifes +] +] + +It doesn't really matter as long as you're **consistent** within a project. + +??? + +East const is a little more logical hence using it here! + +Older codebases (and C++ programmers) will be West const (e.g. RWN) + +--- +template: titleslide +# References + +--- +# Copying + +By default, if assign a variable a new value, C++ will copy it +```C++ +double copy = original; +``` + +Same if you pass a value of some type to a function, it will be +copied to a new local variable for the invocation of a function: + +```C++ +SimState AdvanceOneTimeStep(SimState old); + +// later... +next_state = AdvanceOneTimeStep(current_state); +``` + +??? +Exactly what copying means for a class type is up to the programmer - +forms part of the interface + +If you're doing some complex simulation like computational fluid +dynamics/molecular dynamics, the `current_state` will be large and be +expensive (in time and memory) to copy. + +--- +# References + +C++ has the concept of a **reference**. + +- A reference is a name that aliases an already existing object + +- A reference must be initialised (function arguments are initialised + by calling) + +- A reference cannot be rebound to a new object + +```C++ +void ScaleVector(double scale, std::vector& x) { + // Multiply every element of x by scale +} + +void test() { + std::vector data = ReadLargeFile(); + ScaleVector(-1.0, data); +} +``` + +??? + +We qualify the type with the ampersand `&` after the type and before +the variable name. + +When I say must be intialised, mean that you can't just declare a +reference variable without initialising it + +At the call site the reference is bound to parameter and the function +can refer to `data` without copying it + +This is close to the way that Fortran passes arguemnts to subroutines + +--- +# References and Const + +You can qualify a reference as const: + +```C++ +SimState AdvanceOneTimeStep(SimState const& old) { + // do some science... + return new_state; +} +``` + +??? + +This means that the program cannot modify the contents of `old` +through that name. + +The compiler will give an error if you try to change it (or a call a +function that could change it). + +--- +# Functions can return a reference + +Many classes have data members that they want to let their client have +some access to without (necessarily) copying + +Or access to a single value from the many they might contain + +```C++ +class AtomList { + std::vector position; + std::vector velocity; + std::vector charge; +public: + std::vector const& GetCharge() const { + return charge; + } +}; + +void analyse_md_data() { + AtomList const atoms = ReadFromFile(); + std::vector const& charges = atoms.GetCharge(); + std::cout << "Average charge = " + << std::accumulate(charges.begin(), charges.end()) / charges.size() + << std::endl; +} +``` + +??? + +So when we call the `GetCharge` the local var `charges` refers to the +same data contained inside `atoms` without doing any copying + +Returning references is very common - especially for containers that +we'll talk about later. + +--- +# References and const with `auto` + +When you declare a variable with `auto` you can qualify it it as a +reference and/or `const`: + +- Use `auto x` when you want a modifiable copy + +- Use `auto&& x` when you want a reference and the same `const`-ness + as the initialiser + +- Use `auto const &x` when you want a reference to original item and + will not modify it + +![:thumb](Use the last whenever possible) + +??? + +Note double ampersand in 2nd point - it's called a forwarding reference and we will +come back to it + +Refer back to the last slide codes and ask + +- what happens if instead of `std::vector const&` we put + `auto charges`? (charges deduces to `std::vector` and we copy) + +- `auto const & charges` (charges deduces just that same as written - + we have a reference) + +- `auto&& charges`? (exactly as before but *if* we had returned a + mutable reference then it would be a mutable ref while `auto const&` + would have stayed constant) + + +--- +template: titleslide +# C++ compilation + +--- +# Declarations vs Definitions + +C++ distinguishes between *declaration* and *definition*. + +A **declaration** tells the compiler that a name exists, what kind of +entity it refers to and (if it is a function or variable) its +type. For most uses this is all the compiler needs. Declarations can +be repeated, as long as they match *exactly*. + +A **definition** tells the compiler everything it needs to create +something in its entirety. A definition is also a declaration. The +one-definition rule says that definitions must not be repeated (with +an exception). + +??? + +The exceptions being templates and `inline` functions if anyone asks + +--- +# Where to put these + +- Conventionally, one puts declarations of functions, definitions of + classes, and global constants in **header** files. + + - Common suffixes are: `.hpp`, `.h`, `.H` + +- Definitions of most functions should be in **implementation** files + + - Common suffixes are `.cpp`, `.cxx`, `.cc`, `.C` + +- Headers can be be `#include` into other files that need to use the + types and function declared there. + +??? + +Suffixes mostly meaningless to the compiler but don't surprise people! + +Prefer earlier in the list + +--- +# Where to put these + +E.g. Complex.hpp: + +```C++ +#ifndef COMPLEX_HPP +#define COMPLEX_HPP + +struct Complex { + Complex() = default; + // etc... +private: + double re; + double im; +}; + +Complex operator+(Complex const& a, Complex const& b); +// Etc... + +#endif +``` +??? + +Draw attention to the include guard idiom + +--- +# Exercise + +In your clone of this repository, find the `complex` exercise and list +the files + +``` +$ cd APT-CPP/exercises/complex +$ ls +Makefile complex.cpp complex.hpp test.cpp +``` + +The files `complex.hpp` and `complex.cpp` contain a partially working +complex number class and `test.cpp` holds some basic unit tests. + +You can compile and run with: +``` +$ make && ./test +c++ --std=c++17 -I../include -c -o complex.o complex.cpp +c++ --std=c++17 -I../include -c -o test.o test.cpp +c++ complex.o test.o -o test +=============================================================================== +All tests passed (34 assertions in 6 test cases) +``` + +But to get to this point you need to complete the code and fix a few +bugs! + +??? + +Ask who knows about make maybe? diff --git a/lectures/classes/index.html b/lectures/classes/index.html new file mode 100644 index 0000000..32819ae --- /dev/null +++ b/lectures/classes/index.html @@ -0,0 +1,31 @@ + + + +Classes in C++ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/cpp-intro/README.md b/lectures/cpp-intro/README.md new file mode 100644 index 0000000..c616096 --- /dev/null +++ b/lectures/cpp-intro/README.md @@ -0,0 +1,580 @@ +template: titleslide + +# A brief introduction to C++ +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +--- + +template: titleslide +# Introduction + +--- +# Assumptions + +- You are a decent programmer in another language + +- You know how to use the shell + +- You have access to a terminal in front of you with a C++ compiler + +--- +# What this is not! + +Writing efficient software, more than anything, requires you to choose +an appropriate algorithmic approach for your problem. + +Here we want to take a lower-level approach and talk about how to +implement patterns efficiently using C++. + +??? + +For lots on how to do this well, consider other courses such as the Parallel Design Patterns +course from the MSc + +--- +# What is "scientific computing"? + +Both HPC and data science, when you actually come to running a +program, are about getting a large amount of data from memory to a +core, doing something useful to it, and storing it again. + +This is why FORTRAN is still relevant! + +But it does force you to confront this all time. + +C++ is all about building abstractions and composing them. + +![:thumb](I will talk about a few and give some suggestions of +default rules) + +--- +# These few lectures + +We could spend a whole semester going in depth on C++, so we've picked +a handful of features to cover that you really need to write modern +C++ for technical computing. + +This is not trying to teach the *whole language* in the many different +styles that people have developed over the decades. + +Please ask questions any time! + +--- +# The misunderstood monster + +.center[![:scale_img 30%](frank_mon.jpg)] + +By Universal Studios - Dr. Macro, Public Domain, +https://commons.wikimedia.org/w/index.php?curid=3558176 + +--- +# The misunderstood monster + +- Large: the C++20 standard is just over 1800 pages + +- Composed of many parts: C, classes, generics, functional + programming, exceptions, the vast library, ... + +- Inspires dread in those do not understand it + +- Dangerous: +> "C makes it easy to shoot yourself in the foot; +> C++ makes it harder, but when you do it blows your whole leg +> off." - Bjarne Stroustrup + +- "Expert friendly" + +--- +# Octopus vs Swiss Army knife + +> "C++ is an octopus made by nailing extra legs onto a dog" - Steve Taylor + +.center[![:scale_img 40%](octodog.jpg) ![:scale_img 40%](sak.jpg)] + +But you can cut off some extra legs to get the right dog for your +program! + +??? + +Why is it called C++20? + +Because that's how many legs they had to nail on to "fix" the octopus. + +--- +# The philosophy of C++ (community) + +- General purpose + +- Flexible by allowing developers to build abstractions (and provides + a large number through the library) + +- Performance and efficiency are always targeted "you only pay for + what you use" + +- Use the powerful type system to express intent + +- Communicate with the reader, not the compiler + +--- +# C++ is alive! + +C++ is a work in progress. + +Every three years there is a new update to the International Standard + +Latest one, C++20, still not fully implemented by an compiler. Major +new features are ranges, coroutines, concepts, and modules + +Next one, in 2023, well underway. Major features likely to include +networking, string formating, executors, and consolidation of new +C++20 features + +--- +# References +- Bjarne Stroustrup, "Programming: Principles and Practice Using C++" + (2nd Ed.). Assumes very little but it's long + +- Bjarne Stroustrup, "A Tour of C++". Assumes you're an experience + programmer and is quite brief - targets C++17 + +- Best online *reference* is + (comes in other human languages too!) + +- Scott Meyers, "Effective Modern C++", 2014. This is *the* book to + get once you know your way around C++, but you want to improve. + Teaches lots of techniques and rules of thumb for writing correct, + idiomatic, maintainable code. + +- [stackoverflow.com](stackoverflow.com) has a lot of good questions + about C++ (look for ones with at least 100 up-votes). + +--- +template: titleslide +# But first\... + +--- +name: hello +# Hello! + +```C++ +#include + +int main() { + std::cout << "Hello, world!" << std::endl; +} +``` + +--- +template: hello + +``` +$ g++ --std=c++17 hello.cpp -o hello +$ ./hello +Hello, world! +``` + +--- +template: hello + +- The preprocessor runs first + +- The `#include` directive copies the contents of another file into + the current compilation unit. + +- The angle brackets `<...>` tell it to look only in system + directories. + +- This includes the `iostream` standard library header + +--- +template: hello + +- Every program must have exactly one main function. + +- The compiler and OS arrange for this to be called when you run it. + +- (Not shown, but you can also get the command line arguments) + +--- +template: hello + +- `std` is the standard library namespace. + +- A namespace allows scoping of names (much like a filesystem has + directories). + +- The scope resolution operator `::` lets us access something from + inside a namespace. + +- `cout` represents console output (i.e. standard output / stdout) + +--- +template: hello + +- The standard library uses the bitwise left shift operator (`<<`) to + mean stream insertion + +- I.e. output the right hand side to the left. + +- Every statement in C++ must be terminated with a semicolon (`;`) + +- The language treats all whitespace (space, tab, line break) the same + +--- + +template: titleslide +# Your turn + +--- +# Machine choice + +You can use your laptop, Cirrus, or ARCHER2 + +__Your machine__ : you need a C++ compiler that supports at least +C++17. If you use Windows and MSVC we may not be able to help +much... Sorry! + +__Cirrus__: You have log in details. + +Once connected you need to load the up-to-date compilers: +``` +module load gcc/8.2.0 +``` + +__ARCHER2__: You have log in details. + +Once connected you need to load the up-to-date compilers: +``` +module load gcc/10.2.0 +``` + +--- +# Getting the source code + +All these slides and the exerices are available on GitHub: +https://github.com/EPCCed/APT-CPP + +You also can view the slides and other materials in a browser by going +to https://EPCCed.github.io/APT-CPP/ + +In the terminal, you need to use git get a copy of the exercises: +``` +git clone https://github.com/EPCCed/APT-CPP +``` + +Then you can change to the directory with this simple program +``` +cd APT-CPP/lectures/cpp-intro/hello +``` + +--- +# Say hello + +View the program source + +``` +vim hello.cpp +emacs hello.cpp +``` + +Compile the program: + +``` +g++ --std=c++17 hello.cpp -o hello +``` + +No output means success! + +Run it: +``` +./hello +``` + +--- +template: titleslide +# A few things + +--- +# C++: + +- It is a typed language - all variables must be declared + - But you can often tell the compiler to figure out the type + +- Counts from zero (like C, Python) not from one (like Fortran) + +--- +template: titleslide +# Variables + +--- +# Variables + +A variable is + +- an object + +or + +- a reference + +that is declared to have a type and a name. + +??? + +We'll talk about references later + +--- + +# Objects + +An object is a region of storage that has: + +- type +- size +- value +- lifetime + +??? + +types are next, explain a bit about the others + +--- + +template: titleslide +# Types + +--- +# What is a type? + +> "Objects and expressions have a property called type, which +> both restricts the operations that are permitted for those entities +> and provides semantic meaning to the otherwise generic sequences of +> bits." -- + +--- +# Fundamental types + +| Type | Description | +|-------------|-------------| +| `void` | Nothing - used to indicate a function returns no value.| +| `bool` | `true` or `false` | +| `int` | Standard *signed* integer for your machine. *At least* 16bits. *Usually* 32 bits.| +| `double` | Double-precision floating point. *Usually* an IEEE 754 64 bit number.| +| `std::byte` | Raw untyped memory | + +There are also `unsigned` versions of the integer types + +The header `` provides fixed-width integer types available on +your implementation: e.g. `std::int32_t` and `std::uint64_t`. + +??? + +There are others: +- single precision floats +- short/long/long long ints + +Go look them up on CPP Reference as you need to + +--- + +# Strings + +The standard library has a class* called `string` that holds a string +of text characters. + +You have to `#include ` to use it which includes the "header +file" that contains all the information the compiler needs to let you +use it. + +``` +#include +#include + +int main() { + std::string message = "Hello, world"; + std::cout << message << std::endl; +} +``` + +??? +Character encoding in the standard library is a bit of a mess. + +Partially fixed in C++20 + +Find a library if you need to do serious text handling because Unicode +is super complicated + +--- +template: titleslide +# Functions + +--- +# Functions + +A function encapsulates a piece of code between braces (curly +brackets, `{}`) and gives it a name so you can use it later. + +```C++ +void say_hello() { + std::cout << "Hello, world!" << std::endl; +} + +int main(int argc, char* argv[]) { + say_hello(); +} +``` +??? + +You declare function by first giving the return type (`void`) + +Then the name (`say_hello`) + +Then the list of zero or more parameters + +--- +# Functions + +You must declare the return type and parameter types. + +Parameters are local variables that are initialised by the caller. + +Return a value with the `return` statement - the type of the +expression must be (convertible to) the declared return type. + +```C++ +int sum(int a, int b) { + return a + b; +} +``` + +Can alse use trailing return type (aka "east end functions"): +```C++ +auto sum(int a, int b) -> int { + return a + b; +} +``` + +??? + +First sight of the `auto` keyword - this basically says to the +compiler: "figure it out from what follows" + +In this case, by us telling it later + +--- +# Functions + +To use a function - to "call" it - you give its name and then provide +the arguments in parentheses + +``` +int main () { + int x = 42; + std::cout << "Total = " << sum(x, 100) << std::endl; +} +``` + +The parameters to the function must match the (a) declaration. + +--- +# Function overloading + +You can have multiple functions with the **same +name** but **different arguments**. +```C++ +int sum(int a, int b) { + return a + b; +} +double sum(double a, double b) { + return a + b; +} +``` + +When you call `sum`, the compiler knows the types of the arguments and +will try to find the best match from all the candidates with the name. + +The compiler will also try to use any built-in or user-defined +conversion rules. + +--- +# What happens here? + +```C++ +int i1 = 1; +int i2 = 2; +double d1 = 1.0; +double d2 = 2.0; +unsigned u42 = 42; +std::string name = "Alice"; +std::string file = "data.csv"; + +std::cout << sum(i1, i2) << std::endl; +std::cout << sum(3, 72) << std::endl; +std::cout << sum(i1, u42) << std::endl; +std::cout << sum(d2, d1) << std::endl; +std::cout << sum(d2, 1e6) << std::endl; +std::cout << sum(d2, i1) << std::endl; +std::cout << sum(name, file) << std::endl; +``` + +--- +# Operators are functions + +C++ operators, for the non-fundamental types, are just functions with odd +names, e.g.: +```C++ +std::string operator+(const std::string& a, const std::string& b); +``` + +You can then use the natural syntax when manipulating these in other +code: + +```C++ +std::string user_name = "alice"; +auto data_file = user_name + ".csv"; +``` + +We'll come back to this! + +??? + +In general we'd recommend using auto quite a lot "Almost always auto" + +Why? + +Can't have an uninitialized variable + +Add types - on RHS as constructors - when you need to ensure the type +of something (is known to the reader). + + +--- +# Let's write some code + +```C++ +#include +#include + +void say_hello() { + std::cout << "Hello, world!" << std::endl; +} + +int main(int argc, char* argv[]) { + std::cout << "What is your name?" << std::endl; + auto name = std::string{}; + // Read from the terminal + std::cin >> name; + + // Have the program greet the user by name + say_hello(name); +} +``` + +??? + +What I'd like you to do is change `say_hello` to accept the name it +read from the terminal, create a new message saying "Hello, $NAME!" +and print it to standard output. + +I've shown here how to read a string from standard input. diff --git a/lectures/cpp-intro/frank_mon.jpg b/lectures/cpp-intro/frank_mon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6ef376113f67edf1cb82c888e1ee308ff3bd773 GIT binary patch literal 63997 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

    a0DT1>1NsH@bIH!=6r~E{#<3F7sxT)m?=0CV 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 literal 0 HcmV?d00001 diff --git a/lectures/eigen/README.md b/lectures/eigen/README.md new file mode 100644 index 0000000..c6fe6dd --- /dev/null +++ b/lectures/eigen/README.md @@ -0,0 +1,178 @@ +template: titleslide +# Using Eigen +## Chris Richardson, Rupert Nash +## chris@bpi.cam.ac.uk, r.nash@epcc.ed.ac.uk +## CC-BY + +--- +# What is Eigen3 and why use it? +- C++ library for matrix arithmetic +- “Header only” implementation: no libraries to compile and install (easy) +- Provides some “missing” features needed for scientific computing in C++ +- Contains optimisations to get good performance out of ARM & Intel processors +- Easy to use interface +- Support for dense and sparse matrices, vectors and “arrays” +- Some support for ‘solvers’ (A.x = b) +- Download from https://eigen.tuxfamily.org or e.g. `apt install libeigen3-dev` +- If you know Python, it is a bit like a NumPy for C++ + +--- +# Basics + +```C++ +#include + +int main() +{ + Eigen::Matrix A; + A.setZero(); + A(9, 0) = 1.234; + std::cout << A << std::endl; + return 0; +} +``` + +This is pretty similar to `double A[10][10];` + +--- +# Dynamic size + +```C++ +int n = 64; +int m = 65; +Eigen::Matrix A(n, m); + +A.resize(20, 20); + +std::cout << “Size is ”; +std::cout << A.rows() << “ x ” << A.cols() << std::endl; +``` + +So this is more like a 2D version of `std::vector` + +--- +# Convenience aliases +```C++ +using Eigen::Matrix3d = Eigen::Matrix +using Eigen::Matrix3i = Eigen::Matrix +using Eigen::MatrixXd = Eigen::Matrix +using Eigen::VectorXd = Eigen::Matrix +using Eigen::RowVectorXd = Eigen::Matrix + +``` + +--- +# You can do Matrix arithmetic... + +```C++ +Eigen::MatrixXd A(5, 10); +Eigen::MatrixXd B(10, 2); +Eigen::VectorXd vec(10); + +Eigen::MatrixXd C = A * B; +Eigen::VectorXd w = A * vec; +``` + +Also dot and cross products for vectors, transpose, and usual scalar arithmetic `+ - * /` + +--- +# Element-wise ops with `Array`s + +For example: +```C++ +Eigen::Matrix3d A, B; +// set all values to 2.0 +A.array() = 2.0; + +// set each element of A to sin() of the same element in B +A.array() = B.array().sin(); + +Eigen::Array3d W; +W = W * A; // Error - cannot mix Array with Matrix +``` + +--- +# View other data as a `Matrix` or `Array` + +Mix and match with `std::vector` or any contiguous layout + +It is easy to “overlay” existing memory with an Eigen `Array` or `Matrix`: + +```C++ +std::vector a(1000); + +Eigen::Map> a_eigen(a.data()); + +a_eigen(10, 0) = 1.0; + +Eigen::Map a2_eigen(a.data(), 10, 100); +``` + +--- +# Efficiency: Eigen does lots of checks in debug mode + +Turn optimisation on: `-O2` etc. + +Turn off debug: `-DNDEBUG` + +--- +# Walk through example + +Solve diffusion equation + +$$\frac{\partial T}{\partial t} = k \frac{\partial^2 T}{\partial x^2}$$ + +in 1D using an explicit method + +Each timestep can be solved by using `\(T_{n+1} = A T_n\)` + +1. Create an initial vector for `T` +2. Create a dense matrix for `A` +3. Matrix multiply several times +- Convert to an implicit method: `\(A.T_{n+1} = T_n\)` +- Sparse matrices + + +Type along with me - see `exercises/eigen` + +--- +# Diffusion equation (explicit) + +Subscript means time, square brackets position + +`$$T_{n+1}[i] = T_n[i] + \frac{k \Delta t}{\Delta x^2}(T_n[i-1] - 2T_n[i] + T_n[i+1])$$` + +Our matrix equation is now: + +`$$T_{n+1} = A.T_{n}$$` + +Left-hand side is unknown (next time step) + +Let: `\(\delta = k\Delta t/ \Delta x^2\)` + +--- +# Matrix + +``` +A = [ 1-ẟ ẟ 0 0 0 … ] + [ ẟ 1-2ẟ ẟ 0 0 … ] + [ 0 ẟ 1-2ẟ ẟ 0 … ] + [ 0 0 ẟ 1-2ẟ ẟ 0 0 …] + [ 0 0 0 ẟ 1-2ẟ ẟ 0 …] + +``` + +--- +# Diffusion equation (implicit) + +Subscript means time, square brackets position + +`$$T_{n+1}[i] - \frac{k \Delta t}{\Delta x^2} (T_{n+1}[i-1] - 2*T_{n+1}[i] + T_{n+1}[i+1]) = T[i]$$` + +Left-hand side is unknown (next time step) +`$$A.T_{n+1} = T_n$$` + +Let: $$\delta = k \Delta t/\Delta x^2$$ + +??? +The matrix A is very similar - just flip the sign of the delta terms diff --git a/lectures/eigen/index.html b/lectures/eigen/index.html new file mode 100644 index 0000000..0b675fd --- /dev/null +++ b/lectures/eigen/index.html @@ -0,0 +1,30 @@ + + + +A brief introduction to C++ + + + + + + + + + + + + + + + diff --git a/lectures/frameworks-kokkos/RAJA-MD-perf.png b/lectures/frameworks-kokkos/RAJA-MD-perf.png new file mode 100644 index 0000000000000000000000000000000000000000..c79e80cc80625ac1befc48d2682ec5f6f8d165b2 GIT binary patch literal 171762 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

    )hFJK00lK52&rvHHQHts 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 A%m4rY literal 0 HcmV?d00001 diff --git a/lectures/frameworks-kokkos/README.md b/lectures/frameworks-kokkos/README.md new file mode 100644 index 0000000..c787723 --- /dev/null +++ b/lectures/frameworks-kokkos/README.md @@ -0,0 +1,456 @@ +template: titleslide + +# C++ frameworks for portable performance +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +--- +template: titleslide +# Introduction + +--- + +# Portable performance + +Modern HPC systems usually have several levels of parallelism +- Multiple nodes + +- Each with multi-core CPUs + +- Each with vector FPUs + +Many have accelerators (GPUs) for offloading kernels + +- High FLOP/Watt + +- High bandwidth graphics memory. + +- Complexity of managing offloading and distinct memory spaces + +--- + +# Portable performance + +Challenge: expose algorithms' parallelism in a way that maps to +hardware, with: + +- optimal performance + +- intuitive expression of algorithm + +- portability across different systems (Pure CPU, GPU, Xeon Phi, + future?) + +- only one version of the code base + +Or at least close! + +--- + +# What do we need to control? +.columns[ +.col[ +##Data + +- *Where* is the data? In which memory space? + +- *How* is the data laid out? Array of Structures or Structure of Arrays? +] +.col[ +## Execution + +- *Where* is the computation to take place? + +- *How* do parts relate? `for_each`/`reduce`/etc +] +] +--- + +# Why not just use... + +- CUDA - NVIDIA only + +- OpenCL - NVIDIA, AMD, embedded GPU. CPU working, but performance not + great - quite low-level + +- OpenMP or OpenACC - Maybe eventually! Not quite flexible enough yet, + but OpenACC really only NV/AMD and OpenMP requires different + directives for CPU vs GPU + +- Your suggestions - ... + +--- + +# What about parallel languages? + +- This is an area of active research! Lots have been proposed. Few + are used outside of CS research. + +- You need to trust this has been tested and will be supported for the + life of your application. + +- You need compiler, debugger, libraries that work with it + +- You need to learn a new language. + +- Anyone who wants to maintain/extend your code needs to learn a new + language. + +- Using it on a new architecure may require convincing the compiler + team to port it for you. + +--- + +# C++ can help + +Practical lab had an example of implementing a matrix template class +with Morton order data layout: + +.center[![:scale_img 50%](mortonorder.pdf)] +--- + +# C++ can help + +We have seen how the standard template library makes many algorithms +available to us in a standard way. + +```C++ +std::for_each(data.begin(), data.end(), + [](double& elem) { + elem = DoSomething(); + } +} +``` + +These functions are implemented in standard C++ - you could write an +equivalent. + +--- +# C++ can help + +If `InputIt` is a random-access iterator (e.g. from a `std::vector`) +then you could use this to parallelise with OpenMP (v3 or greater) + +```C++ +template< class InputIt, class UnaryFunction > +void omp_for_each(InputIt first, InputIt last, + UnaryFunction f) { +#pragma omp parallel for + for(InputIt iter = first; + iter < last; ++iter) { + f(*iter); + } +} +``` + +--- + +# C++ can help + +You can use this as a drop-in replacement for `std::for_each`: +```C++ +omp_for_each(data.begin(), data.end(), + [](double& elem) { + elem = DoSomething(); + }); +``` + +But this is just one thing on one method of parallelisation - we want +more and across all levels in a node, at least. + +--- +# Various options + +Fortunately a number of groups have done much of this work for us! + +- targetDP + +- Kokkos + +- RAJA + +- Many more that target a subset of platforms: + + - Thrust: CUDA specific containers and algorithms. Easy + interoperability with CUDA + . + - Hemi: CUDA only but hides much of the complexity of writing + device code . + - C++AMP - Microsoft developed language extension allowing you to + abstract the details writing code for execution on host or + GPU. + - Many more! + +--- + +# targetDP (DP = data parallel) + +- Alan Gray's (ex-EPCC, now NVIDIA) project + +- Using C as the host language. Targets parallelism using OpenMP (CPU, + Xeon Phi) and CUDA. + +- Data elements accessed through macros to abstract layout; data + allocation and movement handled by simple API. + +- Parallelism expressed with two macros: `__targetTLP__` and + `__targetILP__` for thread and instruction level parallelism + respectively. + +- Good if you want something lightweight and are using C. + +- source in LUDWIG + + +--- +# RAJA From LLNL (one of the big US national labs) + +C++ library that uses these concepts to achieve performance portability. + +DAXPY combined with a reduction: +```C++ +double* x; double* y; +RAJA::SumReduction sum(0.0); + +RAJA::forall(begin, end, + [=] (int i) { + y[i] += a * x[i]; + sum += y[i]; + }); +``` + +--- + +#RAJA performance + +.columns[ +.col[ +- CoMD is a classical molecular dynamics code, written in C + (baseline - green) + +- The RAJA authors ported it to RAJA naively (RAJA-reference - blue) + and then optimized some parts (RAJA-schedule - yellow). + +- Better than the optimized C version! They only had to alter 2% of + lines and now it runs on GPU too. + ] + .col[ +![:scale_img 100%](RAJA-MD-perf.png) +]] + +--- + +# Kokkos + +Features quite similar to RAJA and also a product of a US national +lab: Sandia this time. + +They are much more open and have several major applications +(e.g. LAMMPS molecular dynamics code, SPARTA rarefied gas code) and +libraries (Trilinos) using Kokkos. + +They are committed to supporting use of Kokkos internally and +externally. + +They have a library of routines for BLAS/LAPACK/Graph manipulation and +a growing ecosystem. + +--- + +# Kokkos simple example 1 + +HPC's favourite simple test, saxpy (single precision `a*x + y`) + +```C++ +kokkos::parallel_for(N, + KOKKOS_LAMBDA(int i) { + y(i) = a * x(i) + y(i); + }); +``` + +This will run the lambda `N` times in the "default execution space" +you have set (by default the CPU, but could easily be the GPU) + +The `KOKKOS_LAMBDA` is to deal with CUDA requiring lambdas to have the +`__device__` attribute. + +--- + +# Kokkos simple example 2 + +Dot product of `x` and `y`: + +```C++ +float result = 0; +parallel_reduce(N, + KOKKOS_LAMBDA(int i, float& value) { + value += x(i) * y(i); + }, result); +``` + +Kokkos manages each thread's local temporary values and reduces them +in a scalable way based on the execution space. + +--- + +# Kokkos data + +Kokkos uses a lightweight "View" template class to store data. It can +be considered much like a `std::shared_ptr`. + +Rank (number of dimensions) is fixed at compile time + +Size of array can be set at compile or run time (run time must go +first). + +```C++ +// 2 run, 0 compile +View d1("label", M, N); + +// 1 run, 1 compile +View d2("label", M); + +// 0 run, 2 compile +View d3("label"); +``` + +--- + +# Kokkos data + +Allocation and copy only occur when explicitly specified + +Copy construction and assignment are shallow. + +Only when last view holding a reference destructs is the data +deallocated. + +```C++ +View a("a"), b("b"); +b = a; +{ + View c(b); + a(0) = 1; b(0) = 2; c(0) = 3; +} +std::cout << a(0); +``` + +What is printed? + +-- +3 + +--- + +# Memory spaces + +Kokkos has the concept of a **memory space**. E.g. + - main host DRAM + - GPU memory + - Xeon Phi HBM + - CUDA Unified memory + +You give this as a second template argument to the view: + +```C++ +View view(M, N); +``` + +If you don't provide one, it will use a default suitable for your +default execution space. + +--- + +# Memory layout + +Kokkos also controls memory layout with a template parameter: + +```C++ +View CStyle(M,N); +View FortranStyle(M,N); +``` + +If you don't provide one, it will use the default for the memory space +(e.g. `LayoutLeft` for `CudaSpace` and `LayoutRight` for `HostSpace`). + +You can define your own layouts. + +--- + +# Mirrors and copies + +A *mirror* is a view of a compatible array residing in a (possibly) +different memory space. + +You must explicitly request copying with `deep_copy`. +```C++ +// Create your device array +View data(N); + +// Create a host mirror of that +auto host_data = create_mirror_view(data); + +// Populate on host +host_data = ReadFromFile(); +deep_copy(data, host_data); + +// Use on device +parallel_for(...); +``` + +--- + +# Some results +.columns[ +.col[ +- RamsesGPU is an astrophysical magnetohydrodynamics code, started in 2009, parallelised with CUDA and MPI. + +- The developers have ported some parts to use Kokkos instead of CUDA. + +- Without much optimization effort they see performance only 2--5% worse than their highly-tuned CUDA +] +.col[ + And better CPU-only performance: +![:scale_img 100%](RamsesKokkos.png) + +Gray: Original code +] +] + +--- + +# Some results +.columns[ +.col[ +- LAMMPS - major open source MD code + +- Very widely used + +- Was the first major (public) code to use Kokkos + +- Most recent benchmarks from http://lammps.sandia.gov/bench.html +] +.col[ +Lennard-Jones case (Higher is better) +![:scale_img 100%](lammps_lj.png) +]] + +--- +# Some results +.columns[ +.col[ +- LAMMPS - major open source MD code + +- Very widely used + +- Was the first major (public) code to use Kokkos + +- Most recent benchmarks from http://lammps.sandia.gov/bench.html +] +.col[ +Stillinger-Weber potential (Higher is better) + +![:scale_img 100%](lammps_sw.png) + +Highly tuned vendor implementations can still win! +]] diff --git a/lectures/frameworks-kokkos/RamsesKokkos.png b/lectures/frameworks-kokkos/RamsesKokkos.png new file mode 100644 index 0000000000000000000000000000000000000000..34a589da1eda2d18651241e923048ddec1402fec GIT binary patch literal 237386 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 XDMY^Jhlr0H?91Y+jcN52kB9#URHyd6 literal 0 HcmV?d00001 diff --git a/lectures/loops-containers/README.md b/lectures/loops-containers/README.md new file mode 100644 index 0000000..48ce1e5 --- /dev/null +++ b/lectures/loops-containers/README.md @@ -0,0 +1,482 @@ +template: titleslide +# Containers, loops, and iterators +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +??? + +We've pretty much only talked about working on single things at once + +Simulation/analysis usually require us to deal with many things: many +data points, many atoms in your MD simulation, many images to +recognise objects in etc. + +--- +# Containers + +So we have some intuition about what this means + +In C++ a container: + +- Holds objects of a uniform type + +- Owns the objects that it contains + +- Provides access to its elements + +The means of access and the performance of these operations depends on +the container. + +--- +# Standard library containers + +The standard library has 13 container template classes, but we'll only touch on a few. + +- `vector` - a dynamically sized contiguous array + +- `array` - a statically sized contiguous array + +- `list`/`forward_list` - a doubly/singly linked list + +- (`unordered_`)`set` / (`unordered_`)`map` + +--- +# vector + +The size of the vector is determined at run time (and hence memory is +allocated then) + +The elements are *contiguous in memory*, so it is fast to jump to any +element by index and to iterate though them. + +```C++ +#include +#include + +void ShowData() { + std::vector data = GetData(); + for (int x: data) { + std::cout << x << "\n"; + } +} +``` + +![:thumb](Use by default - data locality often wins over algorithmic complexity) + +??? + +Poorly named, but we're stuck: `std::vector` is not a vector in either +the 3D spatial sense nor the vector space sense... + +We put the type of the elements inside the angle brackets + +Here we show a for loop that will iterate through every element of the vector + +Why does contiguous memory => fast? Because main memory is slow, chips +have caches which bring lines of memory into small high speed bits of +memory on chip. They also notice when you are running through a chunk +of memory and pre-fetch (or the compiler does this) + +--- +# vector + +Supports: + +- copy and move (if element type is `noexcept` moveable) + +- random element access by index + +- resize (and pre-reserving memory) + +- element insertion + +- element deletion + +Note that it *owns* its elements: when it reaches the end of its +lifetime, contained elements will also be destroyed. + +Be aware that resizing operations may force reallocation and copying! + +--- +# vector building + +```C++ +std::vector first_n_primes(unsigned n) { + std::vector ans; + + unsigned maybe_prime = 2; + + while (ans.size() < n) { + if (is_prime(maybe_prime)) { + ans.push_back(maybe_prime); + } + maybe_prime += 1; + } + return ans; +} +``` +??? +Default constructor creates an empty vector + +`push_back` adds a new value to the end of the vector + +This might require a re-allocation of memory and copying the contents - + +Discuss capacity. + +--- +# array + +- Contiguous in memory but the size is fixed at compile time. + +- Almost like a vector, but you can't change the size. + +- Only difference is construction - list the values inside the braces + +```C++ +#include +using GridPoint = std::array; + +auto p1 = GridPoint{1,2,3}; +std::cout << p1.size() << std::endl; +// Prints 3 +``` + +--- +# list (and forward_list) + +- Almost always implemented as a doubly (singly) linked list. + +- Elements are allocated one by one on the heap at run time. + +- Traversal requires following pointers from one end + +- Fast element insertion and deletion (**if** you don't have to look for + the element!) + +![:thumb](Use when you will be adding and removing from the ends a lot + and the contained objects are expensive to copy/move. + +Consider converting to `vector` if you have a build/access pattern.) + +--- +# set and map + +- These are associative containers implemented as sorted data + structures for rapid search (typically red-black trees). + +- `set` is just a set of keys, `map` is a set of key/value pairs + (types can differ). + +- You must have defined a comparison function for the key type. + +- You may want to use the `unordered` versions which use a hash + table (requires a hash function) + +![:thumb](Use if you either + +- have a large key space that mostly lacks value, or + +- will be looking up unpredictable values a lot or frequently + adding/removing values. + ) + +--- +# Map example + +In some structural simulation each parallel processs might own a part of the domain. + +.center[ +![:scale_img 60%](domain_decomp.png) +] + +--- +# Map example + +So after starting all the processes and reading the domain we might +have code like this: + +```C++ +auto rank2comms = std::map{}; +for (auto p = 0; p < MPI_COMM_SIZE; ++p) { + if (ShareBoundaryWithRank(p)) { + rank2comms[p] = BoundaryComm(my_rank, p); + } +} +// later +for (auto [rank, bc]: rank2comm) { + bc->SendData(local_data); +} +``` +??? + +Map takes two type parameters in the angle brackets: the key type and +value type + +What's with the square brackets? It's a structured binding similar to +python's tuple unpacking + +--- +# Guidelines + +> Each container has its traits +> That define the places where they are great +> Particularly vector +> You don't need a lecture +> Just use vector + +> Where choosing a container, remember vector is best +> Leave a comment to explain if you choose from the rest + +Credit - [Tony van Eerd](https://twitter.com/tvaneerd) @ [CppCon 2017](https://youtu.be/QTLn3goa3A8?t=332) + +--- +template: titleslide +# Loops + +--- +# Loops + +Three types: + +- `while` + +- range-based `for` loop + +- C-style `for` loop + +--- +# While + +```C++ +while (boolean expression) { + // Code +} +``` + +??? + +The expression inside the parens can be anything that is convertable to `bool` + +`int` - zero => false, anything else => true + +Consider computing some prime numbers + +--- +# While + +```C++ +std::vector first_n_primes(unsigned n) { + std::vector ans; + + unsigned maybe_prime = 2; + + while (ans.size() < n) { + if (is_prime(maybe_prime)) { + ans.push_back(maybe_prime); + } + maybe_prime += 1; + } + return ans; +} +``` + +??? + +condition can be a variable or a more complex condtion + +--- +# Range based for loop + +```C++ +#include +#include + +void ShowData(std::vector& data) { + for (int x: data) { + std::cout << x << "\n"; + } +} +``` + +??? + +Syntax + +Read it as "for x in data" + +Compare to python + +Point out we are copying each element into a local variable `x` + +--- +# Range based for loop + +```C++ +#include + +void DoubleInPlace(std::vector& data) { + for (int& x: data) { + x *= 2; + } +} +``` + +??? +We are making `x` a reference now + +Changes made through it will update the value inside the container + +--- +# Range based for loop + +What can you iterate over here? + +- Any type with `begin()` and `end()` member functions + +- All the STL containers have this + +- Any type where you have overloads of the free functions `begin` and + `end` accepting your object + +--- +# C-style for loop + +Familiar to C programmers + +Fortran programmers will know this as a `DO` loop + +```C++ +void DoubleInPlace(std::vector& data) { + for (int i = 0; i < data.size(); ++i) { + data[i] *= 2; + } +} +``` + +??? + +This is the canonical form for a counting loop, but you can implement +all sort of things + +Remind people that C counts from zero (because it's how many elements +to advance past the first one) up to but not including the end + +Note pre-increment - do not post increment without good reason + +Sometime you really need this - but should usually have a range for +loop for the simple cases. "What you say when you say nothing" + +--- +template: titleslide +# Iterators + +--- + +# What is an iterator? + +Let's think about a C-style for loop: + +```C++ +void DoubleInPlace(std::vector& data) { + for (int i = 0; i < data.size(); ++i) { + data[i] *= 2; + } +} +``` + +??? + +In this function we are mixing things up +- The way in which we iterate through `data` +- The operation that we perform on it +- The way in which we access an element + +We are also requiring that `data` supports random access (cos +`operator[]`). Not all containers do + +--- +# Example using iterators + +```C++ +void DoubleInPlace(std::vector& data) { + for (std::vector::iterator it = data.begin(); + it != data.end(); ++it) { + *it *= 2; + } +} +``` + +This is the "old fashioned C++" way + +--- +# Example using iterators + +```C++ +void DoubleInPlace(std::vector& data) { + for (auto it = data.begin(); it != data.end(); ++it) { + *it *= 2; + } +} +``` + +This uses `auto` to let the compiler deduce the type for you + +??? + +Discuss pre-increment (optimiser is not perfect) + +Discuss `operator*` + +Discuss `operator==` + +--- +# Implementing your own iterator + +To define your own iterator, you need to create a type with several +operator overloads (exactly which ones depends on the category of +iterator you need). Basics are: + +- dereference operator (`*it`) - you have to be able to get a value + (either to read or write) + +- pre-increment (`++it`) - you have to be able to go to the next +one +![:fn](Why not post-increment? Because this has to return the + value of `it` from *before* it was incremented. This usually means + a copy.) + +- assigment - you need to be able to bind it to name + +- inequality comparison (`it != end`) - you need to know when you are +done + +![:fn_show]( ) + +--- +template: titleslide +# Exercise + +--- +# Containers exercise + +In your clone of this repository, find the `containers` exercise and list +the files + +``` +$ cd APT-CPP/exercises/containers +$ ls +Makefile test.cpp vector_ex.cpp vector_ex.hpp +``` + +As before, `test.cpp` holds some basic unit tests. + +`vector_ex.cpp`/`.hpp` hold some functions that work on `std::vector` - provide the implementations + +The tests require that you implement, in a new header/implementation +pair of files, a function to add a string to a `std::map` as the key, +the value being the length of the string. + +You will want to find the documentatation for `map` on https://en.cppreference.com/ + +You can compile with `make` as before. diff --git a/lectures/loops-containers/domain_decomp.png b/lectures/loops-containers/domain_decomp.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa4156e5548fd14ab8ccf1162b5522e8f5cb244 GIT binary patch literal 159766 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

    >RGtCvN`|CXL=Ly|X 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�X{)KJO@3 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 literal 0 HcmV?d00001 diff --git a/lectures/loops-containers/index.html b/lectures/loops-containers/index.html new file mode 100644 index 0000000..bdd2a97 --- /dev/null +++ b/lectures/loops-containers/index.html @@ -0,0 +1,22 @@ + + + +C++ for numerical computing + + + + + + + + + + + + + + diff --git a/lectures/resources/README.md b/lectures/resources/README.md new file mode 100644 index 0000000..ea34ebf --- /dev/null +++ b/lectures/resources/README.md @@ -0,0 +1,781 @@ +template: titleslide +# Resource management + +--- +# Resources + +In a program you often need to manage things like: + +- memory + +- open files + +- GPUs + +- network sockets + +??? + +Let's talk a bit about memory first + +--- +# Memory: overview + +.columns[ +.col[ +Modern OSes given each process a flat address space + +Each byte can be accessed by its address, which is just a number. + +For most purposes this can be considered in two parts: +- stack +- heap +] +.col[ +.center[ +![:scale_img 50%](mem_layout.jpg) +] +] +] + +--- +# Memory: stack + +In C++ (and C and many other compiled languages) local variables are +stored in the **stack**. + +As your program runs, the local variables that are defined, get space +allocated by the compiler relative to the current stack frame. + +Each time you call a function, you start a new stack frame by +incrementing the stack pointer. + +Variables are implemented as offsets from this, so allocating a local +variable has no run-time cost. + +When you return from a function, the stack pointer is updated and +deallocation also has no cost + +These allocations are called *static* because they have to be prepared +at compile time + +--- +# Memory: heap + +The language and OS also make available some memory for dynamic +allocation: the *heap* + +You need to request some memory to store an object and then give it +back when you are finished + +??? + +Fortran has allocatable arrays and somewhat restricted pointers + +C programmers will be familiar with malloc and free, which is also +present in C++, but should never be used (I can't recall ever having +done so) + +--- +# Pointers in C++ + +In C++ you can get a pointer to an object using `&` (the *address of* operator) + +You can read or write the value-that-is-pointed-to with `*` (the *dereference* operator) + +```C++ +int main() { + int i = 99; + int* i_ptr = &i; + + *i_ptr += 1; + std::cout << i << std::endl; +} +``` + +--- +# Pointers vs references + +Pointers are a lot like references, but they are not guaranteed to be +initialised to a valid value! + +It is valid to assign an arbitrary value to a pointer, but actually +using it is **undefined behaviour** - typically a crash but could be +silent corruption of data. + +```C++ +int main() { + int* i_ptr = 0xdeadbeef; + + *i_ptr += 1; + std::cout << i << std::endl; +} +``` +Use pointers with great caution! + +--- +# Pointers vs references + +Pointers are a lot like references, but they are not guaranteed to be +initialised to a valid value! + +It is valid to assign an arbitrary value to a pointer, but actually +using it is **undefined behaviour** - typically a crash but could be +silent corruption of data. + +```C++ +int* make_bad_pointer() { + int i = 42; + return &i; +} +``` + +Returning a pointer to a local variable is a recipe for problems + +??? + +Because once that function returns the lifetime of the target object +has ended and accessing it is UB + +--- +# Pointers to dynamically allocated memory + +In C++ you can manually create instances of objects dynamically with +`new` and try to remember to destroy them with `delete` + +But doing so is a recipe for problems! + +??? + +Using new and delete throughout your code is generally going to cause +you problems, even with extensive use of tools like AddressSanitizer (ASan) +and Valgrind + +But C++ has a design pattern that can tame this - first another feature of the language + +--- +# Destructors + +You can also control what happens when your objects reach the end of +their lifetime. + +When this happens is deterministic: +- when a local variable goes out of scope +- when an object that contains them is destroyed +- when the programmer `delete`s them + +For a class `Name` they are declared like: + +```C++ +struct Name { + ~Name(); +}; +``` + +It's important to note that you should **never call this directly** - +the compiler will call it for you when your objects are deallocated. + +??? + +Note the tilde syntax is the logical negation of the class. Cf +annihilation operators for any physicists. + + +--- +# Resource allocation is instantiation + +A very important pattern in C++ is **RAII**: resource allocation is +instantiation. + +Also known as constructor acquires, destructor releases (CADRe). + +This odd name is trying to communicate that any resource you have +should be tied to the lifetime of an object. + +So the when the compiler destroys your object it will release the +resource (e.g. memory). + +??? + +Saying that in some philosophical sense allocating a resource is the +creation of something, which implies its destruction later. + +--- +# RAII example + +A very simple copy of `std::vector`: + +```C++ +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + my_array() = default; + explicit my_array(unsigned n) : size(n), data(new double[size]) {} + ~my_array() { + delete[] data; + } + double& operator[](unsigned i) { + return data[i]; + } +}; +``` + +??? + +This class allocates some memory to store `n` doubles when constructed + +When it reaches the end of its life the destructor returns the memory +to the OS + +It allows users to access elements (with no bounds checking) + +--- +# What happens when we compile and run? + +Add a few annotations to print in the contructor/destructor + +??? + +Open sample/arr1.cpp +Compile and run + +What happens if we copy x? + +Add `auto x_cp = x;` + +--- +# Copying + +When you value assign an object in C++ this will only be valid if +there is a *copy constructor* or *copy assignment operator* + +-- + +Copy constructor - when you create a new object as the destination: + +```C++ +my_array x{10}; // Direct initialisation +my_array y{x}; // Direct initialisation +my_array z = x; // Copy initialization +``` + +-- +Copy assignment - when you assign a new value to an existing object + +```C++ +my_array x{10}; +x = my_array{2000}; +``` + +??? + +What's the diff? + +In the last case, you have to deal with releasing any resources held +by the target object + +--- +# Implicit copy + +The compiler will automatically generate these operations for us if +all the data members of you class are copyable. + +So what went wrong with the example shown? + +-- +A pointer is just a number and so it can be copied implicitly - hence the double delete + +If we want to copy our array then we need to either: +- copy the data (aka deep copy) +- share the data and somehow keep track of when the last reference to it is destroyed (aka shallow copy) + +??? + +Deep copies are more expensive at run time but somewhat safer + +Shallow copies can be faster but harder to implement correctly and can have thread safety issues + +Do we want to copy? + +--- +# User-defined copy + +Of course, you can control how your objects are copied + + +```C++ +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + my_array() = default; + explicit my_array(unsigned n) : size(n) data(new double[size]) {} + my_array(my_array const& other) : size(other.size), data(new double[size]) { + // Copy data + } + my_array& operator=(my_array const& other) { + delete[] data; + size = other.size; + data = new double[size]; + // Copy data + return *this; + } + ~my_array() { + delete[] data; + } +}; +``` +??? + +Open arr2.cpp + +Note the signature + +--- +# Returning a value looks a lot like copying + +When a function returns a value, you might think that will copy it to the target: + +```C++ +std::vector ReadData() { + std::vector answer; + // Read it from somewhere + return answer; +} + +int main() { + auto data = ReadData(); +} +``` + +??? + +Thinking about std::vector examples we've seen and that you might have implemented + +Have previously said that you should use bare auto when you want a +copy - by that what we really mean is you want to *own* the object and +control its lifetime. + +Copying a vector of billions of elements is going to get expensive and +would be counter to C++'s zero overhead abstractions principle + +--- +# Move instead + +Since C++11, the language has supported the concept of *moving* from +objects which the compiler knows (or the programmer asserts) will not +be used any more. + +Examples are: +- temporaries (i.e. the result of a function call/constructor expression) +- automatic variables that are going out of scope +- the result of calling `std::move` on an object + +The destination object "steals" the contained resources from the +source object and sets the source to a valid but undefined state - +typically the only operations you can perform on a moved-from object +are destruction and assignment. + +--- +# Move implementation + +Going back to our simple array: +```C++ +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + // c'tors, copy assignment, d'tor + my_array(my_array&& other) noexcept : size(other.size), data(other.data) { + other.size = 0; + other.data = nullptr; + } + my_array& operator=(my_array&& other) noexcept { + std::swap(size, other.size); + std::swap(data, other.data); + } +}; +``` + +??? + +Comment on `noexcept` - this is for STL compatibility. The containers +will copy if your move operations are not noexcept. These ones cannot +throw exceptions so this is safe. + + +Look at arr3.cpp + +--- +# The Rule of Five + +This says that if you define or delete one of the following: +- copy constructor +- copy assignment operator +- move constructor +- move assignment operator +- destructor + +then you should probably do so for all five. + +??? +This can be quite a lot of work! + +--- +# The Rule of Zero + +This says that unless your class is solely deals with ownership, then +it should define none of the five special functions. + +This is really a corollary of the general software engineering +"principle of single responsibility". + +You should split your code into a resource manager with all five +functions and a user class that has none, but uses the resource +manager as one or more data members. + +??? + +If it does deal with ownership then rule of 5 applies :( + +--- +# Standard library to the rescue! + +The standard library contains some help: + +`std::unique_ptr` is a pointer that uniquely owns the object(s) it +points to. + +Pointers can be moved but *not* copied - this is achieved by the copy +constructor and copy assignment operators being `delete`d: + +``` +class unique_ptr { + unique_ptr(unique_ptr const &) = delete; + unique_ptr& operator=(unique_ptr const &) = delete; +}; +``` +??? + +Ownership means that it will destroy them when it is destroyed + +Obviously there would be a lot more code in the implementation + +The syntax is basically the same as defaulting a special function + +--- +# Using std::unique_ptr + +```C++ +#include + +class Image { + Image(std::string const& file) { + // construct by reading from file... + } +}; + +std::unique_ptr ReadImage(std::string const& filename) { + return std::make_unique(filename); +} + +int main() { + auto img_ptr = ReadImage("cats.jpg"); +} +``` + +??? + +What's going on + +Include the memory header + +Some type `Image` that has a constructor to read it from a file + +Instead of constructing it in the usual way, we pass the constructor +arguments to `make_unique` and it will be allocated on the heap for us + +We return the value and because of that, the compiler knows it is +moveable so we move into the local variable img_ptr + +When this goes out of scope and is destroyed, it will destroy the +object that is pointed-to + +--- +# Using pointers + +```C++ +class Image { + int x() const { + //return x_size; + } + int y() const { + //return y_size; + } +}; +std::unique_ptr ReadImage(std::string const& filename) { + return std::make_unique(filename); +} + +int main() { + auto img_ptr = ReadImage("cats.jpg"); + Image& img_ref = *img_ptr; + + auto area = img_ref.x() * img_ref.y(); +} +``` + +??? + +We didn't do anything with that pointer. Let's imagine it has some +member functions that return the size in pixels and we want to compute +the area + +We can dereference the pointer with `operator*` + +Returns a reference to the thing-that-is-pointed-to which we can use as normal + +--- +# Using pointers + +```C++ +class Image { + int x() const { + //return x_size; + } + int y() const { + //return y_size; + } +}; +std::unique_ptr ReadImage(std::string const& filename) { + return std::make_unique(filename); +} + +int main() { + auto img_ptr = ReadImage("cats.jpg"); + + + auto area = (*img_ptr).x() * (*img_ptr).y(); +} +``` + +??? +Don't have to bind a name but this syntax looks rather ugly + +--- +# Using pointers + +```C++ +class Image { + int x() const { + //return x_size; + } + int y() const { + //return y_size; + } +}; +std::unique_ptr ReadImage(std::string const& filename) { + return std::make_unique(filename); +} + +int main() { + auto img_ptr = ReadImage("cats.jpg"); + + + auto area = img_ptr->x() * img_ref->y(); +} +``` + +??? + +Can use the pointer member access operator -> as a much more readable shorthand + +--- +# std::shared_ptr + +Sometimes you want to be able to safely share an object between many +users. + +Enter `std::shared_ptr` + +This keeps count of how many pointers are alive: increasing the count +on copy and decreasing on destruction. + +When this reaches zero the object is destroyed. + +```C++ +int main() { + auto shared = std::make_shared(); + + auto foo = LongLivedObject{shared}; + complicated_function(foo, shared); +} +``` + +![:thumb](Prefer unique_ptr unless you really need to share) + +??? + +Why not keen on shared_ptr? + +More complex, destruction no longer deterministic + +2 other annoying problems with solutions + +--- +# Niggles with shared_ptr 1 + +Sometimes you want your class to be able to get a `shared_ptr` to +itself (e.g. to create some other object that depends on it) + +```C++ +class Widget : public std::enable_shared_from_this { +public: + std::shared_ptr self() { + return shared_from_this(); + } +}; +``` + +You must ensure that a `shared_ptr` has been made before calling +shared_from_this! + +??? + +Ensure `shared_ptr` has been made first by e.g. making constructors +private and calling them from a factory function that returns a +`shared_ptr` + +--- +# Niggles with shared_ptr 2 + +Cycles: + +```C++ +class Cowboy { + using ptr = std::shared_ptr; + std::string name; + std::shared_ptr partner; +public: + Cowboy(std::string const& n) : name(n) {} + ~Cowboy() { std::cout << "Delete " << name << std::endl; } + friend void partner_up(ptr a, ptr b) { + a->partner = b; b->partner = a; + } +}; + +int main() { + auto good = std::make_shared("Alice"); + auto bad = std::make_shared("Bob"); + //ugly + partner_up(good, bad); +} +``` +??? + +Show the code in `sample/shared.cpp` - same as above but instrumented. +Compile and run and note no call of destructor! + +The way to break cycles is to use `std::weak_ptr` which doesn't count +towards the reference count. + +To use a `weak_ptr`, you must call `lock` member function which +returns a `shared_ptr` that ensures the object lives long enough to be +used. + +--- +# Raw pointers + +Now despite having been mean about pointers, there are some valid +uses - in function interfaces + +A function can perfectly well accept a raw pointer as long as it +doesn't want to change the lifetime of the object that is pointed-to + +![:thumb](Raw pointers do not own resources - use a smart pointer for that) + +![:thumb](Raw pointers represent a single object - use a span for a +contiguous range of objects) + +??? + +C++20 has `std::span` but you can use the guideline support library +if, like most of us, not there yet + +--- +# Other resources + +For example files - compare Python to C++ +.columns[ +.col[ +```Python +with open(filename) as f: + data = f.read() + +# file is closed on exiting the block +``` +] +.col[ +```C++ +std::string data; +{ + auto f = std::fstream{filename}; + f >> data; +} // file closed by destructor + +``` +] +] +??? + +Python with statements are opt-in + +Compare to C# using statements (types must implement the `IDisposable` +interface - ugh MS Hungarian notation) + +--- +# RAII for files + +```C++ +class File { +private: + std::unique_ptr handle = nullptr; +public: + File() = default; + File(std::string const& fn, char const* mode) : + handle{std::fopen(fn.c_str(), mode)} { + } + ~File() { + if (handle) { + std::fclose(handle.get()); + } + } + // Read/write member functions +}; +int main() { + auto f = File{"data.dat", "r"}; +} +``` + +??? + +`nullptr` - special value to indicate an invalid pointer + +private constructor + factory static member function + +d'tor closes the file if it has a value + +C++ destructors technically are also opt-in - but they really are the +single best feature of the language! + +Please use them! + +Could also have a network connection, handle to a GPU command stream +etc wrapped here. + +--- +# Exercise + +Try out some of this with exercises/morton-order + diff --git a/lectures/resources/index.html b/lectures/resources/index.html new file mode 100644 index 0000000..3b8bc49 --- /dev/null +++ b/lectures/resources/index.html @@ -0,0 +1,22 @@ + + + +A brief introduction to C++ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/resources/mem_layout.jpg b/lectures/resources/mem_layout.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef3304462f290b850cc3c59772fe0d8478a19c7e GIT binary patch literal 29477 zcmeFZ2Ut_h)+ijhAjQx-5~>uD5+D={RR~2&=s^iZ2}QaH2r4}krFW1X5&{B-62U_6 zO7BXMUIZy3BHX;i^Pcm4_kQPm-h2P&fBye$9+Ju4vu0+mwPvlERpxa3bQW+!_>WykTsprK6`wd;kE@oC6RqQsSqZyN{Q#w%U0MORMw0-TQgj z*?W6jyKzJB=kNdgeJ}zbwgdnSN&M$$|MU)xgQK@SvDPv1Kgiz0%Lf1;@h6r=@A-KA zR(?h-Gb3DnFTeP$>_r?P@qXuT<=cOhr+=^WM|u1AI;O_z#J3^`0M5|f{<|{b@5+Dn zORNq6UGwsBc5?JTZ*tek=boLH<9YAjFhRuC`5Rt$ot#}Af2;N9_1~)e6X-vD`#Aa& z-wgmzzw2?|%lY;lpY#7|1TvSTr2&7@V%O+*9Fws2{&nxKM*q5Zw*UZ8+y?;2p8jk4%_)cUMCWRm2Ql#x`CG?2U{=^_~*nIM@XSta>Gazsi-N=wR2%0ntl zDn+VDdW{rHYDx+xy-nbBIG8c&)|T0mM(T1)ztw1;$rbe43Tbe{}Bc9x8ljGs)B zOp#2T%#h5A%!$m4ESL;MmP%GYRzXG}>mVB3s9&+wg*Iiq#P>WurD$7fQ{V9vZcGk9kC%y;T@)I!us)P~d!)c2{MP!~}X zsNYd9Qh%ob(umNg(wNd9X&%v}(^Sy3(M;3qo;`aObQW^f=&bYEhiB8zK0n)ecJAyq zT1HwiT6J0*T3_0D+EUs#v=g+ubaZsWbXV!D=zQqn>B{I@=swUL(lgOtq}QQ$pbw$X zqOYYNq~BtoW)Nby#$d}3z>vyN!|;w_;~e!l;dAQe?9K(B%R1L^ZtUDXkO?RaGz7W< zV}Tf87jT7iw2j7fk=oyndll&OfRjcJjYl39dVhZ)Hn!;E9@ zXWnLEWRYVrWASInVrgQTWhG-3X4PSJWqrb0%{t0@#KyyRjm?oQnyrFuknJlw7yDIq zM|Ko@CHn~b5yyEBO%4~11dck68BTIeF-{}Sdz`tPZJZli%v{P`_FO2gYOYCcQf@JB zW9~riLhfGfeI8yOZ5|Jv44xLA4PI8>tGr0wWZqZ2t9(p+m-(FelKEcqt(|8%f9<^M z`SkOx=ePN}`LFZ)^5^sS^M414fMB4qWhbk1y6;+>#QM zvXV-W>X16Q1is{Ysp!&_G^4bx^kZp)^cNX18GD&5nPFKvSuNQR*?QR>IdM5hxm>w% zFcVlG90_g)|BzRZ_mZ!WUsVuPxTTP-Fs8_?ctbH(u@gc8QG!EBsgNt`uCEzbbIm;cCg%L*_{y_bW2APJo21=t}lTj06DE_JCK!_gQ#I2krc*Fcm@ll^jKR#ttjz4I zxrTY7`K*PM#RH2TOHNB?%X%v+D>JJSt9@%t>lEun8?a4;%_v+1?ho&><+OFRZMw;D z)9z-?Es9&_w=lPk?F{V-?Di2lh-}2Ry}Esx{kp?dhh&FUM^(o}$7Lr~r$ncf+p4#d zZm-_Cawql9hO@eJrt=Q+Ix-LW)y2@I)aBIG+_lo}jN2`@26skx7x&h?ym$TY4tR)r zM0m`4DtV@OZhJw!O1w$D;okK=%tWQw>nrLT?mOpq*)PlQ@SfSd8h@a_yMOO}vHQ{Y zmjko{iUY|5?E{;G_=6q=%{{pGAU~KS7!lkYA`lW5viMN@A^H)`BbP^gk1st=e7qNG z9!dz~340i}5Uw4Lji8V4iWrMjj?9Z9k8+OckCu(jh(19%pt@r&#iYg@$J)ns$4SSf z$DPJI#rHpvf0Fx@@~QjN(S$1r=tN**K;lA@eo}4n`D9e`Udqjsu2i|yyfm6L-?Z6u zz4ZDF!HlOF$C-CBN3ztiDzmw>qqD!}IOGiGUd^q@5(zqUZQAhnRP z(64Z*$gHTNSh2XQgtH{3Yi*ZXfg-fXS991|tKbu+i}`o3Yt(hw+sO*NL4;zsc`Y52q=nQ8VXeQa^BiDEN5cW96*;Y}1^^ zT<^Te{M3T|!ulugPsfX4OLR-A%Y4gaD>5sMt6Hn?*R0nT*FDz1Z$xYYH?y}yw_bd{ z`nh-8VtaANYv=S!>@LS{>7LwP^Zt$f4+m}s-@l>`IS$d^6u)&GnIA2GzjsV^oc`m& z55fubWct+Y^z?KJpbj`gNl8UXafYawsHxA;&@$7}o;^#;!N|nG%)`mY%frddeO~aQ z$a#>205`X&!Uc&-(sFWgd?FB4MH!WgvT`z~Zvbb{kY6S0Y!V>gv=zYp+d`9!sPund zB>ukCpdzQBBqcjTLVRj@4nRUmPDV-rq@*MvC8eMvA^s*KC;p^joiW`}l?>6ji@yy=DwcN*O#OVD~6-z>{4~P*zy`x@nCNSi=P2;OOl)zb9WNLCm9AXecV=zp< zk_xz>w^}~8Dgiet)YZ{ZkE0gK-jpArS;4tX_?m0NhB4SGrp(bPFXfmZtl24`UCIE$ z-Ifc(-kf7A<&H>BhSpgZ35@dMy{N@F&0k&(0-@ zFF31Hz?mk+Pu{He&2S-Mw%J~g7!|D9>*jyA_`iuq<=^p0q|6=967sfmEb#wp@+ z`Czh`tM}RQ8Dqh(H~NTM4`~JF_b>$;X!R-J6&K@?{QqHsHLs_}fnO@2|Y&+g@UyvB#~lu(TPBQDZm5n{be!FD;RTyG)+?6ehl{ zFQvZERY?^Lt@b?q0}|3}7keRHIC{hiqit~!H7*fJl9>lw_pOE-F(Dv+7;k^qm^?L1 zb%S~$=56W|Qrb_#?UD4Ca{_qq7=q2G$yD2rI=9pnHvsu}iCx)bTTI9oLzBZN6sLee ze|W(DDd2$1<<3dt;_q8L0Qo6ESvkS{!ObQ9%<@;8#&JtGg2^v12BMuF0;tlnQ2$f1 zYSa{7!kTjSMsO7M%cOTT_{2!xu*PO~G;D9ABC$X@Y)YTzJ^3u_>fxRtZ<-8?NbuvT z7U^V4X~iKPReAwCKXa|71W*HzJ8pcbfv2i#e7Az~!O)syo0o^3*;46*X~1PVmJ07g zc%KVD-l`Ak8<=unigX*!@=Lbxp}qa6dP`D-Uca>!X5Qa2YBHnvJmbxV8I+vvy$-8PIaA2cvOry$N1U4Wp;o>i75d8?`qHexfIzr%?c6N}3F>ZM0O!_~J?5gzvqe-`VI_ zrVI(7o&7b%JojBywGIn+RaFN?XA7{uXMu!P@m7a8XDbX@>M*sgVJ_UJEtc)hRdoF& zr0mi*?V?t`VOn}9uVAZ|hk>i0>0Cuq+(a?#rPb8hkRw5yAkm65$vajzLBO1p@`N{XwZ;l|smJjb)65IyZKpoIAHQwOpM^o#TnQU29A4v5V{UA1wRk_uSyEr&jz%vc z3oYWbo#FD4JOjCp!J zdy!V5qX3Zr=oyrBiBDJR_y|G$rxjGIoaE>Z~0Y?f}Jr zfl>|{ulLk>3nS1l|IKuak@L{NJfF+ZH^OX;gv3{8ch|ACoC*VEFk<_U$Yc}D{nrAE*Njb6dW|+L6ZjtcS-qlQ-pIY z(_EVj)XeE$`eLpd^=zXrFh0ENtI1n7cPY_~v~vERnsY!scseV+y|F_b`(OwjreHyY)5nLr(KL@5WZWl5T8P z(BAL#_%Kx<2FKJv3kpsF-k=P4ky*WMG0friA(uzCnO%a9?ZK-QYulc8vnI<%tuMqh z{CY;jO;_2skgCs@N;0Usr!a6}cZ^Fx@hPAHE9W-xlIGC=#KuJ-ISe3^{(gicb>B+FZv^p3r3xq=&MeVx~ zy~@T}ks|yzi~IUCUPWCJ;cpErM`4``W?ZANKVrL6ta7x{T-ywS&2-6fV_kL9`@%+i zQ(RGt8chji9|!bsWiczpWKQ zu(4gRu=xq~TIbVw!)BNCPu5~$;uWZv>UKw&m)CI~O}d!QciZxFisdb!m8Q)HVzo_a zd2dQowj^3!Ow=cO?;qI|4J*5Z@_KPA)UKe?khsAW^y}%)5_4yk3brzsCC3TnvmzP|k zqmiAP^+;TjesV!O>go6t1_bY^x`>JX(Ut0sXoQ$_AGK!3pD)(eYn}D^V{+bkKjJ!U zjZ0t&srvlC5Pnfj3}**+obJza&`jrXrAD3~@4J2G&@VucT=OLhTSm{O#Gwm?-3D)s z>a|i&18`x)iO==S7atA2r;ZM9-K9q7bgR%AqxIey+&I)JORtRMICfV;2ByGz93CXD zVSC-SM`>EdRh8&G_kjh$^tSWIM}_VF4Z!jTXXXV4~u%QLn+=Z01fo!_tubjKge24 z6-+)qA?nNSSwwd%WNlF@uD2!Zsnv-zD^EHK6YT_H%IVpZUde!mKHs;cFiX*%-+d4E z@bn+Py*fOC-0&V@Ltxz0?V>%*c-zlPj;!6|nkO9cEo(%U!tm}8sRxqF+nmu7g>Qx@ z!(Qy=Fob5NqB`H-Y+tBI!y8%Enoqc*vzI zuM_c4*IW+$lA>2#^vgS|-HmLXyk9iK+GKZ+fsL#hSA9&!G1=XvlAWoxhfSYrc=!kV z=a8!Ev~_fSI@`&qYLOH|hvvl@bXMj1*9o=Gcc*Hn3|tZH;vkVAV+3zm4}*i-kDDt^JHOI%Sk6j$2{3Kx3rj=-zZ~ZK=1vzQ&f(EHXvSDZneT zSzoU$=+3(Z&mog(Oog?;MjFi4{%*u`Gv2rBvcsJBm=~-R?=EXZWA*nwH@LYOENy3E zN=#=nM~o50SFYJFE%8-|Pw+~}dA}MN>;S>Tzq!U}hySC0Iz6WI;yj0DSrSE8$c^88z&spHzT zFiYdY0ZUTPax;1HLJd^8=JF7(JF0fVXUfrZ33j>u36bX|&@H(Y#)s3riaHdP3qZSx zC=5E)J^?cQYKS+Q$ny-aS(vkFu#_s9ITexTgLCxFDmqk+{KQIzWp;SUTG$B)+JH@A z?rDEoGZ~OZkb*O;DaGOw3_4@PdO(=U(RWQHV#`gp z3{r)h^g_1TZz!7|^ks~;c`_YuW9WqVTU|hScT}afxl86^jbF$jW^>9}M6w}#fuRAq z=Qt*U881CI7q#CAHMUImHuBMteHhj!fxtk%B80Zqi&Nx1?k#!h{yD5)F%wd8WgPl? zUWAVn*)`7z+chu9bUyVr-+uaC(1j__B!MMOzbSKfS88E0D7HC4@=ddMHm%z^6kTkoxr5CUM1pDLrmkd0AYvR|Y|4;B=BkND-UlR;Jp?_sM{)GMi6{#te?ce(JEDnmZ zDzlHh;)H;~6)-JKsS*fl6ZP6XWt-zqto#xelI?0Sc064QiL%60w?3?f`B#=!i>ZY; zGE})zXe?_(?3y)UP(Oq5yxXgP`h|XJrqELz#Vz$Zh}cFV&3BWTo9%9Ky>_+LjdIR2Y26Ph1oye z_t$tg$>{@pUgd#t$-WXIg;H0GX|w$%u!>b+1niFQD(Q7>NIiO;4><*tO4uEyFzhb) zXu4e3hTkI{6l3mgMEY0&ofr{h#k^l3+&HZ!o-!QNG8Uio`R0b`v;Un@F(EIDl=t1P zJ>TNF3?6iJ-iRZ;8H%_QP)mwg(-?lawS2Sggy#AmJ^UK)=MH*=8$*?_^%${hR<0Xi zikDz~_pqDPEG)GX?i8?)<4yc`NxAcXbn#0hCV4ZslcO7`i1k+!1jkm%Yf8fRY* z^D1JgNrT~zJG?>OB40m0{G*FslX~QnPa?!+8aAV(1@EgeXJ7))ze%5CCwz!|h{`nb z6<%l<+BgL~PW+<_z^}6Hg%pL%_^_RNDes;0F94v=9iy0aaJnpr9UmdtdiZT z;~yVM$%wb<5QiD>0Ns4H`3Gi$+KcSBREIO1$8DgYbBaUkQ|lux&fc%)cc(VM?1f4m zOH8dMK04pTigYsEI6smygAr@?wyChFnBGs{X&X7Rm?gX|;`EBUP3^S9FRn%^A-Onb zM3-v2inpw1RuBC3^o(*8y{YFf5Co4?j0JmZ42{t z-(NITwD!D2QABfu7fz6vvR&&?HoT%-p65vPeC)N~uTpz65+&DNRIDZ8U%i>`Qfyb% zH(25AO2{2)8h?HJVQcfZp-5>bP;$X_9T_u@RvYaY~^wOS|%cy*6h4{NiQ!;|NzX}+c z4G?`i+ZP5FV%v*u@d}JMJC8Ts3!6Q}vajD63S9FJKJvb~35ljX1vJ;}Q#&h~9?ff{ zqdN6%B|0W-(9z>nYm3WENU_RsRO#(F=^SO!!Slmw9>N80VlGYi)mp}RCv=Y~{Uj|t z+ex8E$Q=G%XXs!uw>iqe!<{e268$zSMv86|QESCo2k&usEd#!SO<~G_i~w(c+~*2C z1<+LlYw#v-A^rPvbl*JP@$qLeD1Ajv9Tw4!N35c7TE!`yX&ZyzgH)F3P60;sSGFgY zKV4hZrIj!d;-kDM=D<;LKG7g|_TyO%I32RV1X`X}?P@*YCni=FOC zGUUUe=Sp}kF7;O7yc#&i;BpOJE~=M5Qa7IhhTR#CuI0OO}gO&ca5p)#EdL2X%busAhDY%nB`HnLfEo%5+h4wM-tHh417P^Y=%u=L}F|~ zk`=k+N-7NL!?6!K2uYI4XQMrWL^$oa9t7arF5a8A4SW!h1ibCX(E?uWR{0cXx64?m zrQrkdD}=em)L2hqvhHs>E))F?6~VN9C{{?hR*CVV*rmeeG@q6nFkPH`vbVLv;8)45 zz3(c*!lM1zkgy%*8OC5;q5;5KtL{xWodqF%tT+V$+J#(h`5Y!2$gp6wZ0tPfYhl98 zRIv8s;tZ=>rLTQXXSNane}puJ zP%9NdGIGzVFEmHQ>PuVvoZ^1}j)wWKqhWrkq5pR)!2jfGBWsTrn@6{UpsVEH7wjnsixs<5W%J$Df3XNHHP= z>PW$79K19?9HiCStr=y$fXui+VnbjO65EmBE`s&7t>CTEFWDiIvy7BaUKS zjZkv~+rxzejt&TY8TdPcK7Op#qM3^Zq3K8Bft3lOB)hjh(?%-iZu7A2N7L=&cQkQc zT4Qu~DL{n-?3-tSEKzN~wFSxu+pd}p)6|iwuw%Wz_|@uUYV!|t!g(^wdeV@5u{UP8 zTwHMJ<$i0i0?S&nl`ok5Ht$gMp+P?ENqA0+k{~1weNZHIJO%~=>!LQ)<4zv2C}YZ1{TJDfd49QhT1;M{xG#rV<-R;6ZMCVWs| zr80Vi6q~D`#_R|#j=CGY;>qDVQ5I9hazFEvsqNjd^M4TPzi%2Lb;)H3FIr6gBp2lG zSvs$t6mbZ3f%`Ua*BP`~bl~rQ#*9{@dk$5d9Aar=if1)rX!2OgfX~gf>HG-dM*X!1 zadfci$x$-p z)F-DSzoqrIc&P^n%nMqedO&cA@{KgN%+!(g#l2Co`6MtmoYW5=EntXuEK2W8$m3m` z5)*E3>JQBE2~0h@UwdHPn3VB|zACn=s8!M9{PnKOf;tdI(a}QNWlhrv)H;~+scYOx z8D6r^GP%AhS4=O z14g#X^1Z|rv8kr@2El4A&!(zHRuKvqT1|R>UM)}G(Wf|qWkr4E`5*n&u9F{ z)PHC(Z1Maph@_>mk$(Zsu+M&_-uG*mic9`UA=OvMqY3>U`R_J~Ark*L@afsIv?Sh=qEcC|(>YILI^1hOrNPehbY68dj_zj| z3GbJ`g_3t|@uw3*$!`)$ufS~ES`pzyw|0%n4sE!*VO)>;Q&*>&upnhsMpDoWDyDbw zAURi~`fJRCc`tEUe7b;gKrYquKeL^mjuTS#6aPobvvNk@GJH!|XlIVZ4~uP65R2Ow$R z_hvsiXFSrx^dj!)I}E?Pv@ks}UX@>x1x6sfi81a*iXu`nQt~bLHE}~bJRl0I6zP^O z?UA=_@0XB+i^vTxP|2|AWJD#!f|8$7kyhEzd4076WkHj#YB>~y5m8RslpEP-FS6_9(`()J8hV#d=3#U8 zd{qpvQ4kz8bG<@CKdP>}VyFf{mY&_7yvlvgu-WLAK29wd?!>Q(yGtIY5moE8)^rL; z-Ey$?Ihj#}ME5!yBy{*33$c<<4vQ>~BA6yex33RhkGXvj`|+FmlIF7E=1{1PG)nYK zdVvYOcD5O8X|DVZ<1y2iHIN%aNRTU8Xc!~fSwnwI7yoMwP}XxYa_9F9i4Lbrt%#DSMKi*UN@p@aFJ-0?Y zcRYmdP4<9JX6Y-r`@wWExRvp>m@*S%cZH1Lci-f8{qs2bmsP!~jc%WpH>!R*%0=8< z;}SF-SbQ9yNYtm{PcAHOWh>b6f{bL9Ythe7T-4rIt-**J znkdxMd66H}z4(exvZ9B%HQ?OwP`ZxnF`bmsYB}m)y6F71aT;tHlkw-5Il&(f<=8{c zEliulNpokO$!E0X*4Alpy^bDtjdYmf{voMv2-CvHp8^_g%*^WP+v@p7 zT{08Oi!{!DYVYJ&%74{W&__rM&K*|`niK?UR8PQuBo@dm3cHM#GMm(BT^l(eHH%}F zQNPU;_QR_)NpwY_S`4XGQ!`msdQ>*_Ne`z*57*V}9X@PLeh_4A5`)h+*Smv0>63qL zygAj^8}Slg->YNNjam$LOIQaxTcV#j+FeaSHuMy*hMB2r&7hYtgejkoZz4yPy_L+V z+S;miOp8R{7mwyM#xSOiwm8V0Al_QU9JiV}^>}}Ds{9@sbTb+>|9P$!*&t2wRG_z- zQPZ9UM#zvG6)Qd{5UV|ya+zFr$(0TkEw@vNd%L@*(|4Hh!lAx-Y}rUpfQ3S+?#&5EFV`x-T-UTdR`O=UykYW21|c z$vn7>Rh)Evq3BjS67DzSj>&`!bP~SvzBOH0Q>=Iyz0-QY*zA4j!nX5!ys5am&H z-uFqDjF|&9yxj@573QDlOO=c zXKr*9;JfOqCCUOzuP8@(=90Dh2c%izbcr#88!e6lTgk5FmiLfa7(7Sy$6mx{(;mi8 zWxXE}V89=JtTrf=j|ip-a59!~hP>jZn>L`?3BPV7bthHB3kh#ZIcbiJU8^Tt6ezaq zl_C|)avHA^UI#kla57_!+@r?aoL)+=;Jn;Md&F#4-}TRP-+s80%Ue9^Vq71g_VUt% zPhc^ZI4gWI0fW&J(4vtN-Y(IQY|*od?a;G_&sxi) zS-E&PGuzd)Awb(Ldidzwa36e+!*`(h#$^_<@;Jl8XDu5E>5)8x#-5H&ELlbg#@sC_ zX-hB-FWc!JA2=GFkskOelr=z%uSHCn;Q=Mno~dEP9lNa~TFVu52rasse&v4Fs_7|U zzL!?@ZT0e@x;;y|`h@u*d>rBE)KAb2LpAfl1^x}N(8 z%zA>wCTheBH^8EQ`=m4E6!7}%PUeHp{^G;IM$3+w_3go$PcKDqMJli{jihJO^c;wj z64RJ&mKk?q;sW3-as`lXT=mV;x9svzGP`=8Xwd`#KPW3g`9R_hCJMD~+Xp3@ARq~h zYgk`P7#lU%`!4ICm_=fhW=?MU!k|QnJ^?Obr#irk^>xcF*9KWaQb1NKsInTgU68C$ zy1#oCI9eL!S4V$0A}uY(D3nLYj5i8XWpv=piPP}wtI)#LjypE4i)M7hub8a9d1vZ0 z>TZcSnAp(Ph>FVcYp~>~&@imx3A8vgG!qj0*v7-koporyFV1KnK44^3#mIcGf#@2} zvI5_A)CPCCg};gUKiFD?qiva48&TDVf)JJ%u$V5HfSTiF(A6ihOpje&Y-bbK0Vzfo zGwrrMRvX-AH$pShj=q(VVWDm~8Z(`JRVodUTiKb8VPzw07CR6{&s>j+iYeyA_M@82 z_&+~u4n{?9_wgw;8RJm91>Teztu>}d(_~7mu9y>UQF?sJ-l)Zgmfbeo2SZH9CxJVTS+b}XBBmjYIx?uAhmJrQfNDCrM zZ}n%OMXW|iufIt5_MDZr=!^z#&lH;-!0Z!XQob72lk4ujj1~;ELu)U(V~d5J3a=)v zONt(71PCg+RIHZ5va!vouzpRLxfo`;H?4W^zMhdn)T|CxY}aFu_I^CeIxZ?sLtl(w z;@Q}B5Ym}WtkGz6A!?xuyY}VjC@pn7%W6IDp!jD>lk49Gbrje=uEFlVT*_G(Eb^cxe0N0!ny?n;PtB>&|)YiF9+5Zxs+7U2LvP zTq#_B_wBM5yIQDTI<`HzRGQBs;MD_=>HrrH%m(Y%00XjFAAmq^Dt6^8kOg~I>!`e|3 zDh4V}bKWjkETMa*B>PE}5q;QaraG{%4HqMZ@G5HhC7U&LqEiWysmuN5;@d$fyoI`{ zg?AFs+crox&e%o~%1yn=N`j@?cNVFGjD0;|q>DwcZs?8D?cuJA3^8x!3KX;=#JMH} z5_+64B_k%J|0I0+GNYyTqcS|T^Qsab6wfENP&?jp$Z142Z3z+M%%QVH&Tc-tS6WIp(Jye56m)* zl8dUzXJp`x#k`$QG$QGIXXMsuQv9_s4V@UwBFs7m(vMI9M(j96nysD_o>#Ay7sKYa zYCtClMwxM(OW6qbB7TzGL5*P*MUh3jDFdZO_?OIeFesp@xzHhODF1Jv3uwZW0 zG$}Q>UOybel`v_9!5m;9-RRL7n7J7-Kd^vrves&jbGk8%CXSQa$z)dE%Fn(MyLt58Kq`?Rv}PwGMHx7o`bG@=gO2eE--L^og>p+Iuew@xX2 z_r6Q$ZS>#^bbSC!a51lf$qpIu$uAj+X~M*NVZe1T*hn#pJ33OwFd?mEsJKXof7@&D zeFh~HSZvka2w3JjS*u~-E%ATPDDv-MwSP zi@lWv_L(Cxc=2#yyCFw`R}36^M7f;;XE3g1;vI%*!UJ*~mNYa?wJm4Nj26mGE<8cp zn%rx>zZl0Vr%*oK+!ig)$z)Sevqi`xu*iKFt1c*+vGpW6iRY)gb6VWno^HqS>LMgq zJ6uLkUz^S4x1vxZFH_fxZAJ?~-VIFV(6q#faDz7eP~J)g;H|@VG04ommiYLMKsIUE zI*`r82sMM#G~fNqJqqdoXIp2O)VqyW^8yRI^fVujZw6G^9_lX53;?a_yk>l`nZp_e z_dv*1uP@e@%Err{+mFo6OYm{*xS3eidk)MzK`eDtAM@#!I z*!lG*tfabEY(`%%sR!CbI}Ue918vHB^A0BT^w7noB~H?;cl1r>dOHH0@V^jKxUG|4vz%xyjH*&5JGEqLy;d#sMfHvju!TVNiU&t1ZYOT@yLur*2m8(d8vM z%=%*S%O@q;GG%(``G665;{d-TNq!do+G#${_z~@9r!eynX=`kjS&rXphqP~mx)k=! z-I{TfmJ96&Nc(zaj0nq4q8$s?cY@9;=0U{<5avoq-6DFqBQrRb<}-UYF#4|^CvH7z zQ6+FOim77hH?+lEv|Qk*O(k4#m(&r_F!I~=Usz>-I~U@A7PCr8p_^n--cxH^$}g@= zQmI|b-OJjBRO%*X8;aR>mxZjAaE~&#B=u0m%^jI`kWfEAzdd;4xc-!Toox?hn0Q$EqZasa6q4x=${BF|;{oU!f8| zZ0S<mvEa_Vytf;$v7T@1tk;!i*&YjjMTr#3z;Ipi( z^7`*jx&Q#EcD`f0_x}jdj{K(~+P!}V9YxFzr%Kx@%g4BvNfHkc3HsY1BF;iPn!IYzIK6PXojfqfvACSfQ3^|4(~C;*xAKrXctWs1 z(N(N*iQ;|Hqk2UGcb}CF4j!*zI*H1#^@W&C!%R&7W_U!SM@;|zUmZ6?jpuD@S$=gse_uG| zY>deS+mq(hAqCdWN8_)Az6&1&jh+JVugJ`yy(;!m(po|-!zg_v!M4l3?;V#GY6XO5 z)$HfNW=e%AHeZQ(UpNf{HZ21a@tNEn*=E8tx?LfXl9-Ac@@cybG%r_t4`Zr^VkRfk zU&2_7LBh#qWv#vD$bF>Wovy(Pihj^2%{Uq_S;vp`g1t>8MqA#Q*a`&%3RMej7+aS8 zGK#DeNPtl{j59Z&95{o9EzgK`G!4iRWLjNY%&W|>#9dzFW>en@dwccXaY`g=$@z=1 z$82-#L06}m#UzjocniGwa!09r_2&B`4Er&*IAd7}65*dYw*Vwq9vbkK7aM_2}%_1~5jcS3~ zQk2DiI}xF!3b9>bI=6wr)uh;r2}f>PgH~Ltj3QstmsrO`}|Y2Z@f! z?_R8y9Fag{eN3Tq^8XiFHJEIQTd!eX9alJ`V^V0?(^EA3X+-n$^&6aJ4aH~_c0$e6 z8#Z-N+h)3>+2Q+5?}60g9Y-0Rnq7|^UNf&OU=PKH7Ph=R#33tz@$0gNzWhc!ACvFQ zDd5I%ywvdJGEa*p{jnAgm7AvkpgZSG8g(grZ=>mTnR>hbheDm!8R*37F?&uX+%-=3itO;f}1+);QH$Q#wMHi%wo zo!qR9d@u#VloXGroFg8t`}eso|AN5|Kpw(y?>*w3ruw0y){T4Wy&rXnXHv1=`kSGx z?A_eEANP;mjqp&?eZHBo2ZPSXIb(19*LB^5MW~}OoOYd189tglqTP4o)$m=_ z88=ka`t8Lnn)Qp3EJ-FdemGSYCy}L*i&Y@0ALvDW1EgE^OC&b?CD>B9-YPsQCzJg^ zEh~ENz3`~7a1OQO`938C(?{S&fIu2T03lDbfvf{rd!A35Jx~6!peMk@ys(nA`?S;_ z>4O!uG83zM{}BjQvj$6y&h(E*`z~o-$uQ@rzF(I9Vj?-3(o1EnPc7^K!ty>*!nP-K z^o0d7m)T1U&X9xfvb}v+)Uti6)x0(3X^`k@v5ER9vwu|9{qJmeKmQ;FNkJE}1$jfT zENhlb!ufvf982_#+zt?dQ8Q-3+iEn1&ZIeB6PmwUZUF5)1u&-v)3T!u6RR1*dE_v6 z0-B!yneJXe98|nxh*)w+#5Dbwe_JS(Rdm_x2Y=3d+4S(f@p0yNlVaJUE$~W-(|1XD%8Ws0=NPIw`jH*h4U* z$|f^TmS}WZRO4D>XNcf7TuGZ}SlU%|*X2fDnvQ?Dch*}0BmUya%)23rbvfoaA$83e zX?s?t?ZT+BK0R4rQ-4l4C&;-bRk)-^7i`29?&Xcyb(3DXf7h_(5Q)8-h8Y#Uuupvt zS`I0TXcC(I6acXUfq@vph&f`$h@nvC!^3(?Ub=LL`zRkC7aGCaV0-nz>}4011a#CV zb6l;rtEnkWvpJzVfVnXZSY}}6V(f~PA;%lsAK-@;NcWyta}}crHs}~fvk4Z0>8?of zi)cN88!go4xVDo1?VCMuG98`|fQp8T!f}$ro0~D-N=<2UvD%@l=?HhH`-yTN&OQoa zs{$#9Mm(P?gJEK-%nmdre>Jq0c1WEzGbr(M0Em z&6&HL$l=+FWZZple}N$)G^$(?B30}NSP0jk;ol!6~TRj>hGndVxFTaPI#-hYRLp9 zgw?@_qiIuW3vjWC0SKEL_19T*bWAlsn+TMj=|_UC9j(PKw&6E1oza0pu>tO8?=M(n zW<@y`yz~4fYKUmq;oOq>TDad9iydG@v{K?ei*i`SW6pO7Eyu^~$Te zMra&-A93_)VO_C~n&Y)icuV4uOI1(wyC*5cnM^!sUs!Hk5u)BOzbpW6x7`b_uS&5l z+u`{i?VWj06K5aCt@ReLfpUr{;cB=vK!5~Mkbp=a7)ZE+sNt&NkcL17R4OVY3c(;D z5U^?x$U)GAHy{xxNCYH+a)cuY3d*4Zma2&0(G+#2edp~l&f8A^aA)?}nVsEdc7D&Z z&$Ih|zR%~m4#h+lG?Pf=;2Yk?tggANuo?ptw>l1^tng^4wrKyN5;TAlJ+c%t>!~d5KEWnh7qftt{EhyfPg2)!rLI47<#z9@ z4o5bjNm5wIYSwODci5h`yx@RQ0;EiIAU3Nf@kp&oF?h^yQ;XzAZl;>H#utpsWWcnG zFas{)a33KU7^E(Ug0!troAKt_OsV%J2u;{|hR}%;2Ewg<4 z7~9v^zYd zdqD!TvIgJk?xP+uMOhtu2haQBzRiA;NgZVhV;cQpaaP z29f8|F6{%ik62nvr7l1Kc533(7r>eUfX)L9rk@|MTTs3p8C(rgF4=CfG$>4=Yjo(0 zDsfv|1hx4Ths~eJ5k1{ICHU51u@pW^(L5SjEZqZo< zA{@@H(}V`WMyRsL;l}r(yoV3`k;?qPtW56;=w14ozn~8UfcLhAMW?AR-%A~ohW9%Ud)$exc7!-lZdx}I zTLpIBvWyglIzm=~A#C3Mntf#|VN;`ykIDDVgSHQjYb5xUCFv3GXDRF-#Z^sabWvQv zX|z-00vjas(`EliK%lK*N_%iHr4?-S_|r99AKLNyh%5@#%DLJHviVS%$0=5|q&40@ zxqQt#!mpv6@LRWtR))@(-TyD=;jgO9uWAf(?=1HnGlFflXmok+P5z5eWVy8Uo{D^P z`r)${o{_yA@(=&g#_qSrfhu7p!Kp89aU%iq8I`tnsyCVm5#`kJ%h06h*DCOxr zV{2Y|~rr4PwxLHs^C zPR_Oei3a^DHp?=`u!y-A{xv{ZZ$l^=3$-?*scz@zta<}(Hz)}M+W^Qc&VxFZJ=w;&*}AS_;8tZu#|6cv*`$zjz0oC~jR9?Nc>%@|6V06dsH>lBJDTmlbv#m~*Mj zjOdIR%c6o64@^**{I=ZC0+J}+zn#1sfRWpeMZnmRef`yn0eNiSa&x{8z6h+2Fc@l{ z$SL{aVaMh6Jcz#rPtggrO=-Yy}}BhTw?_9#KPx;fn&ExKr-V2H*GD3*Y*Xj?63Qx5 zn8S0=Y$;tE!b`GD4t2+oD0qDvuxWRsp|FL5jof3*DL$`gQRQ^WP^aMLgsNMCEq_xz z%e|Rd?p+}A(UYF)6>4+)^<;xz<$K8}3reoY(H;#lhSSkgL^iy5d8LsHvmty1-E$OX zy2=N^5eAlFPb;%J1vGIH+I znFw3AME%!ZCc~}h`-S)Fzhj(JHf9P>E6&s86eqX{2xP*>Ct?;O{Hylt69eb}!IzhR zav0}F_W}aU4GV|0pNlP}RqY@%WydQ4ZxmTmYhyk5^%(A + +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + my_array() = default; + my_array(unsigned n) : size(n), data(new double[n]) { + std::cout << "Constructing: " << data << std::endl; + } + ~my_array() { + std::cout << "Destroying: " < + +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + my_array() = default; + my_array(unsigned n) : size(n), data(new double[n]) { + std::cout << "Constructing: " << data << std::endl; + } + my_array(my_array const& other) : size(other.size), data(new double[size]) { + std::cout << "Copy constructing: " << data << std::endl; + std::copy(other.data, other.data + size, data); + } + my_array& operator=(my_array const& other) { + std::cout << "Destroying: " < + +class my_array { + unsigned size = 0; + double* data = nullptr; +public: + my_array() = default; + my_array(unsigned n) : size(n), data(new double[n]) { + std::cout << "Constructing: " << data << std::endl; + } + my_array(my_array const& other) : size(other.size), data(new double[size]) { + std::cout << "Copy constructing: " << data << std::endl; + std::copy(other.data, other.data + size, data); + } + my_array& operator=(my_array const& other) { + std::cout << "Destroying: " < +#include +#include + +class Cowboy { + using ptr = std::shared_ptr; + std::string name; + std::weak_ptr partner; +public: + + Cowboy(std::string const& n) : name(n) { + std::cout << name << std::endl; + } + ~Cowboy() { std::cout << "Delete " << name << std::endl; } + friend void partner_up(ptr a, ptr b) { + std::cout << "BFFs: " << a->name << " & " << b->name << std::endl; + a->partner = b; b->partner = a; + } +}; + +int main() { + auto good = std::make_shared("Alice"); + auto bad = std::make_shared("Bob"); + //ugly + partner_up(good, bad); +} diff --git a/lectures/template/cpptheme.js b/lectures/template/cpptheme.js new file mode 100644 index 0000000..a181302 --- /dev/null +++ b/lectures/template/cpptheme.js @@ -0,0 +1,10 @@ + +epcc.footer_text = "© Rupert Nash, The University of Edinburgh, CC-BY"; +cpptheme = new Theme( + (str => str.substring(0, str.lastIndexOf("/")))(document.currentScript.src), + '$BASEURL/style.css', + { + thumb: function () { + return '.thumb[\n.thumbtxt[\n' + this +'\n]\n]'; + } + }); diff --git a/lectures/template/style.css b/lectures/template/style.css new file mode 100644 index 0000000..91f7c1e --- /dev/null +++ b/lectures/template/style.css @@ -0,0 +1,21 @@ +div.thumb { + padding: 0.5em; + margin: 0.25em; + border-style: solid; + border-color: rgb(0,50,95); + display: flex; + align-items: center; +} + +div.thumb::before { + content: url(thumbs_up.png); +} + +blockquote { + padding: 0.5em; + background-color: #F0F0F0; +} + +.smaller { + font-size: smaller; +} diff --git a/lectures/template/thumbs_up.png b/lectures/template/thumbs_up.png new file mode 100644 index 0000000000000000000000000000000000000000..3fbef1e54f23b590d076afcd5d6b0fff5f45aaf8 GIT binary patch literal 2315 zcmV+m3H0`fP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 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 literal 0 HcmV?d00001 diff --git a/lectures/templates/README.md b/lectures/templates/README.md new file mode 100644 index 0000000..5daafe5 --- /dev/null +++ b/lectures/templates/README.md @@ -0,0 +1,392 @@ +template: titleslide +# Templates +## Rupert Nash +## r.nash@epcc.ed.ac.uk + +??? + +We've hinted at this already, with `std::vector`, `std::shared_ptr` etc + + +--- +# Motivation + +Templates are a method of doing *metaprogramming*: a +program that writes a program. + +An easy example: + +```C++ +int sum(int a, int b) { + return a+b; +} +double sum(double a, double b) { + return a+b; +} +``` + +What if we need this for `float`, `unsigned`, and our `Complex` class +from earlier lectures? + +Going to get boring and hard to maintain quickly! + +??? + +Recall the sum functions from the first lecture + +--- +# Template functions + +```C++ +template +T sum(T a, T b) { + return a+b; +} +``` + +We can *instantiate* this template for a particular type explicitly by +giving the type inside angle brackets: + +```C++ +std::cout << "add unsigned=" << sum(1U, 4U) << std::endl; +std::cout << "add floats=" << sum(1.0f, 4e-2f) << std::endl; +``` + +??? + +Here the compiler will replace every use of `T` with the type you +supply and only then will it compile the code + +--- +# Template functions + +```C++ +template +T sum(T a, T b) { + return a+b; +} +``` + +You can also let the compiler *deduce* what `T` is for you + +```C++ +std::cout << "add unsigned=" << sum(1U, 4U) << endl; +std::cout << "add floats=" << sum(1.0f, 4e-2f) << endl; +``` +??? + +This is called implicit template instantiation - there are a few +wrinkles that we'll talk about soon + +--- +# Template classes + +You can define a template class - i.e. a template that will produce a +class when you instantiate it. + +Let's adapt the `my_array` container to hold any type `T` + +```C++ +template +class my_array { + unsigned size = 0; + T* data = nullptr; + +public: + my_array(); + my_array(unsigned n); + // Copy / move? + ~my_array(); + unsigned size() const; + const T& operator[](unsigned i) const; + T& operator[](unsigned i); +}; +``` + +??? +Talk through the syntax of the template + +We use `T*` as the type of the stored data and `T&` as the return type +of `operator[]` + +--- +# Type aliases + +Often it is useful to be able to create a new name for a type + +C++ supports a `using` declaration for this. + +```C++ + +using MyImportantType = int; + +using iter = std::map>::iterator; +``` + +??? + +Really common when creating class templates as if you don't it may be +very hard to figure out the type parameters it was instantiated for in +from other code. + +--- +# Using declaration in class templates + +```C++ +template +class my_array { + unsigned size = 0; + T* data = nullptr; + +public: + using value_type = T; + using reference = T&; + using const_reference = T const&; + // ... + const_reference operator[](unsigned i) const; + reference operator[](unsigned i); +}; +``` + +--- +# Where to put your implementation? + +Templates are *not* executable code - they tell the compiler how to +create it. + +So the definition must be available in the translation unit of the user of your template - +i.e. typically in a header file. + +You can define the functions in place like: + +```C++ +template +class my_array { +public: + my_array() : _size(0), _data(nullptr) {} +}; +``` + +Or at the end of the header (or equivalently in another file that you +include at the end of your header) + +```C++ +template +my_array::my_array(unsigned n) : _size(n) { + _data = new T[n]; +} +``` + +??? +Point out the uglier syntax of the second form but on the other hand +the class definition shown earlier is cleaner with only the member +function declarations + +--- +# Templates and the One Definition Rule + +So I said earlier that everything used had to be defined exactly once. + +This has two exceptions: + +1. Templates + +2. Functions marked `inline` + +These can be repeated in many "translation units" (i.e. separate +invocations of the compiler) + +At link time the linker will arbitrarily pick one definition to use in +the final executable (so you need to make sure that they are all +identical). + +--- +# Templates and type deduction + +Recall: +```C++ +template +T sum(T a, T b) { + return a+b; +} +``` + +We then used this without specifying, explicitly, what type `T` was - e.g.: +```C++ +int x = 1, y = 2; +auto z = sum(x, y); +``` + +The compiler is doing *template argument deduction*. + +This means it examines the types of the expressions given as arguments +to the function and then tries to choose a `T` such that the type of +the argument and the expected type match. + +--- +# Templates and type deduction + +Important to note that the template parameter `T` and the type of +function arguments might be different (but related) + +```C++ +template +void f(T x); + +template +void ref(T& x); + +template +void const_ref(T const& x); + +template +void forwarding_ref(T&& x); + +template +void vec(std::vector x); +``` + +This will affect the deduced argument type + +--- +# Non-type template parameters + +Can also parameterise template with non-types: +- integers +- pointers +- enums +- (and in C++20, floating point types and "literal types") + +E.g.: + +```C++ +template +class Vec; + +template +class Matrix; + +template +Vec operator*(Matrix const& A, Vector const& x); +``` + +??? +The compiler will now ensure that the matrix and vector are of compatible +shapes and if you make a mistake will give an error! + +The size of the answer is correctly deduced for you + +--- +# Templates and type deduction + +Full rules are quite complex + +See Meyer's Effective Modern C++ chapter 1 - free online +https://www.safaribooksonline.com/library/view/effective-modern-c/9781491908419/ch01.html + +In short: + +![:thumb]( But usually you can ignore these and just think about: +1. Whether you want to copy the argument or not - if you don't want a +copy add a reference `&` +2. Whether you can handle a const argument - if so add a `const` qualifier +3. If you want *exactly* the type of the expression - if so add `&&` - + this is known as a forwarding reference) + +--- +# Auto + +The `auto` keyword follows the same rules as template argument +deduction + +--- +template: titleslide + +# Traits +--- + +# Type traits + +- Important C++ generic programming technique, used across the + standard library + +- The "if-then-else" of types + +- Provide a template class that has typedefs/member functions that + specify the configurable parts + +- Your generic algorithm then uses this class, specialised on the type + it is working on, to select behaviour + +- You do not have to change the source of either the algorithm or the + working type + +--- +# Trait patterns + +Typically a trait is a template `struct` that accepts one or more types as +parameter(s) and either: + +.columns[ +.col2[ +Tells you something about the type(s) by producing a value, which is +stored in the `value` static member variable, e.g. + +```C++ +if (std::is_pointer::value) { + // do something pointery +} else { + // do something else +} + +// From C++17 onwards: +static_assert(std::is_pointer_v); +``` + +] +.col2[ +Transforms the type in some way by producing a type in the member +type alias `type`. + +```C++ +using signed = + typename std::make_signed< + std::uint32_t + >::type; + +// From C++14 onwards +using signed = + std::make_signed_t; +``` +] +] + +--- + +# STL traits + +Several headers contain these: + +- The header `` has lots of information for handling + types. E.g. `std::is_pointer::value` has value of false. + +- `std::numeric_limits` gives lots of parameters for the built in + number types, such as largest and smallest values, whether they are + integer or floating types, etc. + +Other traits are used everywhere behind the scenes for efficiency. + + +--- +# Writing your own + +Ideally you can define your own as a combination of existing traits. + +If not you can investigate template specialisation, which is beyond +the scope of this course. + +--- +# Exercise + +Please try the second part of [exercises/morton-order](../../exercises/morton-order). + diff --git a/lectures/templates/index.html b/lectures/templates/index.html new file mode 100644 index 0000000..f14fe01 --- /dev/null +++ b/lectures/templates/index.html @@ -0,0 +1,22 @@ + + + +C++ Templates + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/threads-1/README.md b/lectures/threads-1/README.md new file mode 100644 index 0000000..e1ee954 --- /dev/null +++ b/lectures/threads-1/README.md @@ -0,0 +1,264 @@ +template: titleslide +# C++ Threads - Basics + +--- +# Overview + +- Introduction + +- Creating and joining threads + +- Passing arguments to threads + +- Synchronisation + +--- +# C++11 threads + +- API for multithreaded programming built in to C++11 standard +- Similar functionality to POSIX threads + - but with a proper OO interface + - based quite heavily on Boost threads library +- Portable + - depends on C++11 support, available in most compilers today +- Threads are C++ objects + - call a constructor to create a thread +- Synchronisation + - mutex locks + - condition variables + - C++11 atomics +- Tasks + - via async/futures/promises + +--- +# Creating threads + +- Threads are objects of the `std::thread` class +- Threads are created by calling the constructor for this class +- Pass as an argument what we want the thread to execute. This can be: + - A function pointer + - A function object / functor + - A lambda expression + +- Note: you cannot copy a thread + +--- +# Joining threads + +The `join()` member function on a `std::thread` object causes the calling thread to wait for the thread object to finish executing its function/functor/lambda. + +--- +# Hello world – function pointer + +```C++ +#include +#include +#include + +void hello() { + std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl; +} + +int main() { + std::vector threads; + for (int i = 0; i < 5; ++i) { + threads.push_back(std::thread(hello)); + } + + for (auto& thread: threads) { + thread.join(); + } +} +``` + +--- +# Hello world – lambda function + +```C++ +#include +#include +#include + +int main() { + std::vector threads; + + for(int i = 0; i < 5; ++i){ + threads.push_back(std::thread([] { + std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl; + })); + } + + for(auto& thread : threads){ + thread.join(); + } +} +``` + +--- +# Thread IDs + +- Can call `get_id()`on a thread +- Use `std::this_thread::get_id()` to call it on the executing thread +- Returns an arbitrary identifier +- Not much use! +- If we want sequentially numbered threads, need to pass the number as an argument to the thread constructor. + +--- +# Passing arguments to threads + +Arguments to the thread function are moved or copied by value + +Passing simple arguments to threads is straightforward: +```C++ +void hello(int x, int y) { + std::cout << "Hello " << x << " " << y << std::endl; +} + +int main() { + int a = 1; + int b = 27; + std::thread mythread(hello, a, b); + mythread.join(); +} +``` + +--- +# Passing references to threads + +Need to use a reference wrapper to avoid the argument to the thread constructor making a copy +```C++ +void hello(int& x) { + x++; +} + +int main() { + int x = 9; + std::thread mythread(hello, std::ref(x)); + mythread.join(); + std::cout << "x = " << x << std::endl; // x is 10 here +} +``` + +--- +# Synchronisation + +```C++ +class Wallet +{ + int mMoney = 0; +public: + Wallet() {} + + void addMoney(int money) { + mMoney += money; + } +}; +``` + +If two threads call `addMoney()` on the same `Wallet` object, then we have a race condition. + +--- +# Mutex locks + +- Can use a mutex lock to protect updates to shared variables + - natural to declare a mutex inside the object whose data needs protecting + +```C++ +#include +class Wallet +{ + int mMoney = 0; + std::mutex mutex; +public: + Wallet() {} + + void addMoney(int money) { + mutex.lock(); + mMoney += money; + mutex.unlock(); + } +}; +``` + +--- +# Guard objects + +- Need to make sure a mutex is always unlocked +- Can be tricky in cases with complex control flow, or with exception handling. +- The `std::lock_guard` class implements the RAII (resource allocation is initialization) pattern for mutexes +- Its constructor takes as an argument a mutex, which it then locks +- Its destructor unlocks the mutex + +--- +# Guard objects + +```C++ +#include + +class Wallet +{ + int mMoney = 0; + std::mutex mutex; +public: + Wallet() {} + + void addMoney(int money) { + std::lock_guard lockGuard(mutex); + mMoney += money; + } // mutex unlocked when lockGuard goes out of scope +}; +``` + +--- +# Atomics + +- C++ provides an atomic template class `std::atomic` + +- Efficient, lock-free operations supported for specialization to basic integer, boolean and character types + +- Floating point support in C++20 standard only + +--- +# Atomics + +```C++ +#include + +class Wallet +{ + std::atomic mMoney = 0; +public: + Wallet() {} + void addMoney(int money) { + mMoney += money; //atomic increment + } + }; +``` + +--- +# Thread safe class design + +- Possible to add a mutex data member to the class and make every member function that accesses any mutable state acquire and release the mutex (use a `lock_guard`) + +- Good design, in the sense that multithreaded code can use the class without worrying about the synchronisation + +- Can result in unacceptable overheads – lots of lock/unlocks, and synchronization when it’s not needed. + +- Need to think carefully about use cases in a given application. + +--- +# Reusing this material + +.center[![CC-BY-NC-SA](https://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-nc-sa.eu.png)] + +This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. + +https://creativecommons.org/licenses/by-nc-sa/4.0/ + +.smaller[ +This means you are free to copy and redistribute the material and adapt and build on the material under the following terms: You must give appropriate credit, provide a link to the license and indicate if changes were made. If you adapt or build on the material you must distribute your work under the same license as the original. + +Acknowledge EPCC as follows: “© EPCC, The University of Edinburgh, www.epcc.ed.ac.uk” + +Note that this presentation may contain images owned by others. Please seek their permission before reusing these images. +] diff --git a/lectures/threads-1/index.html b/lectures/threads-1/index.html new file mode 100644 index 0000000..b895d67 --- /dev/null +++ b/lectures/threads-1/index.html @@ -0,0 +1,23 @@ + + + +C++ Threads 1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/threads-2/README.md b/lectures/threads-2/README.md new file mode 100644 index 0000000..de035a0 --- /dev/null +++ b/lectures/threads-2/README.md @@ -0,0 +1,234 @@ +template: titleslide +# C++ Threads – Further topics + +--- +# Overview + +- `std::async` and futures +- Parallel STL +- C++ threads or OpenMP? + +--- +# async and futures + +- With `std::thread` there is no direct way to get a return value from the function/lambda that a thread executes + +- Could alter function to use an output reference argument, but this is problematic + +- Can get round this with `std::async` and futures + +- Also allows exception handling to work properly if a thread throws an exception + +- async returns a future object, and calling the `get()` function on the future blocks until the value is available + +--- +# async and future + +```C++ +int add(int x, int y) { + return x+y; +} + +int main() { + int a = 1; + int b = 27; + std::future fut = std::async(add, a, b); + cout << "sum = " << fut.get() << std::endl; +} +``` + +--- +# async and future + +```C++ +int add(int x, int y) { + return x+y; +} + +int main() { + int a = 1; + int b = 27; + auto fut = std::async(add, a, b); + cout << "sum = " << fut.get() << std::endl; +} +``` + +--- +# Problems! + +- By default, the runtime can decide to not create a new thread to run + the callable, and simply execute it when `fut.get()` is called. + +- Can cause deadlock if you are not careful! + +- Can force asynchronous execution via an optional policy argument: +```C++ +auto fut = std::async(std::launch::async, add, a, b); +``` + +- Implementations can choose to use a thread pool to execute asyncs, + but most don’t can end up with way too many threads + +--- +# Parallel STL + +- Version of the STL that incorporates parallel versions of many STL algorithms + +- Part of C++17 standard, so not yet available in most standard + library implementations, but coming soon. + +- Most STL algorithms take a addition execution policy argument: + * Sequential + * Parallel + * Parallel and vectorized + * (vectorized but not parallel added in C++20) + +--- +# Example + +```C++ +std::vector v = genLargeVector(); + +// standard sequential sort +std::sort(v.begin(), v.end()); + +// explicitly sequential +sort std::sort(std::execution::seq, v.begin(), v.end()); + +// permitting parallel execution +std::sort(std::execution::par, v.begin(), v.end()); + +// permitting vectorization as well +std::sort(std::execution::par_unseq, v.begin(), v.end()); +``` + +--- +# Easy to use, but... + +- For algorithms that take a function object argument (e.g. + `for_each`), that operates on each element it is up to the + programmer to ensure that parallel/vectorized execution of this is + correct. + +- Interface gives almost no control to the programmer + * how many threads to use? + * which threads handle which elements? + * whether to use a static of dynamic assignment of work to threads? + +- Might be difficult to have any control over data affinity/locality + +- Implementations can support additional execution policies + +- Scope for adding more to the standard in the future + +--- +# C++ threads or OpenMP? + +- Since OpenMP supports C++ as a base language, what are the pros and cons of OpenMP vs C++ threads? + +- Adding OpenMP support for new C++ features takes time (several years + in practice) + +- OpenMP 4.5 only supports C++98 + +- OpenMP 5.0 supports most of C++11/14 + + * some exceptions – including C++ threads and atomics + * implementations will take some time to catch up with this + +- If you want to use the latest and greatest features in C++, then + OpenMP might not work. + +--- +# C++ threads or OpenMP? + +OpenMP has a lot of useful features that are not available in the C++ standard: + +- Thread barriers + * will likely be added in C++20 + +- Thread pools and tasks + * may be added in C++23 (depends on "executors") + +- Parallel for loops + * some functionality with `std::for_each` in Parallel STL + +- SIMD directives + * probably will work OK with C++ threads + +--- +# But I can build my own! + +- C++ threads has all the required building blocks to allow you to + implement many of these features for yourself + + * or borrow someone else’s implementation + +- Can make use of C++ functionality to make them look syntactically neat + +- May not be correct + * low level threaded programming is hard! + +- May not be well documented + * unusual to find documentation that is as good as language standards + +- Unlikely to be both portable and efficient + maximum efficiency typically requires architecture-specific coding + +--- +# What about GPUs? + +- OpenMP has support for offloading code to GPUs + + * still a bit immature, not many good implementations yet + +- C++ may support this in the future sometime?? + +- There are a number of C++ frameworks for doing this + + * Kokkos + * Raja + * SYCL + +- Various degrees of support and robustness + +--- +# More differences + +- OpenMP has some restrictions which annoy C++ programmers + + * e.g. can’t use data members of objects in private or reduction clauses + +- Support for reductions is in both, but handled differently + + * OpenMP allows you to define your own reduction operators + * C++ has `std::reduce` in the Parallel STL + +- OpenMP does not allow arbitrary forking/joining of threads + * You can argue whether this is a good thing or not in an HPC context! + +- C++ has no standard way of binding threads to sockets/cores + * need to call OS-specific functions + +--- +# C++ threads or OpenMP? +.center[ +![:scale_img 80%](omp-v-thread.png) +] + +--- +# Reusing this material + +.center[![CC-BY-NC-SA](https://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-nc-sa.eu.png)] + +This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. + +https://creativecommons.org/licenses/by-nc-sa/4.0/ + +.smaller[ +This means you are free to copy and redistribute the material and adapt and build on the material under the following terms: You must give appropriate credit, provide a link to the license and indicate if changes were made. If you adapt or build on the material you must distribute your work under the same license as the original. + +Acknowledge EPCC as follows: “© EPCC, The University of Edinburgh, www.epcc.ed.ac.uk” + +Note that this presentation may contain images owned by others. Please seek their permission before reusing these images. +] diff --git a/lectures/threads-2/index.html b/lectures/threads-2/index.html new file mode 100644 index 0000000..f149417 --- /dev/null +++ b/lectures/threads-2/index.html @@ -0,0 +1,23 @@ + + + +C++ Threads 2 + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/threads-2/omp-v-thread.png b/lectures/threads-2/omp-v-thread.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7f481fc2c12f167682e4617d3b95ff0b773686 GIT binary patch literal 38928 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 literal 0 HcmV?d00001

    lRiPuB;D05HTkVrnDq;TO1Ot=oGQyTfIdPC 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 + + +C++ for numerical computing + + + + + + + + + + + + + + diff --git a/lectures/frameworks-kokkos/lammps_lj.png b/lectures/frameworks-kokkos/lammps_lj.png new file mode 100644 index 0000000000000000000000000000000000000000..949bdc292df02b80c25a30a4a8cc7773fec019c6 GIT binary patch literal 4232 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 y61IzCtZTR9)w^EBAt->-fIcm&~B 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 z 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 literal 0 HcmV?d00001 diff --git a/lectures/cpp-intro/hello/hello.cpp b/lectures/cpp-intro/hello/hello.cpp new file mode 100644 index 0000000..6c3459b --- /dev/null +++ b/lectures/cpp-intro/hello/hello.cpp @@ -0,0 +1,5 @@ +#include + +int main(int argc, char* argv[]) { + std::cout << "Hello, world" << std::endl; +} diff --git a/lectures/cpp-intro/index.html b/lectures/cpp-intro/index.html new file mode 100644 index 0000000..3b8bc49 --- /dev/null +++ b/lectures/cpp-intro/index.html @@ -0,0 +1,22 @@ + + + +A brief introduction to C++ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lectures/cpp-intro/octodog.jpg b/lectures/cpp-intro/octodog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d3e5ec43c0babe8e739275ba35de25b07c2b06fc GIT binary patch literal 26343 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