diff --git a/src/year2/architectures-and-platforms-for-ai/metadata.json b/src/year2/architectures-and-platforms-for-ai/metadata.json new file mode 100644 index 0000000..624746c --- /dev/null +++ b/src/year2/architectures-and-platforms-for-ai/metadata.json @@ -0,0 +1,11 @@ +{ + "name": "Architectures and Platforms for Artificial Intelligence", + "year": 2, + "semester": 1, + "pdfs": [ + { + "name": "APAI module 1", + "path": "module1/apai1.pdf" + } + ] +} \ No newline at end of file diff --git a/src/year2/architectures-and-platforms-for-ai/module1/ainotes.cls b/src/year2/architectures-and-platforms-for-ai/module1/ainotes.cls new file mode 120000 index 0000000..4a953bf --- /dev/null +++ b/src/year2/architectures-and-platforms-for-ai/module1/ainotes.cls @@ -0,0 +1 @@ +../../../ainotes.cls \ No newline at end of file diff --git a/src/year2/architectures-and-platforms-for-ai/module1/apai1.tex b/src/year2/architectures-and-platforms-for-ai/module1/apai1.tex new file mode 100644 index 0000000..0581070 --- /dev/null +++ b/src/year2/architectures-and-platforms-for-ai/module1/apai1.tex @@ -0,0 +1,13 @@ +\documentclass[11pt]{ainotes} + +\title{Architectures and Platforms for\\Artificial Intelligence\\(Module 1)} +\date{2024 -- 2025} +\def\lastupdate{{PLACEHOLDER-LAST-UPDATE}} +\def\giturl{{PLACEHOLDER-GIT-URL}} + +\begin{document} + + \makenotesfront + \input{./sections/_introduction.tex} + +\end{document} \ No newline at end of file diff --git a/src/year2/architectures-and-platforms-for-ai/module1/sections/_introduction.tex b/src/year2/architectures-and-platforms-for-ai/module1/sections/_introduction.tex new file mode 100644 index 0000000..c173837 --- /dev/null +++ b/src/year2/architectures-and-platforms-for-ai/module1/sections/_introduction.tex @@ -0,0 +1,36 @@ +\chapter{Introduction} + +\begin{description} + \item[Wall-clock time] \marginnote{Wall-clock time} + Time taken to run a program from start to finish. + + \item[High performance computing (HPC)] \marginnote{High performance computing (HPC)} + Specialized hardware aiming to reduce wall-clock time (e.g., super-computer). A program is split into strongly coupled sub-problems. + + \item[High throughput computing (HTC)] \marginnote{High throughput computing (HTC)} + Commodity hardware that guarantees a high job throughput (e.g., cloud computing). A program is split into loosely coupled sub-problems that are not necessarily related to each other. +\end{description} + +\begin{remark} + A system with two units of the same processor with the clock halved is usually more power efficient than a system with a single unit at full speed. +\end{remark} + +\begin{description} + \item[Parallel programming steps] + The typical steps to write a parallel program is the following: + \begin{enumerate} + \item Decompose the main problem into sub-problems. + \item Distribute the sub-problems to the execution units. + \item Solve each sub-problem. + \item Merge the sub-solutions. + \end{enumerate} + + \begin{description} + \item[Embarrassingly parallel problem] \marginnote{Embarrassingly parallel problem} + Problem that can be split in completely independent sub-problems. + + \begin{remark} + Typically, parallelizing a sequential algorithm is not straightforward. + \end{remark} + \end{description} +\end{description} \ No newline at end of file