aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/presentation/presentation.html
diff options
context:
space:
mode:
Diffstat (limited to 'presentation/presentation.html')
-rw-r--r--presentation/presentation.html411
1 files changed, 0 insertions, 411 deletions
diff --git a/presentation/presentation.html b/presentation/presentation.html
deleted file mode 100644
index 31c1443..0000000
--- a/presentation/presentation.html
+++ /dev/null
@@ -1,411 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <meta name="generator" content="pandoc">
- <meta name="author" content="JP Appel">
- <meta name="author" content="David Marrero">
- <title>HPC Complex Fractal Generation</title>
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
- <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/reset.css">
- <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/reveal.css">
- <style>
- .reveal .sourceCode { /* see #7635 */
- overflow: visible;
- }
- code{white-space: pre-wrap;}
- span.smallcaps{font-variant: small-caps;}
- span.underline{text-decoration: underline;}
- div.column{display: inline-block; vertical-align: top; width: 50%;}
- div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
- ul.task-list{list-style: none;}
- .display.math{display: block; text-align: center; margin: 0.5rem auto;}
- </style>
- <link rel="stylesheet" href="https://unpkg.com/reveal.js@^4//dist/theme/black.css" id="theme">
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
-
-<section id="title-slide">
- <h1 class="title">HPC Complex Fractal Generation</h1>
- <p class="author">JP Appel</p>
- <p class="author">David Marrero</p>
-</section>
-
-<section>
-<section id="prerequisite-knowledge" class="title-slide slide level1">
-<h1>Prerequisite Knowledge</h1>
-
-</section>
-<section id="complex-numbers" class="slide level2">
-<h2>Complex Numbers</h2>
-<p><span class="math display"><em>i</em><sup>2</sup> =  − 1</span> <span
-class="math display"><em>z</em> = <em>x</em> + <em>i</em><em>y</em></span></p>
-<aside class="notes">
-<ul>
-<li>complex numbers are an extension of real numbers, stemming from the
-square root of <span class="math inline"> − 1</span></li>
-<li>a complex number is just a pair of two real numbers (x,y) with
-different ways to add and multiply</li>
-<li>in computer science we model real numbers with a single float or
-double, so we will need 2 floats or doubles to model a complex
-number</li>
-</ul>
-</aside>
-<div class="fragment">
-<h3 id="addition">Addition</h3>
-<p><span
-class="math display"><em>z</em><sub>1</sub> + <em>z</em><sub>2</sub> = (<em>x</em><sub>1</sub>+<em>x</em><sub>2</sub>) + <em>i</em>(<em>y</em><sub>1</sub>+<em>y</em><sub>2</sub>)</span></p>
-<aside class="notes">
-<ul>
-<li>addition behaves as you expect</li>
-<li>multiplication involves multiplying then distributing, and using the
-fact that <span
-class="math inline"><em>i</em><sup>2</sup> =  − 1</span></li>
-<li>so adding two complex numbers is 2 float additions</li>
-<li>and multiplying them is 4 multiplications and 2 additions</li>
-</ul>
-</aside>
-<h3 id="multiplication">Multiplication</h3>
-<p><span
-class="math display"><em>z</em><sub>1</sub><em>z</em><sub>2</sub> = (<em>x</em><sub>1</sub><em>x</em><sub>2</sub>−<em>y</em><sub>1</sub><em>y</em><sub>2</sub>) + <em>i</em>(<em>x</em><sub>1</sub><em>y</em><sub>2</sub>+<em>x</em><sub>2</sub><em>y</em><sub>1</sub>)</span></p>
-</div>
-</section>
-<section id="what-is-the-mandelbrot-set" class="slide level2">
-<h2>What is the Mandelbrot Set</h2>
-<div class="fragment">
-<p><span
-class="math display"><em>z</em><sub><em>n</em></sub> = <em>z</em><sub><em>n</em> − 1</sub><sup>2</sup> + <em>z</em><sub>0</sub></span></p>
-<aside class="notes">
-<ul>
-<li>this sequence is used to generate the mandelbrot set</li>
-<li>if for some complex number <span
-class="math inline"><em>z</em><sub>0</sub></span> the sequence remains
-bounded as it <span class="math inline"><em>n</em></span> approaches
-infinity then <span class="math inline"><em>z</em><sub>0</sub></span>
-lies within the mandelbrot set</li>
-<li>there are many recursive sequences related to this, where you modify
-that happens with the recursive term</li>
-</ul>
-</aside>
-</div>
-</section>
-<section id="fractals" class="slide level2">
-<h2>Fractals</h2>
-<div class="columns">
-<div class="column" style="width:40%;">
-<ul>
-<li>infinite self-similar geometric shape</li>
-<li>have “fractional dimension”</li>
-</ul>
-</div><div class="column" style="width:60%;">
-<figure>
-<img
-data-src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Sierpinski_triangle.svg/1920px-Sierpinski_triangle.svg.png"
-style="width:80.0%" alt="Sripenski Triangle" />
-<figcaption aria-hidden="true">Sripenski Triangle</figcaption>
-</figure>
-</div>
-</div>
-<div class="fragment">
-<p>The Mandelbrot set is a fractal in the complex plane</p>
-<aside class="notes">
-<ul>
-<li>fractals are a infinite self-similar geometric shape</li>
-<li>so if you zoom in on any one part it will look like the entire
-object</li>
-<li>the Sripenski triangle is an example of a fractal</li>
-<li>the mandelbrot set forms a fractal in the complex plane</li>
-</ul>
-</aside>
-</div>
-</section>
-<section id="fractal-in-nature" class="slide level2">
-<h2>Fractal in Nature</h2>
-<figure>
-<img
-data-src="https://www.rocketgardens.co.uk/wp-content/uploads/2016/02/Cauliflower20Romanesco.jpg"
-style="width:50.0%" alt="Romanesco Cauliflower" />
-<figcaption aria-hidden="true">Romanesco Cauliflower</figcaption>
-</figure>
-<aside class="notes">
-<ul>
-<li>fractals often show up in nature</li>
-</ul>
-</aside>
-</section>
-<section id="escape-time-algorithm" class="slide level2">
-<h2>Escape Time Algorithm</h2>
-<div>
-<ul>
-<li class="fragment">Inputs
-<ul>
-<li class="fragment">Maximum Number of iterations</li>
-<li class="fragment">Upper bound</li>
-</ul></li>
-</ul>
-<ol type="1">
-<li class="fragment">Create a grid of points to sample</li>
-<li class="fragment">For each point in the sample space
-<ol type="1">
-<li class="fragment">Compute the next term in the sequence</li>
-<li class="fragment">if greater than the upper bound return the number
-of iterations</li>
-<li class="fragment">else repeat until the maximum number of iterations
-and return</li>
-</ol></li>
-</ol>
-</div>
-<aside class="notes">
-<ul>
-<li>to compute the complex sets we used an escape time algorithm</li>
-<li>in general it takes in a maximum number of iterations, an initial
-value, and an upper bound</li>
-<li>the escape time algorithm is as follows (read of the slides)</li>
-<li>note that each sampled point is completely independent of any other
-point
-<ul>
-<li>this hints to us that the problem will parallelize well</li>
-</ul></li>
-<li>for most of the sets we looked at, there is a proven bound
-<ul>
-<li>ie if the sequence is ever larger than a value we know it
-diverges</li>
-</ul></li>
-</ul>
-</aside>
-</section></section>
-<section>
-<section id="implementation" class="title-slide slide level1">
-<h1>Implementation</h1>
-
-</section>
-<section id="program-structure" class="slide level2">
-<h2>Program Structure</h2>
-<p><img data-src="diagram.png" /></p>
-<aside class="notes">
-<ul>
-<li>the translation units are roughly as pictured here</li>
-<li>black ellipses are for serial code, color is for parallel</li>
-<li>each version of the program fills in an array with the number of
-iterations it took the sequence to grow too large</li>
-<li>that array along with some extra data is a grid object, which can be
-serialized and deserialized</li>
-<li>the main fractals unit handles cli argument parsing for the sampling
-resolution, fractal type etc</li>
-<li>a separate renderer program handles creating images from the
-<code>.grid</code> file</li>
-<li>the <code>.grid</code> file format is really simple, it’s a magic
-number, the grid dimensions, the maximum number of iterations, the lower
-left and upper right most points of the region, and then the data</li>
-</ul>
-</aside>
-</section>
-<section id="mandelbrot" class="slide level2">
-<h2>Mandelbrot</h2>
-<p><a href="../examples/mandelbrot.png">Image</a></p>
-<aside class="notes">
-<ul>
-<li>when mandelbrot initially tried to have this printed, the printers
-kept removing the “dust” thinking it was an error in their printing
-process</li>
-</ul>
-</aside>
-</section>
-<section id="tricorn" class="slide level2">
-<h2>Tricorn</h2>
-<p><a href="../examples/tricorn.png">Image</a></p>
-</section>
-<section id="burning-ship" class="slide level2">
-<h2>Burning Ship</h2>
-<p><a href="../examples/burning_ship.png">Image</a></p>
-</section>
-<section id="multibrot" class="slide level2">
-<h2>Multibrot</h2>
-<p><a href="../examples/multibrot.png">Image</a></p>
-</section>
-<section id="multicorn" class="slide level2">
-<h2>Multicorn</h2>
-<p><a href="../examples/multicorn.gif">GIF</a></p>
-</section>
-<section id="julia" class="slide level2">
-<h2>Julia</h2>
-<p><a href="../examples/julia.png">Image</a></p>
-</section></section>
-<section>
-<section id="analysis" class="title-slide slide level1">
-<h1>Analysis</h1>
-
-</section>
-<section id="section" class="slide level2">
-<h2></h2>
-<p><a href="../analysis/analysis.html">Interactive Plots</a></p>
-</section></section>
- </div>
- </div>
-
- <script src="https://unpkg.com/reveal.js@^4//dist/reveal.js"></script>
-
- <!-- reveal.js plugins -->
- <script src="https://unpkg.com/reveal.js@^4//plugin/notes/notes.js"></script>
- <script src="https://unpkg.com/reveal.js@^4//plugin/search/search.js"></script>
- <script src="https://unpkg.com/reveal.js@^4//plugin/zoom/zoom.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://revealjs.com/config/
- Reveal.initialize({
- // Display controls in the bottom right corner
- controls: true,
-
- // Help the user learn the controls by providing hints, for example by
- // bouncing the down arrow when they first encounter a vertical slide
- controlsTutorial: true,
-
- // Determines where controls appear, "edges" or "bottom-right"
- controlsLayout: 'bottom-right',
-
- // Visibility rule for backwards navigation arrows; "faded", "hidden"
- // or "visible"
- controlsBackArrows: 'faded',
-
- // Display a presentation progress bar
- progress: true,
-
- // Display the page number of the current slide
- slideNumber: false,
-
- // 'all', 'print', or 'speaker'
- showSlideNumber: 'all',
-
- // Add the current slide number to the URL hash so that reloading the
- // page/copying the URL will return you to the same slide
- hash: true,
-
- // Start with 1 for the hash rather than 0
- hashOneBasedIndex: false,
-
- // Flags if we should monitor the hash and change slides accordingly
- respondToHashChanges: true,
-
- // Push each slide change to the browser history
- history: false,
-
- // Enable keyboard shortcuts for navigation
- keyboard: true,
-
- // Enable the slide overview mode
- overview: true,
-
- // Disables the default reveal.js slide layout (scaling and centering)
- // so that you can use custom CSS layout
- disableLayout: false,
-
- // Vertical centering of slides
- center: true,
-
- // Enables touch navigation on devices with touch input
- touch: true,
-
- // Loop the presentation
- loop: false,
-
- // Change the presentation direction to be RTL
- rtl: false,
-
- // see https://revealjs.com/vertical-slides/#navigation-mode
- navigationMode: 'default',
-
- // Randomizes the order of slides each time the presentation loads
- shuffle: false,
-
- // Turns fragments on and off globally
- fragments: true,
-
- // Flags whether to include the current fragment in the URL,
- // so that reloading brings you to the same fragment position
- fragmentInURL: true,
-
- // Flags if the presentation is running in an embedded mode,
- // i.e. contained within a limited portion of the screen
- embedded: false,
-
- // Flags if we should show a help overlay when the questionmark
- // key is pressed
- help: true,
-
- // Flags if it should be possible to pause the presentation (blackout)
- pause: true,
-
- // Flags if speaker notes should be visible to all viewers
- showNotes: false,
-
- // Global override for autoplaying embedded media (null/true/false)
- autoPlayMedia: null,
-
- // Global override for preloading lazy-loaded iframes (null/true/false)
- preloadIframes: null,
-
- // Number of milliseconds between automatically proceeding to the
- // next slide, disabled when set to 0, this value can be overwritten
- // by using a data-autoslide attribute on your slides
- autoSlide: 0,
-
- // Stop auto-sliding after user input
- autoSlideStoppable: true,
-
- // Use this method for navigation when auto-sliding
- autoSlideMethod: null,
-
- // Specify the average time in seconds that you think you will spend
- // presenting each slide. This is used to show a pacing timer in the
- // speaker view
- defaultTiming: null,
-
- // Enable slide navigation via mouse wheel
- mouseWheel: false,
-
- // The display mode that will be used to show slides
- display: 'block',
-
- // Hide cursor if inactive
- hideInactiveCursor: true,
-
- // Time before the cursor is hidden (in ms)
- hideCursorTime: 5000,
-
- // Opens links in an iframe preview overlay
- previewLinks: false,
-
- // Transition style (none/fade/slide/convex/concave/zoom)
- transition: 'slide',
-
- // Transition speed (default/fast/slow)
- transitionSpeed: 'default',
-
- // Transition style for full page slide backgrounds
- // (none/fade/slide/convex/concave/zoom)
- backgroundTransition: 'fade',
-
- // Number of slides away from the current that are visible
- viewDistance: 3,
-
- // Number of slides away from the current that are visible on mobile
- // devices. It is advisable to set this to a lower number than
- // viewDistance in order to save resources.
- mobileViewDistance: 2,
-
- // reveal.js plugins
- plugins: [
- RevealNotes,
- RevealSearch,
- RevealZoom
- ]
- });
- </script>
- </body>
-</html>