Skip to content

Commit f06aea5

Browse files
authored
Add Fortran presentation and exercises (#129)
1 parent c4cd81e commit f06aea5

38 files changed

+689
-842
lines changed

Content/Presentations/modularized/KokkosTutorial_02_ViewsAndSpaces.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
\item Module 6: Internode: MPI and PGAS
7373
\item Module 7: Tools: Profiling, Tuning and Debugging
7474
\item Module 8: Kernels: Sparse and Dense Linear Algebra
75-
\item Reserve Day
75+
\item Module 9: Fortran inter-op
7676
\end{itemize}
7777
\end{frame}
7878

Content/Presentations/modularized/KokkosTutorial_03_MDRangeMoreViews.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@
6464
\begin{frame}{Lecture Series Outline}
6565

6666
\begin{itemize}
67-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
68-
\item 07/24 Module 2: Views and Spaces
69-
\item \textbf{07/31 Module 3: Data Structures + MultiDimensional Loops}
70-
\item 08/07 Module 4: Hierarchical Parallelism
71-
\item 08/14 Module 5: Tasking, Streams and SIMD
72-
\item 08/21 Module 6: Internode: MPI and PGAS
73-
\item 08/28 Module 7: Tools: Profiling, Tuning and Debugging
74-
\item 09/04 Module 8: Kernels: Sparse and Dense Linear Algebra
75-
\item 09/11 Reserve Day
67+
\item Module 1: Introduction, Building and Parallel Dispatch
68+
\item Module 2: Views and Spaces
69+
\item \textbf{Module 3: Data Structures + MultiDimensional Loops}
70+
\item Module 4: Hierarchical Parallelism
71+
\item Module 5: Tasking, Streams and SIMD
72+
\item Module 6: Internode: MPI and PGAS
73+
\item Module 7: Tools: Profiling, Tuning and Debugging
74+
\item Module 8: Kernels: Sparse and Dense Linear Algebra
75+
\item Module 9: Fortran inter-op
7676
\end{itemize}
7777
\end{frame}
7878

Content/Presentations/modularized/KokkosTutorial_04_HierarchicalParallelism.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@
6464
\begin{frame}[fragile]{Lecture Series Outline}
6565

6666
\begin{itemize}
67-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
68-
\item 07/24 Module 2: Views and Spaces
69-
\item 07/31 Module 3: Data Structures + MultiDimensional Loops
70-
\item \textbf{08/07 Module 4: Hierarchical Parallelism}
71-
\item 08/14 Module 5: Tasking, Streams and SIMD
72-
\item 08/21 Module 6: Internode: MPI and PGAS
73-
\item 08/28 Module 7: Tools: Profiling, Tuning and Debugging
74-
\item 09/04 Module 8: Kernels: Sparse and Dense Linear Algebra
75-
\item 09/11 Reserve Day
67+
\item Module 1: Introduction, Building and Parallel Dispatch
68+
\item Module 2: Views and Spaces
69+
\item Module 3: Data Structures + MultiDimensional Loops
70+
\item \textbf{Module 4: Hierarchical Parallelism}
71+
\item Module 5: Tasking, Streams and SIMD
72+
\item Module 6: Internode: MPI and PGAS
73+
\item Module 7: Tools: Profiling, Tuning and Debugging
74+
\item Module 8: Kernels: Sparse and Dense Linear Algebra
75+
\item Module 9: Fortran inter-op
7676
\end{itemize}
7777

7878
\end{frame}

Content/Presentations/modularized/KokkosTutorial_05_SIMDStreamsTasking.tex

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@
6464
\begin{frame}[fragile]{Lecture Series Outline}
6565

6666
\begin{itemize}
67-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
68-
\item 07/24 Module 2: Views and Spaces
69-
\item 07/31 Module 3: Data Structures + MultiDimensional Loops
70-
\item 08/07 Module 4: Hierarchical Parallelism
71-
\item \textbf{08/14 Module 5: SIMD, Streams and Tasking}
72-
\item 08/21 Module 6: Internode: MPI and PGAS
73-
\item 08/28 Module 7: Tools: Profiling, Tuning and Debugging
74-
\item 09/04 Module 8: Kernels: Sparse and Dense Linear Algebra
75-
\item 09/11 Reserve Day
67+
\item Module 1: Introduction, Building and Parallel Dispatch
68+
\item Module 2: Views and Spaces
69+
\item Module 3: Data Structures + MultiDimensional Loops
70+
\item Module 4: Hierarchical Parallelism
71+
\item \textbf{Module 5: SIMD, Streams and Tasking}
72+
\item Module 6: Internode: MPI and PGAS
73+
\item Module 7: Tools: Profiling, Tuning and Debugging
74+
\item Module 8: Kernels: Sparse and Dense Linear Algebra
75+
\item Module 9: Fortran inter-op
7676
\end{itemize}
7777

7878
\end{frame}
@@ -150,9 +150,9 @@
150150

151151
\begin{frame}{Module 6: Outlook (08/21)}
152152
\vspace{-3pt}
153-
\textbf{Python and Fortran Data Interoperability}
153+
\textbf{Python Data Interoperability}
154154
\begin{itemize}
155-
\item {How to pass data back and forth between C++ Kokkos and Python/Fortran}
155+
\item {How to pass data back and forth between C++ Kokkos and Fortran}
156156
\end{itemize}
157157

158158
\vspace{5pt}

Content/Presentations/modularized/KokkosTutorial_06_InternodeMPIAndPGAS.tex

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
\title{The Kokkos Lectures}
88

99
%BAD misuse of author field
10-
\author{Module 6: Fortran/Python interoperability, MPI and PGAS}
10+
\author{Module 6: Python interoperability, MPI and PGAS}
1111

1212
%\author{
1313
% Jeff Miles \inst{1},
@@ -67,15 +67,15 @@
6767
\begin{frame}{Lecture Series Outline}
6868

6969
\begin{itemize}
70-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
71-
\item 07/24 Module 2: Views and Spaces
72-
\item 07/31 Module 3: Data Structures + MultiDimensional Loops
73-
\item 08/07 Module 4: Hierarchical Parallelism
74-
\item 08/14 Module 5: Tasking, Streams and SIMD
75-
\item 08/21 \textbf{Module 6: Internode: MPI and PGAS}
76-
\item 08/28 Module 7: Tools: Profiling, Tuning and Debugging
77-
\item 09/04 Module 8: Kernels: Sparse and Dense Linear Algebra
78-
\item 09/11 Reserve Day
70+
\item Module 1: Introduction, Building and Parallel Dispatch
71+
\item Module 2: Views and Spaces
72+
\item Module 3: Data Structures + MultiDimensional Loops
73+
\item Module 4: Hierarchical Parallelism
74+
\item Module 5: Tasking, Streams and SIMD
75+
\item \textbf{Module 6: Internode: MPI and PGAS}
76+
\item Module 7: Tools: Profiling, Tuning and Debugging
77+
\item Module 8: Kernels: Sparse and Dense Linear Algebra
78+
\item Module 9: Fortran inter-op
7979
\end{itemize}
8080
\end{frame}
8181

@@ -102,8 +102,7 @@
102102
\begin{frame}{Module 6: Learning objectives}
103103
\begin{block}{Language Interoperability}
104104
\begin{itemize}
105-
\item Writing hybrid Fortran applications
106-
\item And, writing hybrid Python applications with Kokkos
105+
\item Writing hybrid Python applications with Kokkos
107106
\end{itemize}
108107
\end{block}
109108

@@ -123,7 +122,6 @@
123122
\end{block}
124123
\end{frame}
125124

126-
\input{../sections/Section_FortranInterOp}
127125
\input{../sections/Section_PythonInterOp}
128126
\input{../sections/Section_MPI}
129127
\input{../sections/Section_PGAS}
@@ -147,16 +145,6 @@
147145
\end{frame}
148146

149147
\begin{frame}[fragile]{Module 6 Summary}
150-
\textbf{Fortran Language Compatibility Layer}
151-
\begin{itemize}
152-
\item Initialize Kokkos from Fortran via \texttt{kokkos\_initialize} and \texttt{kokkos\_finalize}
153-
\item \texttt{nd\_array\_t} is a representation of a \texttt{Kokkos::View}
154-
\item Create \texttt{nd\_array\_t} from a Fortran array via \texttt{to\_nd\_array}
155-
\item Allocate \texttt{Kokkos::DualView} in Fortran with \texttt{kokkos\_allocate\_dualview}
156-
\end{itemize}
157-
158-
159-
\vspace{10pt}
160148
\textbf{The Python Interop}
161149
\begin{itemize}
162150
\item Initialize and Finalize Kokkos from Python

Content/Presentations/modularized/KokkosTutorial_07_Tools.tex

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,15 @@
5757
\begin{frame}[fragile]{Lecture Series Outline}
5858

5959
\begin{itemize}
60-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
61-
\item 07/24 Module 2: Views and Spaces
62-
\item 07/31 Module 3: Data Structures + MultiDimensional Loops
63-
\item 08/07 Module 4: Hierarchical Parallelism
64-
\item 08/14 Module 5: Tasking, Streams and SIMD
65-
\item 08/21 Module 6: Internode: MPI and PGAS
66-
\item \textbf{08/28 Module 7: Tools: Profiling, Tuning and Debugging}
67-
\item 09/04 Module 8: Kernels: Sparse and Dense Linear Algebra
68-
\item 09/11 Reserve Day
60+
\item Module 1: Introduction, Building and Parallel Dispatch
61+
\item Module 2: Views and Spaces
62+
\item Module 3: Data Structures + MultiDimensional Loops
63+
\item Module 4: Hierarchical Parallelism
64+
\item Module 5: Tasking, Streams and SIMD
65+
\item Module 6: Internode: MPI and PGAS
66+
\item \textbf{Module 7: Tools: Profiling, Tuning and Debugging}
67+
\item Module 8: Kernels: Sparse and Dense Linear Algebra
68+
\item Module 9: Fortran inter-op
6969
\end{itemize}
7070

7171
\end{frame}

Content/Presentations/modularized/KokkosTutorial_08_KokkosKernels.tex

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,15 @@
5353
\begin{frame}[fragile]{Lecture Series Outline}
5454

5555
\begin{itemize}
56-
\item 07/17 Module 1: Introduction, Building and Parallel Dispatch
57-
\item 07/24 Module 2: Views and Spaces
58-
\item 07/31 Module 3: Data Structures + MultiDimensional Loops
59-
\item 08/07 Module 4: Hierarchical Parallelism
60-
\item 08/14 Module 5: Tasking, Streams and SIMD
61-
\item 08/21 Module 6: Internode: MPI and PGAS
62-
\item 08/28 Module 7: Tools: Profiling, Tuning and Debugging
63-
\item \textbf{09/04 Module 8: Kernels: Sparse and Dense Linear Algebra}
56+
\item Module 1: Introduction, Building and Parallel Dispatch
57+
\item Module 2: Views and Spaces
58+
\item Module 3: Data Structures + MultiDimensional Loops
59+
\item Module 4: Hierarchical Parallelism
60+
\item Module 5: Tasking, Streams and SIMD
61+
\item Module 6: Internode: MPI and PGAS
62+
\item Module 7: Tools: Profiling, Tuning and Debugging
63+
\item \textbf{Module 8: Kernels: Sparse and Dense Linear Algebra}
64+
\item Module 9: Fortran inter-op
6465
\end{itemize}
6566

6667
\end{frame}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
2+
\input{KokkosTutorial_PreTitle}
3+
4+
%disclaimer for Sandia. uncomment and the whole blob goes away @ b80c116300122
5+
\def\sandid{SAND2020-9315 TR}
6+
7+
\title{The Kokkos Lectures}
8+
9+
%BAD misuse of author field
10+
\author{Module 9: Kokkos-Fortran-Interop}
11+
12+
\input{KokkosTutorial_PostTitle}
13+
14+
\shortfalse
15+
\mediumfalse
16+
\fullfalse
17+
\notoverviewtrue
18+
19+
\usepackage{minted}
20+
21+
\begin{document}
22+
23+
\begin{frame}
24+
\titlepage
25+
\end{frame}
26+
27+
\begin{frame}[fragile]{Welcome to Kokkos}
28+
29+
\textbf{Online Resources}:
30+
31+
\begin{itemize}
32+
\item \url{https://github.com/kokkos}:
33+
\begin{itemize}
34+
\item Primary Kokkos GitHub Organization
35+
\end{itemize}
36+
\item \url{https://github.com/kokkos/kokkos-tutorials/wiki/Kokkos-Lecture-Series}:
37+
\begin{itemize}
38+
\item{Slides, recording and Q\&A for the Lectures}
39+
\end{itemize}
40+
\item \url{https://kokkos.github.io/kokkos-core-wiki}:
41+
\begin{itemize}
42+
\item Wiki including API reference
43+
\end{itemize}
44+
\item \url{https://kokkosteam.slack.com}:
45+
\begin{itemize}
46+
\item Slack channel for Kokkos.
47+
\item Please join: fastest way to get your questions answered.
48+
\item Can whitelist domains, or invite individual people.
49+
\end{itemize}
50+
\end{itemize}
51+
52+
\end{frame}
53+
54+
\input{../sections/Section_FortranInterOp}
55+
56+
\begin{frame}{Module 9 Summary}
57+
\textbf{Fortran Language Compatibility Layer}
58+
\begin{itemize}
59+
\item Initialize Kokkos from Fortran via \texttt{kokkos\_initialize} and \texttt{kokkos\_finalize}
60+
\item \texttt{nd\_array\_t} is a representation of a \texttt{Kokkos::View}
61+
\item Create \texttt{nd\_array\_t} from a Fortran array via \texttt{to\_nd\_array}
62+
\item Allocate \texttt{Kokkos::DualView} in Fortran with \texttt{kokkos\_allocate\_dualview}
63+
\end{itemize}
64+
\end{frame}
65+
66+
\end{document}

Content/Presentations/modularized/KokkosTutorial_Medium.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@
203203
\item Module 6: Internode: MPI and PGAS
204204
\item Module 7: Tools: Profiling, Tuning and Debugging
205205
\item Module 8: Kernels: Sparse and Dense Linear Algebra
206+
\item Module 9: Fortran inter-op
206207
\end{itemize}
207208
\end{frame}
208209

Content/Presentations/modularized/KokkosTutorial_Short.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@
164164
\item Module 6: Internode: MPI and PGAS
165165
\item Module 7: Tools: Profiling, Tuning and Debugging
166166
\item Module 8: Kernels: Sparse and Dense Linear Algebra
167+
\item Module 9: Fortran inter-op
167168
\end{itemize}
168169

169170
\begin{center}

0 commit comments

Comments
 (0)