{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## RDF\n", "The radial distribution function (RDF) denoted in equations by g(r) defines the probability of finding a particle at a distance r from another tagged particle. The RDF is strongly dependent on the type of matter so will vary greatly for solids, gases and liquids.\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you might have observed the code complexity of the algorithm in $N^{2}$ . Let us get into details of the sequential code. **Understand and analyze** the code present at:\n", "\n", "[RDF Serial Code](../../source_code/serial/rdf.f90)\n", "\n", "[Makefile](../../source_code/serial/Makefile)\n", "\n", "Open the downloaded file for inspection." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!cd ../../source_code/serial && make clean && make" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We plan to follow the typical optimization cycle that every code needs to go through\n", "\n", "\n", "In order analyze the application we we will make use of profiler \"nsys\" and add \"nvtx\" marking into the code to get more information out of the serial code. Before running the below cells, let's first start by divining into the profiler lab to learn more about the tools. Using Profiler gives us the hotspots and helps to understand which function is important to be made parallel.\n", "\n", "-----\n", "\n", "#