intro.tex 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. % vim: set foldmethod=marker foldmarker=<<<,>>>:
  2. \section{Introduction}
  3. \begin{frame} \frametitle{What is HPC?}{} %<<<
  4. \begin{columns}
  5. \column{0.43\textwidth}
  6. \column{0.56\textwidth}
  7. \centering
  8. \resizebox{0.99\textwidth}{!}{\begin{tikzpicture} %<<<
  9. \draw[black!0] (-4.73,-5) rectangle (4.73,4);
  10. \only<1-3>{
  11. \draw[color=green, ultra thick, fill=green, opacity=0.3] (1.73,1) circle (3);
  12. \node[text width=3.2cm] at (3.0,1.5) {\LARGE Methods \& Algorithms};
  13. }
  14. \only<2-3>{
  15. \draw[color=blue, ultra thick, fill=blue, opacity=0.3] (0,-2) circle (3);
  16. \node at (0,-2.9) {\LARGE Software};
  17. }
  18. \only<3-3>{
  19. \draw[color=red, ultra thick, fill=red, opacity=0.3] (-1.73,1) circle (3);
  20. \node at (-2.8,1.6) {\LARGE Hardware};
  21. }
  22. \end{tikzpicture}}%>>>
  23. \end{columns}
  24. \end{frame}
  25. %>>>
  26. % FUTURE PROOFING OUT METHODS AND CODES
  27. % Domain Specific Languages ⇒ Domain Specific Architectures
  28. \begin{frame} \frametitle{Trends in hardware}{} %<<<
  29. % Top 10 supercomputers
  30. % 3 have AMD Instinct GPU
  31. % 4 have NVIDIA GPU
  32. % 5 have AMD CPU
  33. % 2 have POWER9 CPU
  34. % 1 has Intel CPU
  35. % 1 has ARM CPU
  36. % exascale computing
  37. % heterogeneous computing, specialized hardware accelerators: GPUs, ASICS, FPGA, Tensor processing units
  38. % AMD GPUs becoming more common, Intel Xe GPU to feature in Aurora suprcomputer
  39. % energy efficiency
  40. % new memory technologies:
  41. % - Hybrid Memory Cube
  42. % - DDR6
  43. % - High Bandwidth Memory (HBM, HBM2, ...)
  44. \end{frame}
  45. %>>>
  46. \begin{frame} \frametitle{Trends in hardware}{} %<<<
  47. % end of frequency scaling
  48. % post Moore's law
  49. % Dennard scaling
  50. % multi-core / many-core
  51. % vector lengths (512-bit now standard in most CPU cores)
  52. % rise of ARM (RISC ISA)
  53. % transistor counts increasing -- multi-package CPUs (NUMA) -- AMD Risen 64 cores
  54. %https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/
  55. \begin{columns}
  56. \column{0.3\textwidth}
  57. \column{0.7\textwidth}
  58. %\write18{wget -O figs/trends0.png https://github.com/karlrupp/microprocessor-trend-data/raw/master/50yrs/50-years-processor-trend.png}
  59. %\write18{wget -O figs/trends1.png https://upload.wikimedia.org/wikipedia/commons/0/00/Moore\%27s_Law_Transistor_Count_1970-2020.png}
  60. \includegraphics[width=0.99\textwidth]{figs/trends0.png}
  61. \end{columns}
  62. \end{frame}
  63. %>>>
  64. \begin{frame} \frametitle{Trends in hardware}{} %<<<
  65. \begin{columns}
  66. \column{0.3\textwidth}
  67. \column{0.7\textwidth}
  68. \includegraphics[width=0.99\textwidth]{figs/sustained-memory-bw-falling-graph-mccalpin-1000x}
  69. {\footnotesize John McCalpin - Memory bandwidth and system balance in HPC systems, 2016}
  70. \end{columns}
  71. \end{frame}
  72. %>>>
  73. \begin{frame} \frametitle{Trends in software}{} %<<<
  74. % programming languages: interpreted, JIT, code-generation,
  75. % - new languages (modern C++ - SCC sciware)
  76. % - features
  77. % Switch from interpreted to JIT (eg. MATLAB)
  78. % know how your programming language works
  79. % don't iterate over billion element array in python
  80. % compilers
  81. % compiler options for best performance
  82. % profilers and debuggers
  83. % optimized libraries for scientific computing: (BLAS, LAPACK, FFTW)
  84. % use whenever it makes sense to do so
  85. % HIP (NVIDIA and AMD GPUs)
  86. % HIP increasingly being instead of CUDA
  87. % hipify tool converts source from CUDA to HIP
  88. \end{frame}
  89. \begin{frame} \frametitle{Resources}{} %<<<
  90. % SCC Sciware lectures
  91. \end{frame}
  92. %>>>