From a4a408b4d74d20af51c6bd6f8c5c3f4a7dbef8ed Mon Sep 17 00:00:00 2001 From: Sarath Date: Sun, 5 May 2024 17:16:47 +0200 Subject: [PATCH] update speed test --- notebooks/speed_testing.ipynb | 116 ++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 53 deletions(-) diff --git a/notebooks/speed_testing.ipynb b/notebooks/speed_testing.ipynb index 9e06e00..133689a 100644 --- a/notebooks/speed_testing.ipynb +++ b/notebooks/speed_testing.ipynb @@ -24,12 +24,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "500000\n" + "256\n" ] } ], "source": [ - "n = 50\n", + "n = 4\n", "print(n**3*4)\n", "s_ase = bulk('Cu').repeat((n,n,n))\n", "write('struct.data', s_ase, format='lammps-data', atom_style='atomic')\n", @@ -46,45 +46,79 @@ "kg = KnowledgeGraph()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read with triples with atomrdf" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [ { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", - "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", - "\u001b[1;31mClick here for more info. \n", - "\u001b[1;31mView Jupyter log for further details." + "name": "stdout", + "output_type": "stream", + "text": [ + "12.5 ms ± 1.7 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ - "#%%timeit\n", - "sys = System.read.file('struct.data', format='lammps-data', graph=kg)\n", - "_ = sys.analyze.common_neighbor_analysis()" + "%%timeit\n", + "sys = System.read.file('struct.data', format='lammps-data', graph=kg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read without triples with atomrdf" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "4.47 s ± 135 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + "2.64 ms ± 77.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" ] } ], "source": [ "%%timeit\n", - "sys = read('struct.data', format='lammps-dump-text', style='atomic')" + "sys = System.read.file('struct.data', format='lammps-data')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Read with ASE" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.39 ms ± 68 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "sys = read('struct.data', format='lammps-data', style='atomic')" ] }, { @@ -96,46 +130,34 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "n = np.array([2, 4, 7, 10, 20, 30, 50, 70, 100])\n", "#direct read through atomrdf\n", - "time_pyscal_data = np.array([2.04, 2.82, 3.94, 8.9, 50.5, 178, 670, 2090, 5530])\n", - "time_read_cna = np.array([10.9, 42, 36.3, 85.2, 583, 1850, ])\n", + "time_atomrdf = np.array([2.04, 2.82, 3.94, 8.9, 50.5, 178, 670, 2090, 5530])\n", "#read through atomrdf with triples on\n", - "time_atomrdf_data = np.array([8.33, 13.7, 17.3, 30.2, 128, 427, 1780, 4980, 13900])\n", + "time_atomrdf_triples = np.array([8.33, 13.7, 17.3, 30.2, 128, 427, 1780, 4980, 13900])\n", "#direct read through ase\n", - "time_ase_data = np.array([1.17, 1.3, 3.22, 6.62, 41.1, 126, 554, 1470, 4470])" + "time_ase = np.array([1.17, 1.3, 3.22, 6.62, 41.1, 126, 554, 1470, 4470])" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "386.1748677028075" + "" ] }, - "execution_count": 23, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" - } - ], - "source": [ - "pf = np.polyfit(N, time_atomrdf_data, 1)\n", - "np.polyval(pf, 100000)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ + }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGwCAYAAABcnuQpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6WElEQVR4nO3dd3RU1fbA8e9Meu8VAoSSAAkkgaDSURFEaYrPJ/qzYYOnDxRU5Km0pyJWsAMq+mygAgKKCNKLIAkEkFBCCDU9hPQ6c39/XBgYEyAJSe5Msj9rZS3PzJmZfXOF2Zyyj05RFAUhhBBCCCul1zoAIYQQQohrIcmMEEIIIayaJDNCCCGEsGqSzAghhBDCqkkyI4QQQgirJsmMEEIIIayaJDNCCCGEsGq2WgfQ0IxGI6mpqbi5uaHT6bQORwghhBA1oCgKBQUFBAcHo9dfeeylySczqamphISEaB2GEEIIIerg1KlTtGzZ8op9mnwy4+bmBqi/DHd3d42jEUIIIURN5OfnExISYvoev5Imn8xcmFpyd3eXZEYIIYSwMjVZIiILgIUQQghh1SSZEUIIIYRVk2RGCCGEEFatya+ZqSmDwUBFRYXWYQhh9ezt7a+6jVIIIepTs09mFEUhPT2dc+fOaR2KEE2CXq8nNDQUe3t7rUMRQjQTzT6ZuZDI+Pv74+zsLIX1hLgGF4pUpqWl0apVK/nzJIRoFM06mTEYDKZExsfHR+twhGgS/Pz8SE1NpbKyEjs7O63DEUI0A816YvvCGhlnZ2eNIxGi6bgwvWQwGDSORAjRXGiazGzevJlhw4YRHByMTqfjp59+umzfJ554Ap1Ox5w5c+o9DhkKF6L+yJ8nIURj0zSZKSoqIioqig8++OCK/X766Sd27txJcHBwI0UmhBBCCGuh6ZqZIUOGMGTIkCv2OXPmDE899RS//fYbt99+eyNFJoQQQghrYdFrZoxGI/fffz/PPfccERERNXpNWVkZ+fn5Zj9C1Kfjx4+j0+lISEjQOhQhhBBYeDIze/ZsbG1tGT9+fI1fM2vWLDw8PEw/ISEhDRihZWrsL9vp06ej0+nQ6XTo9XqCg4O57777OHXqlFm/AQMGmPo5ODjQokULhg0bxtKlS6u854V+l/706dOnUa5HCCFEDSkKHPkNjEZNw7DYZCY+Pp65c+fyxRdf1GpB4ZQpU8jLyzP9/P0LVTSMiIgI0tLSOH36NIsXL2b//v3cfffdVfo99thjpKWlcfToUZYsWULnzp255557ePzxx6v0XbhwIWlpaaafFStW1Die8vLya7oeIYQQV1GaB0segW/vhu3vaRqKxSYzW7ZsITMzk1atWmFra4utrS0nTpxg0qRJtGnT5rKvc3BwwN3d3eynNhRFobi8stF/FEWpcYyrV6+mT58+eHp64uPjw9ChQ0lOTjY9HxoaCkBMTAw6nY4BAwYA6rTdzJkzadmyJQ4ODkRHR7N69WrT6y6M6Hz//ff07dsXJycnevTowZEjR9i1axexsbG4urpy6623kpWVZRaTra0tgYGBBAcH07dvXx577DF27NhRZZrP2dmZwMBAQkJCuOGGG5g9ezbz5s1jwYIF/P7772Z9PT09CQwMNP14e3tf9ncyYMAAnnrqKSZOnIivry+33HILAImJidx22224uroSEBDA/fffT3Z2do1/lwB//vknMTExODo6Ehsby549e652i4QQomk7tQs+6QN/LQGdDei0TScstmje/fffz8CBA80eGzx4MPfffz8PP/xwg31uSYWBzlN/a7D3v5zEmYNxtq/Z7SgqKmLixIl06dKFoqIipk6dyh133EFCQgJ6vZ4///yT6667jt9//52IiAhT3Y+5c+fy9ttvM2/ePGJiYvj8888ZPnw4Bw4coEOHDqb3nzZtGnPmzKFVq1aMGTOG0aNH4+7uzty5c3F2dubuu+9m6tSpfPzxx9XGl56eztKlS7GxscHGxuaq1/Pggw8yadIkli5dWuWe18aXX37JuHHj2LZtG4qikJaWRv/+/Xnsscd45513KCkpYfLkydx9992sX7++Rr/LoqIihg4dyk033cTXX39NSkoKEyZMqHOMQghh1YxG2DYH1r8CigE8W8GozyGkh6ZhaZrMFBYWcvToUVM7JSWFhIQEvL29adWqVZWqvHZ2dgQGBhIeHt7YoVqUUaNGmbU/++wz/P39SUxMJDIyEj8/PwB8fHwIDAw09XvrrbeYPHky99xzD6CuSdqwYQNz5szhww8/NPV79tlnGTx4MAATJkxg9OjRrFu3jt69ewPwyCOP8MUXX5jFsH//flxdXTEajZSUlAAwfvx4XFxcrno9er2esLAwjh8/bvb46NGjzZKhr7/+mpEjR172fdq3b88bb7xhak+dOpVu3brx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9uy52i26Jg899BCbNm1i7ty5plGp48ePs3HjRnQ6Hb/99huxsbE4ODiwZcuWKtNMDz30ECNHjmTGjBn4+/vj7u7OE088ccUEr7y8nOeff54WLVrg4uLC9ddfb5Z8nThxgmHDhuHl5YWLiwsRERGsWrWqAX8LQohaqSyHNS/B16OgKAv8I+DxjdD9Iassgldbksz8naJAeVHj/9TivM+ioiImTpzIrl27WLduHXq9njvuuAOj0QioX74Av//+O2lpaaZpnLlz5/L222/z1ltvsW/fPgYPHszw4cNJSkoye/9p06bx0ksvsXv3bmxtbRk9ejTPP/88c+fOZcuWLSQnJzN16tTLxpeens7SpUuxsbHBxubqc7MPPvggXl5e1U431caXX36Jra0t27ZtY968eaSlpdG/f3+io6OJi4tj9erVZGRkmI0YXe13WVRUxNChQwkPDyc+Pp7p06fz7LPPXlOcVzN37lx69uxpGsVKS0sjJCTE9Pzzzz/PrFmzOHjwIF27dq32PdatW8fBgwfZsGED3333HcuWLWPGjBmX/cyHH36Ybdu2sWjRIvbt28c//vEPbr31VtP/G08++SRlZWVs3ryZ/fv3M3v2bFxdXev3woUQdZOTDJ/dAtvfV9s9HoPH1oN/R23jakSym+nvKorhNQ22q/0nFexdatR11KhRZu3PPvsMf39/EhMTiYyMxM/PDwAfHx8CAwNN/d566y0mT57MPffcA8Ds2bPZsGEDc+bM4cMPPzT1e/bZZxk8eDAAEyZMYPTo0axbt47evXsD8Mgjj/DFF1+YxbB//35cXV0xGo2UlJQAMH78eFxcrn5Ner2esLAwjh8/bvb46NGjzZKhr7/+mpEjR172fdq3b88bb7xhak+dOpVu3brx2muvmR77/PPPCQkJ4ciRI4SFhV31d/nNN99gMBj4/PPPcXZ2JiIigtOnTzNu3LirXlddeXh4YG9vbxrF+ruZM2eaRp4ux97e3izmmTNn8txzz/Hf//4Xvd783zDJycl89913nD59muBg9f/9Z599ltWrV7Nw4UJee+01Tp48yahRo+jSpQsAbdu2raerFUJck72L4ZeJUF4ITl4w4kPoeLvWUTU6SWasUHJyMi+//DI7duwgOzvbNIpw8uRJIiMjq31Nfn4+qamppoTkgt69e7N3716zxy79135AQACA6UvswmOZ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", @@ -149,27 +171,15 @@ ], "source": [ "N = n**3*4\n", - "plt.plot(N, time_pyscal_data/1000, label='atomRDF read')\n", - "plt.plot(N, time_atomrdf_data/1000, label='atomRDF read + triples')\n", - "plt.plot(N, time_ase_data/1000, label='ase read')\n", - "#plt.plot(N, np.polyval(pf, N), label='cna read')\n", - "#plt.plot(n**3*4, time_atomrdf_data/1000 + time_ase_data/1000, label='double read')\n", + "plt.plot(N, time_atomrdf/1000, label='atomRDF read')\n", + "plt.plot(N, time_atomrdf_triples/1000, label='atomRDF read + triples')\n", + "plt.plot(N, time_ase/1000, label='ase read')\n", "#plt.xscale('log')\n", "#plt.yscale('log')\n", "plt.xlabel('Number of atoms')\n", "plt.ylabel('Time (s)')\n", "plt.legend()\n", - "plt.savefig('read_time.png', bbox_inches='tight')\n", - "#" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "4,000,000" + "#plt.savefig('read_time.png', bbox_inches='tight')" ] } ],