{ "metadata": { "name": "", "signature": "sha256:08da3db4d70520bd5872c8de0f7b5f02521e754e0621601631ef914b05113276" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Notebook for MP-Sort: Massively Parallel Sorting on BlueWaters" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Prepare the data files" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make sure files are there\n", "!ls test-*-*.e*" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "test-128-10000000.e1121724 test-32-100000.e1121736\r\n", "test-128-1000000.e1121731 test-5000-10000000.e1121728\r\n", "test-128-100000.e1121738 test-5000-1000000.e1121735\r\n", "test-2500-10000000.e1121727 test-5000-100000.e1121742\r\n", "test-2500-1000000.e1121734 test-512-10000000.e1121726\r\n", "test-2500-100000.e1121741 test-512-1000000.e1121733\r\n", "test-256-10000000.e1121725 test-512-100000.e1121740\r\n", "test-256-1000000.e1121732 test-64-10000000.e1121723\r\n", "test-256-100000.e1121739 test-64-1000000.e1121730\r\n", "test-32-10000000.e1121722 test-64-100000.e1121737\r\n", "test-32-1000000.e1121729\r\n" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "%%file maketxt.awk\n", "BEGIN { STATE = 0 }\n", "/-------.*----/ { STATE=STATE+1; next }\n", "STATE==1 && /Job name.*/ {\n", " split($3, a, /-/)\n", " print a[1]\n", " print a[2]\n", " next\n", "}\n", "STATE==2 && /Nresolved.*/ { print $3 ; next; }\n", "STATE==2 && /radix sort.*/ { print $3; STATE=3 ; next }\n", "/Application.*/ {STATE=4; next }\n", "STATE==3 { print $2 }\n", "STATE==4 { }\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Overwriting maketxt.awk\n" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "%%file maketxt.py\n", "import numpy\n", "from sys import stdin, stdout\n", "x = numpy.loadtxt(stdin)\n", "x = x.reshape(-1, 11)\n", "numpy.savetxt(stdout, x, fmt='%.8g')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Overwriting maketxt.py\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "!for i in test-*-*.e*; do awk -f 'maketxt.awk' $i; done |python maketxt.py > timing-full.txt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "# Grepped from BlueTides log files with \n", "#grep -B 3 'Group catalogues saved. took' *.e* | awk 'NR % 5==1{printf(\"%d \", $4)}; NR % 5 ==4{print $6;}'\n", "# then marked runs before the switch to MP-sort with 0 and after 1. (BlueTides log files contains too much junk to be included here)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "%%file FOF-time.txt\n", "0 131518536 1182.93\n", "0 337978816 1443.26\n", "0 809041153 1712.31\n", "0 1797890470 2413.39\n", "1 3741494450 1708.57\n", "1 6251709054 1687.02\n", "1 7234944269 1820.08\n", "1 13145107052 2540.98\n", "1 22349137220 2754.68" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Overwriting FOF-time.txt\n" ] } ], "prompt_number": 27 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Tables and Figures" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Generate the Table " ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy\n", "from matplotlib.figure import Figure\n", "from matplotlib.backends.backend_agg import FigureCanvasAgg\n", "g = numpy.loadtxt('timing-full.txt', )\n", "legends = ['Total', 'LocalSort1', 'FindEdges', 'SolveLayout', 'Exchange', 'LocalSort2']\n", "# converto ranks\n", "g[:, 0] *= 32\n", "labels = {100000:'100K',\n", " 1000000: '1M',\n", " 10000000: '10M'}\n", "print g.shape\n", "for load in [100000, 1000000, 10000000]:\n", " f = g[numpy.int32(g[:, 1]) == load, :]\n", " arg = f[:, 0].argsort()\n", " f = f[arg]\n", " print labels[load], ' & ', '&'.join([' %3.4g ' % a for a in f[:, 3]]), r'\\\\'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(21, 11)\n", "100K & 2.167 & 4.088 & 7.094 & 13.95 & 20.45 & 269.5 & 342.5 \\\\\n", "1M & 3.324 & 5.404 & 8.949 & 13.32 & 28.48 & 285.4 & 462.5 \\\\\n", "10M & 25.35 & 26.33 & 32.59 & 29.9 & 39.37 & 309 & 475.8 \\\\\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Plots" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# used by plotting cells.\n", "def plotstrong(ax, x, f, xlim, title):\n", " \"\"\" plots a data column \"\"\"\n", " Total = f[:, 3]\n", " print f[:, 0]\n", " LocalSort1 = f[:, 4]\n", " FindEdges = f[:, 5] + f[:, 6]\n", " SolveLayout = f[:, 7] + f[:, 8]\n", " Exchange = f[:, 9]\n", " LocalSort2= f[:, 10]\n", "\n", " for row, marker in zip(legends, 'o>^*sd'):\n", " ax.plot(x, locals()[row], marker+'-', label=row,\n", " markersize=8,\n", " markeredgewidth=1, lw=1)\n", "\n", " ax.set_xscale('log')\n", " ax.set_yscale('log')\n", " \n", " ax.set_xlim(*xlim)\n", " ax.set_ylim(1e-2, .4e4)\n", " " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "# This figure did not make it into the paper\n", "# Alltoall Time per message as a function of message size.\n", "# \n", "fig = Figure()\n", "canvas = FigureCanvasAgg(fig)\n", "ax = fig.add_subplot(111)\n", "print g.shape\n", "for msgcount in numpy.unique(g[:, 0]):\n", " f = g[numpy.int32(g[:, 0]) == msgcount]\n", " msgsize = 1.0 * f[:, 1] / f[:, 0]\n", " ax.plot(msgsize, f[:, 9] / msgcount, 'o', label='%g' % msgcount)\n", " ax.set_yscale('log')\n", " ax.set_xscale('log')\n", " ax.legend(ncol=2, loc='upper left')\n", " ax.set_ylim(1e-3, 1e-2)\n", " ax.set_xlim(1e-1 * 1, .3e5 * 1)\n", "MSGsplit = 1536 * 1, 0.002\n", "style = {'color': 'gray', 'lw':2, 'ls':'--'}\n", "ax.axvline(MSGsplit[0], **style)\n", "ax.axhline(MSGsplit[1], **style)\n", "ax.set_ylabel('Average Alltoallv Time per Message [Sec]')\n", "ax.set_xlabel('Average Alltoallv Message Size [8 Bytes]')\n", "ax.annotate(\"Region I\", (0.1, 0.45), xycoords='axes fraction')\n", "ax.annotate(\"Region II\", (0.1, 0.05), xycoords='axes fraction')\n", "ax.annotate(\"Region III\", (0.8, 0.45), xycoords='axes fraction')\n", "fig.savefig('exchange-by-msgsize.png')\n", "fig" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(21, 11)\n" ] }, { "metadata": {}, "output_type": "pyout", "png": "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\n02cWFhaPgPJutO/cudNRRbEqhZICIYQor8bdXCQlJfWOiorydnZ2PsvlckWenp77xWKxrmrCJIQQ\nog0U3n3EGONcuHChf1RUlPfBgwfH2dvbp4wZM+YXTQ/JSWcKhDRe1PdRzdX67iMOh8MGDBhwPiws\nLODBgwdt586dG3zp0qV+dRsmIYQQbaBwOM6KdHV1xa6urnGurq5xqgqIEEKI5ij1nAIhhJCGjZIC\nIYQQqWolhd9++23Q9u3b/QDg2bNnrbTltlRCCCF1S+HdRwKBQJCYmOh469atbhkZGV0fPnxoOWHC\nhH3nz58foKYYZaK7j4i2EJ4SIiQyBMWsGPocffB9+HAf7q7psN5yTihEXEgImhQXo1RfH658Pga7\na1+cRLVq/JyCxC+//DImOTnZwdHRMREALC0tH+bm5prWZZCE1FfCU0IE/RAEkYNIWib6ofxvbUoM\n54RCnAwKwirRf3Eu+vdvSgykIoWXj/T19Yt1dHTKJK/z8/ONVRsSIfIJ4+PB4/PhMmcOeHw+hPHx\nGo0nJDKkUkIAAJGDCKHRoRqKSLa4kJBKCQEAVolEOBWqXXESzVN4puDp6bl/5syZm1++fNl8y5Yt\n/uHh4dNmzJixVR3BEVKRMD4eQVFREPn6SstEEREAAPehQzUSUzErllleJC5CvDAeMSEx0CnWQZl+\nGTz4Hhjqrpk4mxTLjlO3qKhG26svl8yI8hQmhfnz56+Li4tzNTU1zc3IyOi6YsWKJcOHDz+ljuAI\nqSgkJqZSQgAAka8vQmNiNJYU9Dn6MstLH5YiKigKvqL/4o0QlScwTSSGUn3ZcYoNDJTeVn25ZEZq\nploPr9EDa0QbFOvIvtpZk9+6ddXoyvfhQ/SDqNIXJDeJi/bZ7SslBADwFfkiJjRGI0nBlc/HIpGo\n0iWkhVwu3AIDld5WVZfMKCnUfwqTgqmpae6bZc2aNXvVt2/fP9avXz+vU6dOf6smNEIq0y8rk1mu\n7G/dumx0lXwJhkaHokhcBANdAwQGBOLUKjkn0zW7WlNrknotCQ2FblERxAYGcAsMrFEirOqSmbpQ\n30eqozApBAUFbWzXrt19b2/vKACIjo6eKBKJuA4ODsnTpk0LT0hIcFF5lIQA4Ht4QBQRUekSEnfP\nHgT6+Ci1HXmNrktCQ2v0Jek+3P2tX8gnvzspe2Hlr9bUmcHu7nVyp5G8S2YGuhqsHKkzCpPCkSNH\n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\n", "prompt_number": 40, "text": [ "" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "# Weak scaling figures\n", "fig, axes = subplots(1, 3, sharex=True, sharey=True, squeeze=True, figsize=(8, 3))\n", "\n", "labels = {100000:'100K',\n", " 1000000: '1M',\n", " 10000000: '10M'}\n", "for ax, load in zip(axes, [100000, 1000000, 10000000]):\n", " f = g[numpy.int32(g[:, 1]) == load, :] \n", " arg = f[:, 0].argsort()\n", " f = f[arg]\n", " plotstrong(ax, f[:, 0], f, xlim=(.5e3,\n", " 4e5), \n", " title=\"Weak Scaling with %d items per MPI rank\" % load\n", " )\n", " ax.set_title(x=0.95, y=0.01, label=labels[load], ha='right', fontsize='small')\n", "l = ax.get_legend_handles_labels()\n", "fig.legend(*l, ncol=6, loc='upper center', fontsize='small', numpoints=1, frameon=True)\n", "axes[1].set_xlabel('Number of MPI ranks')\n", "axes[0].set_ylabel(\"Walltime [sec]\")\n", "#ax.set_title(title)\n", "fig.tight_layout()\n", "\n", "fig.savefig('weak.png', dpi=200)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 1024. 2048. 4096. 8192. 16384. 80000. 160000.]\n", "[ 1024. 2048. 4096. 8192. 16384. 80000. 160000.]\n", "[ 1024. 2048. 4096. 8192. 16384. 80000. 160000.]\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# Strong scaling figures\n", "fig, axes = subplots(2, 3, sharex=True, sharey=True, squeeze=True, figsize=(8, 5.5))\n", "\n", "for ax, np in zip(numpy.reshape(axes, -1), [2048, 4096, 8192, 16384, 80000, 160000]):\n", " f = g[numpy.int32(g[:, 0]) == np, :] \n", " arg = f[:, 1].argsort()\n", " f = f[arg]\n", " plotstrong(ax, f[:, 1], f, xlim=(.5e5,\n", " 5e7), \n", " title=\"Strong scaling with %d MPI ranks\" % np\n", " )\n", " ax.set_title(x=0.95, y=0.01, label='%d Ranks' % np, ha='right', fontsize='small')\n", "l = ax.get_legend_handles_labels()\n", "fig.legend(*l, ncol=6, loc='upper center', fontsize='small', numpoints=1, frameon=True)\n", "axes[1, 1].set_xlabel('Number of Items per rank')\n", "axes[0, 0].set_ylabel(\"Walltime [sec]\")\n", "#ax.set_title(title)\n", "axes[1, 0].set_ylabel(\"Walltime [sec]\")\n", "\n", "fig.tight_layout()\n", "\n", "fig.savefig('strong.png', dpi=200)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 2048. 2048. 2048.]\n", "[ 4096. 4096. 4096.]\n", "[ 8192. 8192. 8192.]\n", "[ 16384. 16384. 16384.]\n", "[ 80000. 80000. 80000.]\n", "[ 160000. 160000. 160000.]" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\njIxM6c2bN3tYWVndAIDCwsIWbdu2zQQAGRmZ0q+++urPqsowevToA8LfU1NT9d3d3Q9mZma25fF4\n8gYGBk+F+3zQoEEn5eTkSjQ1NbO1tLRevnjxog0AvHz5Umv48OFH//rrry+NjIziq9tfhBC6XEWI\n1Jg7d+7PO3bs8C4oKFASzpOVleULL6UIBAIuj8eTF76noKBQLPydy+UKhK+5XK6guv40wn46W7Zs\nmRUbG2sRGxtrkZiYaPjFF1+cBQAlJaWCqj5XsZLCGONU7PNTm/4/R44cGSGMITk5uYPwwF+Tsp08\neXLQzJkzt966dcuyZ8+e1yv3k6kcT8V4J02atEu43fj4eKNly5b5A4CiomJRdeWouG98fHw2z549\ne9Pdu3fNgoODpxUWFrYQvicvL88T/i4jI1MqjFlNTe11+/btn12+fLmPqPuKkOaIKjmESAl1dfVc\nd3f3gzt27PAWHmg7dOiQLOy3cfz48aElJSVyoqyTMcY5dOjQKMYYJzEx0fDp06cGRkZG8S4uLqe3\nbdv2jfDg+/jx4y7v3r37rLp19ezZ8/rFixcdsrOzNUtLS2X279//tYODw8WaxqKiopL/5s0bZeFr\nFxeX05s2bZotfB0bG2shjLm68gh/pqSktHN0dLwQGBjom5eXp1qxcihc5syZMwNyc3PVCwsLWxw7\ndmyYvb19ZP/+/c8dPnx45KtXr1oDQE5OjkZKSkq7mpShYmz5+fkqOjo66UBZ/59PLVOZvLw878iR\nIyP++OOPifv27RtTk20S0pxRJYcQCVex5WD+/Pk/ZWVltRK+njJlym8XL150EHaEFXY8rvy5yusT\nvsfhcFi7du1SrK2trw0cOPBUcHDwNHl5ed7kyZN/79q16wNLS8tbpqamcTNmzPiFz+fLVvxsZdra\n2hmBgYG+Tk5O57t3737bysrqhvAyUk3K5+TkdP7BgwddhR2Ply5durKkpETOzMzsromJyb3ly5ev\nqBx/5XIK3ystLZWZMGHCbjMzs7uWlpa35syZs1FFRSW/8natra2vffXVV3+am5vfGTly5GFLS8tb\nxsbGD1etWvWDs7NzhLm5+R1nZ+eIzMzMttXt00/F4ufn5zdq1KhDVlZWN1q3bv2q4j6v7m/z2Wef\nvTtx4sTgoKCgeSdOnBj8X/uPkOaMw1i93W1KCCFSIzQ01OPmzZs9PnV3EyFEMlBLDiGEfEJ1LSqE\nEMlALTmEEEIIkUrUkkMIIYQQqUSVHEIIIYRIJarkEEIIIUQqUSWHEEIIIVKJKjmEEEIIkUpUySGE\nEEKIVPo/zA1mfoZmJAQAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 91 }, { "cell_type": "code", "collapsed": false, "input": [ "# improvements in BlueTides: before and after.\n", "import numpy\n", "from matplotlib.figure import Figure\n", "from matplotlib.backends.backend_agg import FigureCanvasAgg\n", "gg = numpy.loadtxt('FOF-time.txt', unpack=False)\n", "old = gg[gg[:, 0]==0]\n", "new = gg[gg[:, 0]==1]\n", "print 700*1e9 / 1500.\n", "def io(x):\n", " t = x / 466666666.667\n", " t = t.clip(1000, 1000)\n", " return t\n", "print io(new[-1, 1])\n", "print gg[:, 1] / 81000. ** 2\n", "figure = Figure((8, 3), dpi=200)\n", "canvas = FigureCanvasAgg(figure)\n", "\n", "ax = figure.add_subplot(111)\n", "ax.plot(old[:, 1], old[:, 2], 'b-', lw=2)\n", "ax.plot(old[:, 1], old[:, 2] - io(old[:, 1]), 'bo ', label='Merge-sort')\n", "#plot(old[:, 1], old[:, 2], 'o ')\n", "#plot(old[:, 1], io(old[:, 1]))\n", "ax.plot(new[:, 1], new[:, 2], 'g-', lw=2)\n", "ax.plot(new[:, 1], new[:, 2] - io(new[:, 1]), 'gs ', label='MP-Sort')\n", "#plot(new[:, 1], new[:, 2], 'o ')\n", "#plot(new[:, 1], io(new[:, 1]))\n", "fakex = new[0, 1]\n", "fakey = 4000.\n", "#ax.plot(fakex, fakey, '^ ', label='Est. Merge-sort')\n", "x = logspace(8, 11)\n", "ax.set_xlim(1e8, 5e10)\n", "ax.plot(x, x * 1e-6 * numpy.log(x) / 20, '--', label='N log N', color='gray')\n", "ax.set_xscale('log')\n", "ax.set_yscale('log')\n", "ax.set_ylim(100, 1e4)\n", "ax.legend(loc='upper center', ncol=4, numpoints=1, fontsize='small')\n", "ax.set_xlabel('Number of Sorted Particles')\n", "ax.set_ylabel('Sorting Walltime [sec] (Recovered)')\n", "figure.tight_layout()\n", "figure.savefig('MPSortInBlueTides.png', dpi=200)\n", "display(figure)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "466666666.667\n", "1000.0\n", "[ 0.0200455 0.05151331 0.12331065 0.2740269 0.57026283 0.95285918\n", " 1.10271975 2.00352188 3.40636141]\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }