{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Lecture 19: Parallelism\n",
"\n",
"## CS4787 — Principles of Large-Scale Machine Learning Systems"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"┌ Warning: PyPlot is using tkagg backend, which is known to cause crashes on MacOS (#410); use the MPLBACKEND environment variable to request a different backend.\n",
"└ @ PyPlot /Users/cdesa/.julia/packages/PyPlot/4wzW1/src/init.jl:192\n"
]
}
],
"source": [
"using PyPlot\n",
"using LinearAlgebra\n",
"using Statistics"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"So far we've been talking about **optimization algorithms** to train machine learning models efficiently, and ways that we can use **statistical subsampling** to make them more efficient.\n",
"\n",
"We made repeated use of the first two **principles of scalable machine learning** I outlined in the first lecture:\n",
"\n",
"* Principle #1: Write your learning task as an optimization problem, and solve it via fast algorithms that update the model iteratively.\n",
"\n",
"* Principle #2: Make it easier to process a large dataset by processing a small random subsample instead."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"#### The next stage of the class\n",
"\n",
"In the rest of the class, we're going to focus more on the third principle:\n",
"\n",
"* **Principle #3: Use algorithms that fit your hardware, and use hardware that fits your algorithms.**\n",
"\n",
"In order to apply this principle, we need to first understand: what does modern hardware look like? Since this class doesn't assume any background in computer architecture, I'm going to quickly present some basics here."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### A brief history of computer architecture.\n",
"\n",
"For most of the history of computing, **CPUs** dominated the market for general-purpose computing.\n",
"\n",
"\n",
"\n",
"These chips worked by repeatedly performing the following operation:\n",
"\n",
"* Load an **instruction** from memory.\n",
"* According to the instruction, perform some single computation on some data (either in memory or in registers on the chip\n",
" * For example, in x86 an `add $10, %eax` instruction would add the number $10$ to the number currently stored in the integer register `eax`.\n",
"* Update the instruction pointer to point to the next instuction, or somewhere else if a jump occurred."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### CPUs continued\n",
"\n",
"These CPUs were made from transitors, and **Moore's law** dictated that the number of transitors that could be put on a chip (of fixed size) would double roughly every 18 months.\n",
"\n",
"Most of the history of computer architecture is a\n",
"bout using those extra transistors to make CPUs compute this simple instruction-evaluation loop **faster**.\n",
"\n",
"There are a couple of ways this was done."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Speeding up CPUs\n",
"\n",
"The simplest way to speed up a CPU is **increasing the clock speed**. People had been doing this for decades.\n",
"\n",
"\n",
"\n",
"CPUs (and most other integrated circuits) are driven by a **clock** which controls how fast digital computations are performed. By increasing the speed of the clock, circuits could compute the same operations more quickly. (This really nice figure can be found at https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/.)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"* Limitation: the computations do take some amount of time to perform. If you raise the clock speed too high, the chip starts performing the next computation before the previous computation is complete, and could be using garbage inputs.\n",
"\n",
"* Limitation: as the clock speed increases, so does the power used by the chip. If you raise the clock speed too high, the chip could melt."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Speeding up CPUs (continued)\n",
"\n",
"Another classical way to make CPUs faster is **computing multiple instructions at the same time** a.k.a. \"in parallel.\"\n",
"\n",
"The main idea: if I have two adjacent instructions like `add $10, %eax` (which adds $10$ to the `eax` register) and `mul $3, %edx` (which multiplies the `edx` register by $3$), I can compute them in parallel since they don't depend on each other.\n",
"\n",
"By taking advantage of this so-called **instruction-level parallelism** (ILP) CPUs could use the extra transistors they got from Moore's law to run multiple independent instructions at the same time, which increased the overall speed at which instructions could be computed."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"* Limitation: there is a finite amount of instruction-level parallelism available within any section of a program, so there's an upper limit on how fast ILP can make our programs."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### More ways to speed up CPUs\n",
"\n",
"The above two methods of making programs run faster work without any changes to the program code (although ILP can be facilitated by a compiler that optimizes for it).\n",
"\n",
"But additional performance is possible from using specialized instructions that enable new types of parallelism.\n",
"\n",
"One of the most popular techniques of this type is **single-instruction multiple-data (SIMD)** instructions.\n",
"\n",
"These are special instructions that perform multiple operations (usually arithmetic operations) explicitly in parallel at the same time."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### An example of SIMD\n",
"\n",
"An ordinary floating-point `ADD` instruction takes two 32-bit registers $x$ and $y$ as input, each one of which holds a single-precision floating point number. The instruction computes the sum of those numbers $x + y$, and stores the result in a third register.\n",
"\n",
"A SIMD `ADD` instruction takes two 256-bit registers as input, each of which holds eight single-precision floating-point numbers.\n",
"\n",
"* That is, bits $0$–$31$ of each register store the first floating point number ($x_0$ and $y_0$), bits $32$–$63$ store the second ($x_1$ and $y_1$), et cetera.\n",
"\n",
"The SIMD instruction computes the sum of each corresponding pair of numbers in the registers.\n",
"\n",
"* i.e. it computes $x_0 + y_0$, $x_1 + y_1$, $\\ldots$, $x_7 + y_7$, and it stores the eight results in another 256-bit register.\n",
"\n",
"We can also think of a SIMD instruction as operating on a vector of eight numbers; for this reason, SIMD instructions are often called **vector instructions**."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"**Takeaway from this example:** with one instruction, the SIMD `ADD` has done eight times as much work as the ordinary `ADD` instruction."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## When is SIMD useful?\n",
"\n",
"SIMD instructions are particularly useful for dense, predictable numerical computations.\n",
" \n",
"* We need to do lots of these computations in machine learning: for example, matrix multiplies.\n",
"\n",
"* And you've already seen SIMD in action: it's used in the numpy and TensorFlow libraries that you've used for the programming assignments."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### The End of the \"Free Lunch\"\n",
"\n",
"For a long time, computer scientists enjoyed a constant rate of speedups as clock frequencies increased and architectures improved from year to year.\n",
"\n",
"Unfortunately, this couldn't last forever.\n",
"\n",
"In 2005, Herb Sutter announced to the world in his famous article that \"The Free Lunch is Over.\"\n",
"\n",
"The cause: the end of frequency scaling for CPUs.\n",
"\n",
"\n",
"\n",
"In the mid-2000s, clock frequencies had hit a power wall where simply too much heat was being generated to dissipate through the physical medium of the chip.\n",
"\n",
"On the other hand, Moore's law was still going strong: the number of transistors we could put on a chip was still increasing, but we just couldn't use them to make the chip directly **faster** anymore."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Multicore Parallelism\n",
"\n",
"To address this, processor vendors turned towards **multicore computing**.\n",
"\n",
"A multicore chip has two or more semi-independent CPUs running in parallel on a single chip.\n",
"\n",
"\n",
"\n",
"These **CPU cores** have their own local state and run their own instruction-evaluation loop.\n",
"\n",
"Multiple CPU cores on a multicore chip can collaborate together to compute some tasks more quickly.\n",
"\n",
"This collaboration is enabled by a **shared memory model** in which the same address in memory points to the same data on all the cores on a chip.\n",
"\n",
"* This lets the cores reference, read, and write the same data just as a single-core CPU would."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Programming Multicore Computers\n",
"\n",
"The parallel capabilities of a multicore chip are usually made available to programmers through a **threading** abstraction.\n",
"\n",
"A program can create multiple \"threads\" each of which which runs concurrently, hopefully (if the OS decides to schedule them in this way) in parallel on the different cores of the chip. The performance of threads can be affected by the characteristics of the hardware:\n",
"\n",
"* One important variant of multicore technology is **hyperthreading**, in which two or more threads are run in parallel on the same CPU core (as opposed to on different cores on the same chip).\n",
"\n",
" * Since hyperthreaded threads aren't actually running on different CPUs, but instead are sharing the resources of a single CPU, they will generally run much slower than threads running on different cores would (but still, ideally, achieve more than a single thread running on that core would).\n",
" \n",
"* Another important variant of multicore technology involves multiple CPUs chips running on a single motherboard.\n",
"\n",
" * Such a system usually still has a shared memory model among all the CPUs, but now has **non-uniform memory access** (NUMA): while a CPU chip can **address** data on or nearby another CPU, the cost of accessing that memory will be higher than the cost of accessing local memory."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Distributed Computing\n",
"\n",
"Nowadays even Moore's law is looking like it's going to end soon.\n",
"\n",
"* We're running into fundamental limits of how small a transistor can be.\n",
"\n",
"* So the exponential increase in the computing capabilities of a single chip will, eventually, end.\n",
"\n",
"How can we continue to scale as this happens?"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"One answer: **distributed computing** use multiple independent chips running on different computers, usually in a computer cluster or on the cloud.\n",
"\n",
"\n",
"\n",
"* From a programmer's perspective, the distinction between multicore and distributed computing is that there's no shared memory model: communication between different worker machines usually needs to be done explicitly.\n",
"\n",
"* From a performance perspective, the distinction is that in a distributed setting, communication between different workers is relatively costly (i.e. it has a high latency)."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Amdahl's Law\n",
"\n",
"For most programs, only part of the program is **parallelizable**, so even in the limit of a large number of parallel workers the performance will eventually be bottlenecked by the part that can't be parallelized\n",
"\n",
"* i.e. either inherently sequential computation or overhead from the parallelism\n",
"\n",
"This is formalized in **Amdahl's law**.\n",
"\n",
"Amdahl's law states that if a program has a non-parallelizable component that takes up a fraction $s$ of the time for it to run on a serial machine, then the speedup that will result from running it on a parallel machine with $m$ workers will be\n",
"\n",
"$$\\text{speedup} = \\frac{1}{s + \\frac{1 - s}{m}}.$$\n",
"\n",
"Amdahl's law gives us a rough idea of how much speedup we can expect from running something in parallel."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"image/png": "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KSsrY+DAgXJf6pk6dSo33XQTo0ePbrDf2e/RsWPHiIiIICYmhjvvvJMTJ04A8p0DsGLFCuLj47ntttsICQmhV69efPDBB/bjzn6PJNicR25uLlarldDQ0Ab7Q0NDycrKclCpmqba+yH3SnumPXPmTIYMGUK3bt0A7f64urri7+/f4FxnuT9JSUl4eXlhMpmYMmUKy5Yto0uXLk5/X2otXbqUXbt2MXfu3HOOOfM96t+/P//5z39YtWoVH3zwAVlZWQwaNIi8vDz5zgFOnDjBggULiI2NZdWqVUyZMoXHH3+c//znP4B8LzvneMuXSKfTNXitlDpnn9DIvYJp06axb98+Nm3a9IvnOsv96dixI3v27KGwsJAvv/ySBx54gPXr11/wfGe5LwDp6ek88cQTrF69Gjc3t0t+nzPco7Fjx9q3u3fvzsCBA2nXrh2LFy9mwIABgHN/59hsNuLj45kzZw4AvXr14sCBAyxYsID777/ffp6z3iOpsTmPoKAgDAbDOck2Ozv7nATs7Gp7Kjj7vZo+fTorVqxg7dq1REZG2veHhYVhNpspKChocL6z3B9XV1fat29PfHw8c+fOJS4ujr/97W9Of19Ae9SUnZ1Nnz59MBqNGI1G1q9fz9///neMRiOhoaFOf49qeXp60r17d44dOybfOUB4eDhdunRpsK9z5872zi3Ofo8k2JyHq6srffr0ITExscH+xMREBg0a5KBSNU0xMTHINo0pAAAOzElEQVSEhYU1uFdms5n169c7xb1SSjFt2jS++uorfvzxR2JiYhoc79OnDy4uLg3uT2ZmJvv373eK+3M2pRRVVVVyX4BRo0aRlJTEnj177Et8fDz33HOPfdvZ71GtqqoqDh06RHh4uNN/5wAMHjz4nGEljh49SnR0NCDfy9Ir6gKWLl2qXFxc1IcffqgOHjyoZsyYoTw9PdXJkycdXbRrrqSkRO3evVvt3r1bAerNN99Uu3fvVqmpqUoppebNm6d8fX3VV199pZKSktRdd92lwsPDVXFxsYNL3vgeffRR5evrq9atW6cyMzPtS3l5uf2cKVOmqMjISLVmzRq1a9cuNXLkSBUXF6csFosDS974nnvuObVhwwaVkpKi9u3bp55//nml1+vV6tWrlVLOe18upn6vKKWc9x49+eSTat26derEiRNq69ataty4ccrb29v+/evM3zlK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",
"text/plain": [
"Figure(PyObject