intro.tex 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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. \only<4>{%
  7. How can we keep our methods/algorithms and codes relevant in the future?
  8. }
  9. \column{0.56\textwidth}
  10. \centering
  11. \resizebox{0.99\textwidth}{!}{\begin{tikzpicture} %<<<
  12. \draw[black!0] (-4.73,-5) rectangle (4.73,4);
  13. \only<1->{
  14. \draw[color=green, ultra thick, fill=green, opacity=0.3] (1.73,1) circle (3);
  15. \node[text width=3.2cm] at (3.0,1.5) {\LARGE Methods \& Algorithms};
  16. }
  17. \only<2->{
  18. \draw[color=blue, ultra thick, fill=blue, opacity=0.3] (0,-2) circle (3);
  19. \node at (0,-2.9) {\LARGE Software};
  20. }
  21. \only<3->{
  22. \draw[color=red, ultra thick, fill=red, opacity=0.3] (-1.73,1) circle (3);
  23. \node at (-2.8,1.6) {\LARGE Hardware};
  24. }
  25. \only<4->{
  26. \node at (0,0) {\LARGE HPC};
  27. }
  28. \end{tikzpicture}}%>>>
  29. \end{columns}
  30. \end{frame}
  31. %>>>
  32. % FUTURE PROOFING OUT METHODS AND CODES
  33. % Domain Specific Languages ⇒ Domain Specific Architectures
  34. %closely follow emerging hardware trends and plan for the future. arm, high bandwidth memory, accelerators
  35. % Every tradesperson should know the tools of their trade.
  36. % For HPC, those tools are your hardware and the programming language that you use.
  37. % (we build abstract models of the hardware to keep things simple and this
  38. % depends on the programming language view to some extent
  39. % Von Neumann architecture)
  40. \begin{frame} \frametitle{Trends in hardware}{} %<<<
  41. % Top 10 supercomputers
  42. % 3 have AMD Instinct GPU
  43. % 4 have NVIDIA GPU
  44. % 5 have AMD CPU
  45. % 2 have POWER9 CPU
  46. % 1 has Intel CPU
  47. % 1 has ARM CPU
  48. % exascale computing
  49. % heterogeneous computing, specialized hardware accelerators: GPUs, ASICS, FPGA, Tensor processing units
  50. % AMD GPUs becoming more common, Intel Xe GPU to feature in Aurora suprcomputer
  51. % energy efficiency
  52. % new memory technologies:
  53. % - Hybrid Memory Cube
  54. % - DDR6
  55. % - High Bandwidth Memory (HBM, HBM2, ...)
  56. \end{frame}
  57. %>>>
  58. \begin{frame}[t] \frametitle{Trends in hardware}{} %<<<
  59. \begin{columns}
  60. \column{0.2\textwidth}
  61. \column{0.8\textwidth}
  62. %\write18{wget -O figs/trends0.png https://github.com/karlrupp/microprocessor-trend-data/raw/master/50yrs/50-years-processor-trend.png}
  63. %\write18{wget -O figs/trends1.png https://upload.wikimedia.org/wikipedia/commons/0/00/Moore\%27s_Law_Transistor_Count_1970-2020.png}
  64. \includegraphics[width=0.99\textwidth]{figs/trends0.png}
  65. \end{columns}
  66. % post Moore's law
  67. % Dennard scaling: end of frequency scaling
  68. % multi-core / many-core
  69. % vector lengths (512-bit now standard in most CPU cores)
  70. % rise of ARM (RISC ISA)
  71. % transistor counts increasing -- multi-package CPUs (NUMA) -- AMD Risen 64 cores
  72. %https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/
  73. \end{frame}
  74. %>>>
  75. \begin{frame} \frametitle{Trends in hardware}{} %<<<
  76. \begin{columns}
  77. \column{0.7\textwidth}
  78. \center
  79. \includegraphics[width=0.99\textwidth]{figs/sustained-memory-bw-falling-graph-mccalpin-1000x}
  80. {\scriptsize Source: John McCalpin - Memory bandwidth and system balance in HPC systems, 2016}
  81. \column{0.3\textwidth}
  82. \end{columns}
  83. \end{frame}
  84. %>>>
  85. \begin{frame}[t] \frametitle{Trends in hardware}{} %<<<
  86. \vspace{-1.5em}
  87. \begin{columns}[t]
  88. \column{0.5\textwidth}
  89. \column{0.5\textwidth}
  90. \center
  91. \includegraphics[width=0.9\textwidth]{figs/Graphics-card-with-HBM-1}
  92. \includegraphics[width=0.6\textwidth]{figs/HBM}
  93. {\scriptsize Source: \url{https://www.amd.com/en/technologies/hbm}}
  94. \end{columns}
  95. % Intel recently announced that High-Bandwidth Memory (HBM) will be available on select “Sapphire Rapids” Xeon SP processors and will provide the CPU backbone for the “Aurora” exascale supercomputer to be sited at Argonne National Laboratory.
  96. %https://www.nextplatform.com/2021/10/21/how-high-bandwidth-memory-will-break-performance-bottlenecks/
  97. \end{frame}
  98. %>>>
  99. \begin{frame} \frametitle{Trends in software}{} %<<<
  100. % programming languages: interpreted, JIT, code-generation,
  101. % - new languages (modern C++ - SCC sciware)
  102. % - features
  103. % Switch from interpreted to JIT (eg. MATLAB)
  104. % know how your programming language works
  105. % don't iterate over billion element array in python
  106. % compilers
  107. % compiler options for best performance
  108. % profilers and debuggers
  109. % optimized libraries for scientific computing: (BLAS, LAPACK, FFTW)
  110. % use whenever it makes sense to do so
  111. % HIP (NVIDIA and AMD GPUs)
  112. % HIP increasingly being instead of CUDA
  113. % hipify tool converts source from CUDA to HIP
  114. \end{frame}
  115. %>>>
  116. \begin{frame} \frametitle{Programming languages}{} %<<<
  117. % programming languages: interpreted, JIT, code-generation,
  118. % - new languages (modern C++ - SCC sciware)
  119. % - features
  120. % Switch from interpreted to JIT (eg. MATLAB)
  121. % know how your programming language works
  122. % don't iterate over billion element array in python
  123. % compilers
  124. % compiler options for best performance
  125. % profilers and debuggers
  126. % optimized libraries for scientific computing: (BLAS, LAPACK, FFTW)
  127. % use whenever it makes sense to do so
  128. % HIP (NVIDIA and AMD GPUs)
  129. % HIP increasingly being instead of CUDA
  130. % hipify tool converts source from CUDA to HIP
  131. \end{frame}
  132. %>>>
  133. %%%% \begin{frame} \frametitle{Resources}{} %<<<
  134. %%%% % SCC Sciware lectures
  135. %%%% \end{frame}
  136. %%%% %>>>