{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear solvers in the TT format\n", "\n", "This tutorial addresses solving multilinear systems $\\mathsf{Ax}=\\mathsf{b}$ in the TT format.\n", "\n", "Imports:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "\n", "import torch as tn\n", "import datetime\n", "try: \n", " import torchtt as tntt\n", "except:\n", " print('Installing torchTT...')\n", " %pip install git+https://github.com/ion-g-ion/torchTT\n", " import torchtt as tntt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Small example\n", "\n", "A random tensor operator $\\mathsf{A}$ is created in the TT format. We create a random right-hand side $\\mathsf{b} = \\mathsf{Ax}$, where $\\mathsf{x}$ is a random tensor in the TT format. This way the solution of $\\mathsf{Ax}=\\mathsf{b}$ is known and we can compare it as a reference.\n", "This works only for small random tensors." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "A = tntt.random([(4,4),(5,5),(6,6)],[1,2,3,1]) \n", "x = tntt.random([4,5,6],[1,2,3,1])\n", "b = A @ x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve the multilinear system $\\mathsf{Ax}=\\mathsf{b}$ using the method torchtt.solvers.amen_solve().\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "xs = tntt.solvers.amen_solve(A,b, x0 = b, eps = 1e-7)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The relative residual norm and the relative error of the solution are reported:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TT with sizes and ranks:\n", "N = [4, 5, 6]\n", "R = [1, 2, 3, 1]\n", "\n", "Device: cpu, dtype: torch.float64\n", "#entries 56 compression 0.4666666666666667\n", "\n", "Relative residual error tensor(4.7719e-10, dtype=torch.float64)\n", "Relative error of the solution tensor(4.9390e-10, dtype=torch.float64)\n" ] } ], "source": [ "print(xs)\n", "print('Relative residual error ',(A@xs-b).norm()/b.norm())\n", "print('Relative error of the solution ',(xs-x).norm()/x.norm())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Finite differences\n", "\n", "We now solve the problem $\\Delta u = 1$ in $[0,1]^d$ with $ u = 0 $ on the entire boundary using finite differences.\n", "First, set the size of the problem (n is the mode size and d is the number of dimensions):" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "dtype = tn.float64 \n", "n = 256\n", "d = 8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create the finite differences matrix corresponding to the problem. The operator is constructed directly in the TT format as it follows" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "L1d = -2*tn.eye(n, dtype = dtype)+tn.diag(tn.ones(n-1,dtype = dtype),-1)+tn.diag(tn.ones(n-1,dtype = dtype),1)\n", "L1d[0,1] = 0\n", "L1d[-1,-2] = 0\n", "L1d /= (n-1)\n", "L1d = tntt.TT(L1d, [(n,n)])\n", "\n", "L_tt = tntt.zeros([(n,n)]*d)\n", "for i in range(1,d-1):\n", " L_tt = L_tt+tntt.eye([n]*i)**L1d**tntt.eye([n]*(d-1-i))\n", "L_tt = L_tt + L1d**tntt.eye([n]*(d-1)) + tntt.eye([n]*(d-1))**L1d\n", "L_tt = L_tt.round(1e-14)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The right hand site of the finite difference system is also computed in the TT format" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "b1d = tn.ones(n, dtype=dtype)\n", "b1d[0] = 0\n", "b1d[-1] = 0\n", "b1d = tntt.TT(b1d)\n", "b_tt = b1d\n", "for i in range(d-1):\n", " b_tt = b_tt**b1d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Solve the system" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting AMEn solve with:\n", "\tepsilon : 1e-08\n", "\tsweeps : 20\n", "\tlocal iterations : 40\n", "\tresets : 2\n", "\tlocal preconditioner : N\n", "\n", "\n", "Starting sweep 1\n", "\tCore 0\n", "\t\tChoosing direct solver (local size 256)...\n", "\t\tdx = 1.00022, res_now = 3.94265e-15, res_old = 1.00025\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.64902e-07 (from 1.12368e-09)\n", "\t\tTime needed 24.064 ms\n", "\t\tdx = 0.162254, res_now = 2.64902e-07, res_old = 1.5732\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 6.70485e-07 (from 9.82742e-10)\n", "\t\tTime needed 38.405 ms\n", "\t\tdx = 0.178782, res_now = 6.70485e-07, res_old = 1.79881\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.47626e-06 (from 8.421e-10)\n", "\t\tTime needed 48.229 ms\n", "\t\tdx = 0.201381, res_now = 2.47626e-06, res_old = 2.09924\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 9.56499e-06 (from 6.99836e-10)\n", "\t\tTime needed 48.069 ms\n", "\t\tdx = 0.23409, res_now = 9.56499e-06, res_old = 2.52597\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.18408e-05 (from 5.56264e-10)\n", "\t\tTime needed 50.732 ms\n", "\t\tdx = 0.285484, res_now = 5.18408e-05, res_old = 3.17793\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000422745 (from 4.10681e-10)\n", "\t\tTime needed 38.09 ms\n", "\t\tdx = 0.376877, res_now = 0.000422745, res_old = 4.30448\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00923264 (from 2.6303e-10)\n", "\t\tTime needed 21.29 ms\n", "\t\tdx = 0.579017, res_now = 0.00923264, res_old = 6.72078\n", "Solution rank [ 1 5 5 5 5 5 5 5 1 ]\n", "Maxres 6.72078\n", "Time 295.645 ms\n", "\n", "Starting sweep 2\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.015374 (from 1.32307e-09)\n", "\t\tTime needed 21.018 ms\n", "\t\tdx = 0.172509, res_now = 0.015374, res_old = 1.33611\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0343199 (from 7.96653e-10)\n", "\t\tTime needed 115.429 ms\n", "\t\tdx = 0.168754, res_now = 0.0343199, res_old = 2.21899\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0538122 (from 6.91437e-10)\n", "\t\tTime needed 114.713 ms\n", "\t\tdx = 0.156787, res_now = 0.0538122, res_old = 2.55666\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0463301 (from 6.83955e-10)\n", "\t\tTime needed 121.182 ms\n", "\t\tdx = 0.17905, res_now = 0.0463301, res_old = 2.58462\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0497495 (from 6.9982e-10)\n", "\t\tTime needed 125.369 ms\n", "\t\tdx = 0.172615, res_now = 0.0497495, res_old = 2.52603\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0681063 (from 7.62661e-10)\n", "\t\tTime needed 121.283 ms\n", "\t\tdx = 0.147447, res_now = 0.0681063, res_old = 2.31789\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0809247 (from 1.42434e-09)\n", "\t\tTime needed 113.943 ms\n", "\t\tdx = 0.129625, res_now = 0.0809247, res_old = 1.24111\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 1792)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.042695 (from 3.48983e-09)\n", "\t\tTime needed 25.323 ms\n", "\t\tdx = 0.0939197, res_now = 0.042695, res_old = 0.506549\n", "Solution rank [ 1 9 9 6 6 9 9 7 1 ]\n", "Maxres 2.58462\n", "Time 806.999 ms\n", "\n", "Starting sweep 3\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 2304)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.03434 (from 2.69626e-09)\n", "\t\tTime needed 24.868 ms\n", "\t\tdx = 0.0822758, res_now = 0.03434, res_old = 0.655636\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 29952)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0270942 (from 3.39634e-09)\n", "\t\tTime needed 134.154 ms\n", "\t\tdx = 0.0526669, res_now = 0.0270942, res_old = 0.520491\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 13824)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0231415 (from 3.05189e-09)\n", "\t\tTime needed 103.604 ms\n", "\t\tdx = 0.0537463, res_now = 0.0231415, res_old = 0.579238\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 15360)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0224298 (from 2.06727e-09)\n", "\t\tTime needed 112.814 ms\n", "\t\tdx = 0.0430813, res_now = 0.0224298, res_old = 0.855123\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 18432)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0193917 (from 4.70433e-09)\n", "\t\tTime needed 143.791 ms\n", "\t\tdx = 0.0372849, res_now = 0.0193917, res_old = 0.375775\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 18432)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0164225 (from 4.13588e-09)\n", "\t\tTime needed 134.821 ms\n", "\t\tdx = 0.046789, res_now = 0.0164225, res_old = 0.427422\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 14336)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0164913 (from 4.01682e-09)\n", "\t\tTime needed 105.785 ms\n", "\t\tdx = 0.0483424, res_now = 0.0164913, res_old = 0.440091\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 2816)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00957893 (from 2.5338e-08)\n", "\t\tTime needed 24.291 ms\n", "\t\tdx = 0.028046, res_now = 0.00957893, res_old = 0.0697674\n", "Solution rank [ 1 13 9 10 8 8 8 11 1 ]\n", "Maxres 0.855123\n", "Time 843.258 ms\n", "\n", "Starting sweep 4\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 3328)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00517621 (from 1.77343e-08)\n", "\t\tTime needed 21.536 ms\n", "\t\tdx = 0.0151357, res_now = 0.00517621, res_old = 0.0996806\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 23040)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00573939 (from 1.60449e-08)\n", "\t\tTime needed 113.317 ms\n", "\t\tdx = 0.0132804, res_now = 0.00573939, res_old = 0.110176\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 28160)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00406291 (from 1.81947e-08)\n", "\t\tTime needed 156.767 ms\n", "\t\tdx = 0.0104602, res_now = 0.00406291, res_old = 0.0971585\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 20480)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00365042 (from 2.80398e-08)\n", "\t\tTime needed 144.82 ms\n", "\t\tdx = 0.0122825, res_now = 0.00365042, res_old = 0.063045\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 24576)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00390755 (from 2.65709e-08)\n", "\t\tTime needed 158.724 ms\n", "\t\tdx = 0.00831183, res_now = 0.00390755, res_old = 0.0665301\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 22528)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00263752 (from 2.66631e-08)\n", "\t\tTime needed 161.952 ms\n", "\t\tdx = 0.00624501, res_now = 0.00263752, res_old = 0.0663\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 30976)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00213413 (from 2.64413e-08)\n", "\t\tTime needed 158.544 ms\n", "\t\tdx = 0.00564083, res_now = 0.00213413, res_old = 0.0668564\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 3840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000777821 (from 2.04659e-07)\n", "\t\tTime needed 26.838 ms\n", "\t\tdx = 0.00151834, res_now = 0.000777821, res_old = 0.00863764\n", "Solution rank [ 1 10 11 10 12 11 11 15 1 ]\n", "Maxres 0.110176\n", "Time 1003.79 ms\n", "\n", "Starting sweep 5\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 2560)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000687232 (from 1.19226e-07)\n", "\t\tTime needed 21.055 ms\n", "\t\tdx = 0.00266233, res_now = 0.000687232, res_old = 0.0148271\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 39424)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000495394 (from 7.83787e-08)\n", "\t\tTime needed 128.263 ms\n", "\t\tdx = 0.00119648, res_now = 0.000495394, res_old = 0.0225542\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 35840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000314899 (from 1.23665e-07)\n", "\t\tTime needed 158.242 ms\n", "\t\tdx = 0.00069244, res_now = 0.000314899, res_old = 0.0142948\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 43008)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000341951 (from 9.01584e-08)\n", "\t\tTime needed 210.742 ms\n", "\t\tdx = 0.000653499, res_now = 0.000341951, res_old = 0.0196073\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 45056)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00048883 (from 9.50063e-08)\n", "\t\tTime needed 212.996 ms\n", "\t\tdx = 0.00117568, res_now = 0.00048883, res_old = 0.0186068\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 39424)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000298197 (from 2.28206e-07)\n", "\t\tTime needed 222.749 ms\n", "\t\tdx = 0.000646952, res_now = 0.000298197, res_old = 0.00774638\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 53760)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000208802 (from 3.57617e-07)\n", "\t\tTime needed 239.754 ms\n", "\t\tdx = 0.000534198, res_now = 0.000208802, res_old = 0.00494319\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 3840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.68295e-05 (from 4.01085e-06)\n", "\t\tTime needed 34.463 ms\n", "\t\tdx = 0.000112321, res_now = 2.68295e-05, res_old = 0.000440746\n", "Solution rank [ 1 14 14 14 16 14 14 15 1 ]\n", "Maxres 0.0225542\n", "Time 1308.83 ms\n", "\n", "Starting sweep 6\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 3584)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.55609e-05 (from 1.09622e-06)\n", "\t\tTime needed 23.115 ms\n", "\t\tdx = 0.000170061, res_now = 5.55609e-05, res_old = 0.0016126\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 53760)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.62707e-05 (from 1.1471e-06)\n", "\t\tTime needed 155.1 ms\n", "\t\tdx = 0.000109019, res_now = 5.62707e-05, res_old = 0.00154108\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 60928)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.67046e-05 (from 8.53007e-07)\n", "\t\tTime needed 226.331 ms\n", "\t\tdx = 0.000121998, res_now = 5.67046e-05, res_old = 0.0020724\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 73728)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.17311e-05 (from 9.9292e-07)\n", "\t\tTime needed 305.458 ms\n", "\t\tdx = 0.00011031, res_now = 4.17311e-05, res_old = 0.00178037\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 60928)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.06985e-05 (from 1.12449e-06)\n", "\t\tTime needed 259.442 ms\n", "\t\tdx = 7.89894e-05, res_now = 3.06985e-05, res_old = 0.00157206\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 57344)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.21308e-05 (from 2.12004e-06)\n", "\t\tTime needed 255.088 ms\n", "\t\tdx = 8.46829e-05, res_now = 3.21308e-05, res_old = 0.000833835\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 69120)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.10649e-05 (from 4.29914e-06)\n", "\t\tTime needed 216.055 ms\n", "\t\tdx = 2.29139e-05, res_now = 1.10649e-05, res_old = 0.000411191\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 4864)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.65671e-06 (from 4.96271e-05)\n", "\t\tTime needed 63.156 ms\n", "\t\tdx = 6.78001e-06, res_now = 2.65671e-06, res_old = 3.5621e-05\n", "Solution rank [ 1 15 17 18 17 16 18 19 1 ]\n", "Maxres 0.0020724\n", "Time 1600.99 ms\n", "\n", "Starting sweep 7\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 3840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.55923e-06 (from 1.88144e-05)\n", "\t\tTime needed 23.444 ms\n", "\t\tdx = 1.24458e-05, res_now = 2.55923e-06, res_old = 9.39583e-05\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 73984)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.00475e-06 (from 1.39017e-05)\n", "\t\tTime needed 196.117 ms\n", "\t\tdx = 8.18141e-06, res_now = 3.00475e-06, res_old = 0.000127162\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 87552)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 7.6319e-06 (from 1.14341e-05)\n", "\t\tTime needed 340.246 ms\n", "\t\tdx = 1.95852e-05, res_now = 7.6319e-06, res_old = 0.000154605\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 87040)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.71959e-06 (from 1.41434e-05)\n", "\t\tTime needed 373.216 ms\n", "\t\tdx = 1.2303e-05, res_now = 4.71959e-06, res_old = 0.000124989\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 77824)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.72318e-06 (from 1.74919e-05)\n", "\t\tTime needed 329.306 ms\n", "\t\tdx = 6.22547e-06, res_now = 2.72318e-06, res_old = 0.000101062\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 87552)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.77222e-06 (from 2.28113e-05)\n", "\t\tTime needed 369.724 ms\n", "\t\tdx = 9.11199e-06, res_now = 3.77222e-06, res_old = 7.74952e-05\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 107008)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.93457e-07 (from 0.00010787)\n", "\t\tTime needed 302.564 ms\n", "\t\tdx = 1.61717e-06, res_now = 8.93457e-07, res_old = 1.63879e-05\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5376)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.33219e-07 (from 0.000857222)\n", "\t\tTime needed 82.106 ms\n", "\t\tdx = 5.48779e-07, res_now = 1.33219e-07, res_old = 2.06221e-06\n", "Solution rank [ 1 17 19 20 19 19 22 21 1 ]\n", "Maxres 0.000154605\n", "Time 2155.01 ms\n", "\n", "Starting sweep 8\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 4352)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.34749e-07 (from 0.000180152)\n", "\t\tTime needed 71.814 ms\n", "\t\tdx = 1.75874e-06, res_now = 4.34749e-07, res_old = 9.81267e-06\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 102144)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.60253e-07 (from 0.000159874)\n", "\t\tTime needed 247.937 ms\n", "\t\tdx = 7.9549e-07, res_now = 3.60253e-07, res_old = 1.10573e-05\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 107520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 7.27459e-07 (from 9.66075e-05)\n", "\t\tTime needed 379.532 ms\n", "\t\tdx = 2.03312e-06, res_now = 7.27459e-07, res_old = 1.82984e-05\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 111872)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 7.1912e-07 (from 0.000142913)\n", "\t\tTime needed 454.995 ms\n", "\t\tdx = 1.59779e-06, res_now = 7.1912e-07, res_old = 1.23695e-05\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 97280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.25273e-07 (from 0.000167124)\n", "\t\tTime needed 410.197 ms\n", "\t\tdx = 5.3144e-07, res_now = 2.25273e-07, res_old = 1.05776e-05\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.69624e-07 (from 0.000169438)\n", "\t\tTime needed 545.348 ms\n", "\t\tdx = 5.99467e-07, res_now = 3.69624e-07, res_old = 1.04331e-05\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 139776)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.15083e-07 (from 0.00142775)\n", "\t\tTime needed 402.738 ms\n", "\t\tdx = 1.75731e-07, res_now = 1.15083e-07, res_old = 1.23815e-06\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 6400)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.30769e-09 (from 0.0127578)\n", "\t\tTime needed 63.633 ms\n", "\t\tdx = 1.76064e-08, res_now = 3.30769e-09, res_old = 1.38564e-07\n", "Solution rank [ 1 21 21 23 20 23 26 25 1 ]\n", "Maxres 1.82984e-05\n", "Time 2732.16 ms\n", "\n", "Starting sweep 9\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5376)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.93496e-08 (from 0.00201292)\n", "\t\tTime needed 60.323 ms\n", "\t\tdx = 8.60513e-08, res_now = 1.93496e-08, res_old = 8.78209e-07\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 134400)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 7.34548e-08 (from 0.0012428)\n", "\t\tTime needed 284.044 ms\n", "\t\tdx = 1.62034e-07, res_now = 7.34548e-08, res_old = 1.42241e-06\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 147200)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.94483e-08 (from 0.000881885)\n", "\t\tTime needed 422.213 ms\n", "\t\tdx = 1.2289e-07, res_now = 5.94483e-08, res_old = 2.00453e-06\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 117760)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 9.87087e-08 (from 0.00101082)\n", "\t\tTime needed 489.353 ms\n", "\t\tdx = 1.58656e-07, res_now = 9.87087e-08, res_old = 1.74884e-06\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 141312)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.25944e-08 (from 0.00159416)\n", "\t\tTime needed 466.259 ms\n", "\t\tdx = 7.9085e-08, res_now = 4.25944e-08, res_old = 1.1089e-06\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 179712)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.65398e-08 (from 0.00185744)\n", "\t\tTime needed 583.17 ms\n", "\t\tdx = 7.21484e-08, res_now = 4.65398e-08, res_old = 9.51724e-07\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 192000)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.58085e-08 (from 0.00351722)\n", "\t\tTime needed 480.038 ms\n", "\t\tdx = 2.05083e-08, res_now = 1.58085e-08, res_old = 5.02604e-07\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 7424)...\n", "\t\tFinished with flag 1 after 80 iterations with relres 1.71225e-09 (from 0.111796)\n", "\t\tTime needed 66.872 ms\n", "\t\tdx = 3.54656e-09, res_now = 1.71225e-09, res_old = 1.58125e-08\n", "Solution rank [ 1 25 25 23 24 27 30 29 1 ]\n", "Maxres 2.00453e-06\n", "Time 3016.91 ms\n", "\n", "Starting sweep 10\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 6400)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.92839e-09 (from 0.0124567)\n", "\t\tTime needed 60.341 ms\n", "\t\tdx = 6.1276e-09, res_now = 2.92839e-09, res_old = 1.41913e-07\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 134400)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.56109e-08 (from 0.00820173)\n", "\t\tTime needed 279.687 ms\n", "\t\tdx = 2.92266e-08, res_now = 1.56109e-08, res_old = 2.15536e-07\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 170752)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.75526e-09 (from 0.00817883)\n", "\t\tTime needed 475.361 ms\n", "\t\tdx = 1.78504e-08, res_now = 8.75526e-09, res_old = 2.16139e-07\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 153600)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.74851e-08 (from 0.00509119)\n", "\t\tTime needed 488.842 ms\n", "\t\tdx = 2.61599e-08, res_now = 1.74851e-08, res_old = 3.47221e-07\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 179712)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.87078e-09 (from 0.0118274)\n", "\t\tTime needed 571.268 ms\n", "\t\tdx = 9.68781e-09, res_now = 4.87078e-09, res_old = 1.49464e-07\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 199680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.12105e-08 (from 0.0118)\n", "\t\tTime needed 629.522 ms\n", "\t\tdx = 2.07325e-08, res_now = 1.12105e-08, res_old = 1.49811e-07\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 252416)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.71388e-09 (from 0.0234078)\n", "\t\tTime needed 635.985 ms\n", "\t\tdx = 6.06579e-09, res_now = 3.71388e-09, res_old = 7.55205e-08\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 8448)...\n", "\t\tFinished with flag 1 after 6 iterations with relres 1.72194e-09 (from 0.476888)\n", "\t\tTime needed 6.157 ms\n", "\t\tdx = 5.15445e-11, res_now = 1.72194e-09, res_old = 3.70688e-09\n", "Solution rank [ 1 21 29 25 26 26 34 33 1 ]\n", "Maxres 3.47221e-07\n", "Time 3368.51 ms\n", "\n", "Starting sweep 11\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5376)...\n", "\t\tFinished with flag 1 after 74 iterations with relres 1.73557e-09 (from 0.0819876)\n", "\t\tTime needed 54.274 ms\n", "\t\tdx = 4.1006e-09, res_now = 1.73557e-09, res_old = 2.15614e-08\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 155904)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.49126e-09 (from 0.0302414)\n", "\t\tTime needed 375.396 ms\n", "\t\tdx = 5.24736e-09, res_now = 2.49126e-09, res_old = 5.84553e-08\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 160000)...\n", "\t\tFinished with flag 1 after 79 iterations with relres 1.74221e-09 (from 0.0347583)\n", "\t\tTime needed 482.488 ms\n", "\t\tdx = 3.42954e-09, res_now = 1.74221e-09, res_old = 5.08588e-08\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 173056)...\n", "\t\tFinished with flag 1 after 78 iterations with relres 1.75166e-09 (from 0.0344027)\n", "\t\tTime needed 564.239 ms\n", "\t\tdx = 3.04017e-09, res_now = 1.75166e-09, res_old = 5.13846e-08\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 166400)...\n", "\t\tFinished with flag 1 after 53 iterations with relres 1.74848e-09 (from 0.0742907)\n", "\t\tTime needed 360.13 ms\n", "\t\tdx = 7.23585e-10, res_now = 1.74848e-09, res_old = 2.37953e-08\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 217600)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.79829e-09 (from 0.0460987)\n", "\t\tTime needed 668.546 ms\n", "\t\tdx = 7.51843e-09, res_now = 3.79829e-09, res_old = 3.83474e-08\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 321024)...\n", "\t\tFinished with flag 1 after 75 iterations with relres 1.76276e-09 (from 0.152624)\n", "\t\tTime needed 723.423 ms\n", "\t\tdx = 1.8139e-09, res_now = 1.76276e-09, res_old = 1.15825e-08\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.70662e-09 (from 0.81524)\n", "\t\tTime needed 2.813 ms\n", "\t\tdx = 2.41031e-12, res_now = 1.70662e-09, res_old = 2.1684e-09\n", "Solution rank [ 1 21 25 26 25 25 38 22 1 ]\n", "Maxres 5.84553e-08\n", "Time 3615.87 ms\n", "\n", "Starting sweep 12\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5376)...\n", "\t\tFinished with flag 1 after 4 iterations with relres 1.68538e-09 (from 0.289029)\n", "\t\tTime needed 3.847 ms\n", "\t\tdx = 8.9353e-12, res_now = 1.68538e-09, res_old = 6.11622e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 140800)...\n", "\t\tFinished with flag 1 after 12 iterations with relres 1.74896e-09 (from 0.163235)\n", "\t\tTime needed 35.305 ms\n", "\t\tdx = 4.84312e-11, res_now = 1.74896e-09, res_old = 1.08296e-08\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 159744)...\n", "\t\tFinished with flag 1 after 8 iterations with relres 1.65256e-09 (from 0.25624)\n", "\t\tTime needed 44.347 ms\n", "\t\tdx = 2.61847e-11, res_now = 1.65256e-09, res_old = 6.89888e-09\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 153600)...\n", "\t\tFinished with flag 1 after 7 iterations with relres 1.73004e-09 (from 0.191273)\n", "\t\tTime needed 47.508 ms\n", "\t\tdx = 1.25729e-11, res_now = 1.73004e-09, res_old = 9.2421e-09\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 153600)...\n", "\t\tFinished with flag 1 after 9 iterations with relres 1.74416e-09 (from 0.120395)\n", "\t\tTime needed 56.885 ms\n", "\t\tdx = 2.61427e-11, res_now = 1.74416e-09, res_old = 1.4683e-08\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 233472)...\n", "\t\tFinished with flag 1 after 71 iterations with relres 1.74997e-09 (from 0.153176)\n", "\t\tTime needed 626.417 ms\n", "\t\tdx = 1.62691e-09, res_now = 1.74997e-09, res_old = 1.15407e-08\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 1 after 9 iterations with relres 1.75027e-09 (from 0.516988)\n", "\t\tTime needed 38.441 ms\n", "\t\tdx = 7.35425e-11, res_now = 1.75027e-09, res_old = 3.41935e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.72528e-09 (from 0.818898)\n", "\t\tTime needed 2.034 ms\n", "\t\tdx = 7.92613e-13, res_now = 1.72528e-09, res_old = 2.15872e-09\n", "Solution rank [ 1 22 24 24 24 24 23 22 1 ]\n", "Maxres 1.4683e-08\n", "Time 1215.58 ms\n", "\n", "Starting sweep 13\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.5521e-09 (from 0.401053)\n", "\t\tTime needed 2.228 ms\n", "\t\tdx = 2.77285e-12, res_now = 1.5521e-09, res_old = 4.40781e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 135168)...\n", "\t\tFinished with flag 1 after 5 iterations with relres 1.71606e-09 (from 0.252144)\n", "\t\tTime needed 17.001 ms\n", "\t\tdx = 8.10491e-12, res_now = 1.71606e-09, res_old = 7.01094e-09\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 147456)...\n", "\t\tFinished with flag 1 after 5 iterations with relres 1.75041e-09 (from 0.301712)\n", "\t\tTime needed 27.209 ms\n", "\t\tdx = 8.51595e-12, res_now = 1.75041e-09, res_old = 5.85913e-09\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 147456)...\n", "\t\tFinished with flag 1 after 6 iterations with relres 1.69269e-09 (from 0.269019)\n", "\t\tTime needed 39.813 ms\n", "\t\tdx = 1.05837e-11, res_now = 1.69269e-09, res_old = 6.57116e-09\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 147456)...\n", "\t\tFinished with flag 1 after 6 iterations with relres 1.75541e-09 (from 0.234904)\n", "\t\tTime needed 37.964 ms\n", "\t\tdx = 1.17993e-11, res_now = 1.75541e-09, res_old = 7.5255e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 10 iterations with relres 1.71809e-09 (from 0.234484)\n", "\t\tTime needed 53.664 ms\n", "\t\tdx = 2.69435e-11, res_now = 1.71809e-09, res_old = 7.53897e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 1 after 6 iterations with relres 1.7452e-09 (from 0.552582)\n", "\t\tTime needed 26.699 ms\n", "\t\tdx = 2.78372e-11, res_now = 1.7452e-09, res_old = 3.19911e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.69481e-09 (from 0.835815)\n", "\t\tTime needed 2.117 ms\n", "\t\tdx = 7.85563e-13, res_now = 1.69481e-09, res_old = 2.11502e-09\n", "Solution rank [ 1 22 24 24 24 23 23 22 1 ]\n", "Maxres 7.53897e-09\n", "Time 432.161 ms\n", "\n", "Starting sweep 14 (last one)\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.36106e-09 (from 0.490868)\n", "\t\tTime needed 3.351 ms\n", "\t\tdx = 3.06325e-12, res_now = 1.36106e-09, res_old = 3.60131e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 110592)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.56994e-09 (from 0.331585)\n", "\t\tTime needed 12.705 ms\n", "\t\tdx = 3.66024e-12, res_now = 1.56994e-09, res_old = 5.33127e-09\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 122880)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.60155e-09 (from 0.381848)\n", "\t\tTime needed 19.846 ms\n", "\t\tdx = 2.59678e-12, res_now = 1.60155e-09, res_old = 4.62951e-09\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 122880)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.51754e-09 (from 0.302895)\n", "\t\tTime needed 29.484 ms\n", "\t\tdx = 3.66286e-12, res_now = 1.51754e-09, res_old = 5.83623e-09\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 117760)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.47395e-09 (from 0.379776)\n", "\t\tTime needed 28.75 ms\n", "\t\tdx = 4.03126e-12, res_now = 1.47395e-09, res_old = 4.65476e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 111872)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.67522e-09 (from 0.398863)\n", "\t\tTime needed 26.091 ms\n", "\t\tdx = 4.06173e-12, res_now = 1.67522e-09, res_old = 4.43201e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 107008)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.56962e-09 (from 1.0972)\n", "\t\tTime needed 11.176 ms\n", "\t\tdx = 6.39495e-13, res_now = 1.56962e-09, res_old = 1.61115e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 4608)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 2.43739e-10 (from 6.26761)\n", "\t\tTime needed 1.791 ms\n", "\t\tdx = 2.04451e-13, res_now = 2.43739e-10, res_old = 2.82048e-10\n", "Solution rank [ 1 18 20 20 20 19 19 18 1 ]\n", "Maxres 5.83623e-09\n", "Time 299.792 ms\n", "\n", "Finished after 14 sweeps and 22.6956 seconds\n", "\n", "Relative residual: tensor(4.9297e-09, dtype=torch.float64)\n", "Solver time: 0:00:22.697280\n" ] } ], "source": [ "time = datetime.datetime.now()\n", "x = tntt.solvers.amen_solve(L_tt, b_tt ,x0 = b_tt, nswp = 20, eps = 1e-8, verbose = True)\n", "time = datetime.datetime.now() - time\n", "print('Relative residual: ',(L_tt@x-b_tt).norm()/b_tt.norm())\n", "print('Solver time: ',time)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the structure of the TT" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TT with sizes and ranks:\n", "N = [256, 256, 256, 256, 256, 256, 256, 256]\n", "R = [1, 18, 20, 20, 20, 19, 19, 18, 1]\n", "\n", "Device: cpu, dtype: torch.float64\n", "#entries 583424 compression 3.162747841400915e-14\n", "\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try one more time on the GPU (if available)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting AMEn solve with:\n", "\tepsilon : 1e-08\n", "\tsweeps : 20\n", "\tlocal iterations : 40\n", "\tresets : 2\n", "\tlocal preconditioner : N\n", "\n", "\n", "Starting sweep 1\n", "\tCore 0\n", "\t\tChoosing direct solver (local size 256)...\n", "\t\tdx = 1.00022, res_now = 3.80241e-15, res_old = 1.00025\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.03976e-07 (from 1.12188e-09)\n", "\t\tTime needed 50.592 ms\n", "\t\tdx = 0.162228, res_now = 3.03976e-07, res_old = 1.57572\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.9404e-07 (from 9.82965e-10)\n", "\t\tTime needed 56.085 ms\n", "\t\tdx = 0.178782, res_now = 5.9404e-07, res_old = 1.7984\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.95171e-06 (from 8.42061e-10)\n", "\t\tTime needed 50.715 ms\n", "\t\tdx = 0.201372, res_now = 1.95171e-06, res_old = 2.09933\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.13927e-05 (from 6.99929e-10)\n", "\t\tTime needed 54.743 ms\n", "\t\tdx = 0.234093, res_now = 1.13927e-05, res_old = 2.52564\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.68151e-05 (from 5.56343e-10)\n", "\t\tTime needed 49.925 ms\n", "\t\tdx = 0.285461, res_now = 5.68151e-05, res_old = 3.17748\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000383669 (from 4.10711e-10)\n", "\t\tTime needed 50.479 ms\n", "\t\tdx = 0.376859, res_now = 0.000383669, res_old = 4.30417\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0104981 (from 2.63017e-10)\n", "\t\tTime needed 49.494 ms\n", "\t\tdx = 0.578521, res_now = 0.0104981, res_old = 6.72112\n", "Solution rank [ 1 5 5 5 5 5 5 5 1 ]\n", "Maxres 6.72112\n", "Time 396.474 ms\n", "\n", "Starting sweep 2\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 1280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.015867 (from 1.51816e-09)\n", "\t\tTime needed 50.06 ms\n", "\t\tdx = 0.167332, res_now = 0.015867, res_old = 1.16442\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.031902 (from 1.17296e-09)\n", "\t\tTime needed 59.738 ms\n", "\t\tdx = 0.178384, res_now = 0.031902, res_old = 1.5071\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0500298 (from 6.84387e-10)\n", "\t\tTime needed 66.412 ms\n", "\t\tdx = 0.160649, res_now = 0.0500298, res_old = 2.58299\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0633123 (from 6.75131e-10)\n", "\t\tTime needed 72.265 ms\n", "\t\tdx = 0.163413, res_now = 0.0633123, res_old = 2.61841\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.048629 (from 6.93307e-10)\n", "\t\tTime needed 72.327 ms\n", "\t\tdx = 0.180823, res_now = 0.048629, res_old = 2.54976\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0511481 (from 7.49026e-10)\n", "\t\tTime needed 72.961 ms\n", "\t\tdx = 0.162795, res_now = 0.0511481, res_old = 2.36009\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 11520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0626577 (from 9.98891e-10)\n", "\t\tTime needed 71.972 ms\n", "\t\tdx = 0.134086, res_now = 0.0626577, res_old = 1.76973\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 2304)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0380041 (from 2.6048e-09)\n", "\t\tTime needed 50.236 ms\n", "\t\tdx = 0.0816631, res_now = 0.0380041, res_old = 0.678659\n", "Solution rank [ 1 6 9 9 6 6 9 9 1 ]\n", "Maxres 2.61841\n", "Time 571.607 ms\n", "\n", "Starting sweep 3\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 1536)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0418839 (from 1.59849e-09)\n", "\t\tTime needed 50.264 ms\n", "\t\tdx = 0.0682368, res_now = 0.0418839, res_old = 1.1059\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 23040)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0331869 (from 1.74853e-09)\n", "\t\tTime needed 62.077 ms\n", "\t\tdx = 0.0551896, res_now = 0.0331869, res_old = 1.011\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 18432)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0238549 (from 3.92712e-09)\n", "\t\tTime needed 83.902 ms\n", "\t\tdx = 0.0613911, res_now = 0.0238549, res_old = 0.450143\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 19968)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0261808 (from 2.53909e-09)\n", "\t\tTime needed 95.81 ms\n", "\t\tdx = 0.04825, res_now = 0.0261808, res_old = 0.696221\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 15360)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0231217 (from 4.51109e-09)\n", "\t\tTime needed 73.142 ms\n", "\t\tdx = 0.0315142, res_now = 0.0231217, res_old = 0.391872\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 18432)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0143334 (from 5.31685e-09)\n", "\t\tTime needed 94.972 ms\n", "\t\tdx = 0.0397164, res_now = 0.0143334, res_old = 0.332484\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 29952)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0172939 (from 5.93701e-09)\n", "\t\tTime needed 96.303 ms\n", "\t\tdx = 0.0371247, res_now = 0.0172939, res_old = 0.297754\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 3328)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0105622 (from 1.0612e-08)\n", "\t\tTime needed 50.343 ms\n", "\t\tdx = 0.0244473, res_now = 0.0105622, res_old = 0.166582\n", "Solution rank [ 1 10 8 13 10 8 13 13 1 ]\n", "Maxres 1.1059\n", "Time 666.818 ms\n", "\n", "Starting sweep 4\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 2560)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00673767 (from 7.5402e-09)\n", "\t\tTime needed 50.788 ms\n", "\t\tdx = 0.0263428, res_now = 0.00673767, res_old = 0.234446\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 20480)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00836376 (from 1.19508e-08)\n", "\t\tTime needed 61.967 ms\n", "\t\tdx = 0.0170012, res_now = 0.00836376, res_old = 0.14792\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 36608)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00497299 (from 1.58634e-08)\n", "\t\tTime needed 84.714 ms\n", "\t\tdx = 0.012072, res_now = 0.00497299, res_old = 0.111437\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 43520)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00660013 (from 1.47626e-08)\n", "\t\tTime needed 103.66 ms\n", "\t\tdx = 0.0115263, res_now = 0.00660013, res_old = 0.119747\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 22528)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00460054 (from 1.61525e-08)\n", "\t\tTime needed 95.789 ms\n", "\t\tdx = 0.0118596, res_now = 0.00460054, res_old = 0.109442\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 36608)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00212978 (from 1.89268e-08)\n", "\t\tTime needed 95.175 ms\n", "\t\tdx = 0.00526326, res_now = 0.00212978, res_old = 0.0934002\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 36608)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00239492 (from 2.41421e-08)\n", "\t\tTime needed 98.187 ms\n", "\t\tdx = 0.00637493, res_now = 0.00239492, res_old = 0.0732235\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 2816)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000638102 (from 1.44174e-07)\n", "\t\tTime needed 50.583 ms\n", "\t\tdx = 0.00270128, res_now = 0.000638102, res_old = 0.0122613\n", "Solution rank [ 1 10 11 17 11 11 11 11 1 ]\n", "Maxres 0.234446\n", "Time 714.9 ms\n", "\n", "Starting sweep 5\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 2560)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000699438 (from 6.1891e-08)\n", "\t\tTime needed 50.698 ms\n", "\t\tdx = 0.00289298, res_now = 0.000699438, res_old = 0.0285626\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 33792)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.0009356 (from 7.56992e-08)\n", "\t\tTime needed 74.918 ms\n", "\t\tdx = 0.00169719, res_now = 0.0009356, res_old = 0.0233525\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 52224)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.00050212 (from 6.01067e-08)\n", "\t\tTime needed 121.858 ms\n", "\t\tdx = 0.00131698, res_now = 0.00050212, res_old = 0.0294105\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 59136)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000750441 (from 6.41931e-08)\n", "\t\tTime needed 146.091 ms\n", "\t\tdx = 0.00190719, res_now = 0.000750441, res_old = 0.0275383\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 36608)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000317133 (from 1.39246e-07)\n", "\t\tTime needed 94.735 ms\n", "\t\tdx = 0.000986581, res_now = 0.000317133, res_old = 0.0126953\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 42240)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000159019 (from 3.5446e-07)\n", "\t\tTime needed 102.171 ms\n", "\t\tdx = 0.000321059, res_now = 0.000159019, res_old = 0.00498721\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 42240)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000281302 (from 2.38104e-07)\n", "\t\tTime needed 142.334 ms\n", "\t\tdx = 0.000590865, res_now = 0.000281302, res_old = 0.00742435\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 3840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 5.48164e-05 (from 3.14187e-06)\n", "\t\tTime needed 50.469 ms\n", "\t\tdx = 9.48092e-05, res_now = 5.48164e-05, res_old = 0.000562648\n", "Solution rank [ 1 12 12 21 13 15 15 15 1 ]\n", "Maxres 0.0294105\n", "Time 855.034 ms\n", "\n", "Starting sweep 6\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 3072)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 6.25343e-05 (from 8.29497e-07)\n", "\t\tTime needed 52.66 ms\n", "\t\tdx = 0.000296777, res_now = 6.25343e-05, res_old = 0.00213113\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 46080)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 0.000106668 (from 6.67088e-07)\n", "\t\tTime needed 101.014 ms\n", "\t\tdx = 0.000288519, res_now = 0.000106668, res_old = 0.00264997\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 86016)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 9.61793e-05 (from 7.17708e-07)\n", "\t\tTime needed 158.202 ms\n", "\t\tdx = 0.000218815, res_now = 9.61793e-05, res_old = 0.00246307\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 56576)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.83301e-05 (from 9.51403e-07)\n", "\t\tTime needed 146.615 ms\n", "\t\tdx = 0.000108769, res_now = 4.83301e-05, res_old = 0.00185806\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 65280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.12296e-05 (from 1.9095e-06)\n", "\t\tTime needed 148.326 ms\n", "\t\tdx = 5.92612e-05, res_now = 4.12296e-05, res_old = 0.000925776\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 65280)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.00437e-05 (from 1.64676e-06)\n", "\t\tTime needed 148.734 ms\n", "\t\tdx = 7.19659e-05, res_now = 3.00437e-05, res_old = 0.00107348\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 72960)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.54605e-05 (from 3.18765e-06)\n", "\t\tTime needed 147.546 ms\n", "\t\tdx = 8.34086e-05, res_now = 3.54605e-05, res_old = 0.000554568\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 4352)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.27163e-06 (from 3.97373e-05)\n", "\t\tTime needed 51.393 ms\n", "\t\tdx = 1.35342e-05, res_now = 3.27163e-06, res_old = 4.44863e-05\n", "Solution rank [ 1 15 16 17 17 17 19 17 1 ]\n", "Maxres 0.00264997\n", "Time 1052.64 ms\n", "\n", "Starting sweep 7\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 3840)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.21288e-06 (from 9.00825e-06)\n", "\t\tTime needed 50.869 ms\n", "\t\tdx = 3.5975e-05, res_now = 8.21288e-06, res_old = 0.000196239\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 77824)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.20709e-05 (from 6.10482e-06)\n", "\t\tTime needed 101.164 ms\n", "\t\tdx = 2.84578e-05, res_now = 1.20709e-05, res_old = 0.000289569\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 87040)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.40472e-05 (from 6.52769e-06)\n", "\t\tTime needed 160.074 ms\n", "\t\tdx = 3.63059e-05, res_now = 1.40472e-05, res_old = 0.00027081\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 82688)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.1683e-06 (from 8.12212e-06)\n", "\t\tTime needed 191.457 ms\n", "\t\tdx = 8.79162e-06, res_now = 4.1683e-06, res_old = 0.000217648\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 91392)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 6.82361e-06 (from 1.24031e-05)\n", "\t\tTime needed 194.622 ms\n", "\t\tdx = 1.08804e-05, res_now = 6.82361e-06, res_old = 0.000142526\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 102144)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 7.60589e-06 (from 1.46352e-05)\n", "\t\tTime needed 196.999 ms\n", "\t\tdx = 1.05553e-05, res_now = 7.60589e-06, res_old = 0.000120788\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 87040)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.31245e-06 (from 1.21131e-05)\n", "\t\tTime needed 148.624 ms\n", "\t\tdx = 6.72892e-06, res_now = 4.31245e-06, res_old = 0.000145939\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5376)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 4.06713e-07 (from 0.000292801)\n", "\t\tTime needed 51.546 ms\n", "\t\tdx = 1.53479e-06, res_now = 4.06713e-07, res_old = 6.03742e-06\n", "Solution rank [ 1 19 20 19 21 21 20 21 1 ]\n", "Maxres 0.000289569\n", "Time 1196.01 ms\n", "\n", "Starting sweep 8\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 4864)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.36645e-07 (from 6.19075e-05)\n", "\t\tTime needed 55.65 ms\n", "\t\tdx = 2.29974e-06, res_now = 8.36645e-07, res_old = 2.8555e-05\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 117760)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.25188e-06 (from 3.71368e-05)\n", "\t\tTime needed 128.37 ms\n", "\t\tdx = 4.74249e-06, res_now = 2.25188e-06, res_old = 4.76015e-05\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 102144)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.75598e-06 (from 4.81325e-05)\n", "\t\tTime needed 160.84 ms\n", "\t\tdx = 2.39278e-06, res_now = 1.75598e-06, res_old = 3.67271e-05\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 123648)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.0198e-06 (from 9.15678e-05)\n", "\t\tTime needed 243.534 ms\n", "\t\tdx = 1.92886e-06, res_now = 1.0198e-06, res_old = 1.93055e-05\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 112896)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.14973e-06 (from 7.65133e-05)\n", "\t\tTime needed 199.709 ms\n", "\t\tdx = 2.21528e-06, res_now = 1.14973e-06, res_old = 2.3104e-05\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 128000)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.4691e-06 (from 6.80224e-05)\n", "\t\tTime needed 243.762 ms\n", "\t\tdx = 2.87973e-06, res_now = 1.4691e-06, res_old = 2.5988e-05\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129024)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 6.03489e-07 (from 9.97236e-05)\n", "\t\tTime needed 196.714 ms\n", "\t\tdx = 9.91745e-07, res_now = 6.03489e-07, res_old = 1.77267e-05\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.93528e-08 (from 0.00257389)\n", "\t\tTime needed 52.107 ms\n", "\t\tdx = 2.56513e-07, res_now = 3.93528e-08, res_old = 6.86807e-07\n", "Solution rank [ 1 23 21 23 21 25 24 22 1 ]\n", "Maxres 4.76015e-05\n", "Time 1403.2 ms\n", "\n", "Starting sweep 9\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5888)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.19978e-07 (from 0.000566685)\n", "\t\tTime needed 55.835 ms\n", "\t\tdx = 4.82923e-07, res_now = 1.19978e-07, res_old = 3.11949e-06\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 145152)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.3584e-07 (from 0.000341401)\n", "\t\tTime needed 126.97 ms\n", "\t\tdx = 5.76025e-07, res_now = 2.3584e-07, res_old = 5.17798e-06\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.75276e-07 (from 0.000382275)\n", "\t\tTime needed 199.546 ms\n", "\t\tdx = 2.70994e-07, res_now = 1.75276e-07, res_old = 4.62433e-06\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 123648)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.71806e-07 (from 0.000650124)\n", "\t\tTime needed 243.396 ms\n", "\t\tdx = 3.67211e-07, res_now = 1.71806e-07, res_old = 2.71912e-06\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 160000)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.29502e-07 (from 0.000466189)\n", "\t\tTime needed 290.595 ms\n", "\t\tdx = 3.06747e-07, res_now = 2.29502e-07, res_old = 3.79195e-06\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 178176)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.11133e-07 (from 0.000356779)\n", "\t\tTime needed 420.968 ms\n", "\t\tdx = 3.858e-07, res_now = 2.11133e-07, res_old = 4.9548e-06\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 157696)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.62579e-08 (from 0.000926516)\n", "\t\tTime needed 241.73 ms\n", "\t\tdx = 1.43002e-07, res_now = 8.62579e-08, res_old = 1.90797e-06\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 6656)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 9.4085e-09 (from 0.0201259)\n", "\t\tTime needed 51.949 ms\n", "\t\tdx = 2.93499e-08, res_now = 9.4085e-09, res_old = 8.78355e-08\n", "Solution rank [ 1 27 23 23 25 29 28 26 1 ]\n", "Maxres 5.17798e-06\n", "Time 1758.28 ms\n", "\n", "Starting sweep 10\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 6912)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.72384e-08 (from 0.0046336)\n", "\t\tTime needed 55.927 ms\n", "\t\tdx = 5.27699e-08, res_now = 1.72384e-08, res_old = 3.81511e-07\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 182528)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.73321e-08 (from 0.00287463)\n", "\t\tTime needed 150.521 ms\n", "\t\tdx = 5.31336e-08, res_now = 2.73321e-08, res_old = 6.14955e-07\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 158976)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 2.63825e-08 (from 0.00372511)\n", "\t\tTime needed 230.62 ms\n", "\t\tdx = 4.48571e-08, res_now = 2.63825e-08, res_old = 4.74554e-07\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 160000)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.82521e-08 (from 0.00367171)\n", "\t\tTime needed 290.461 ms\n", "\t\tdx = 3.11738e-08, res_now = 1.82521e-08, res_old = 4.81456e-07\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 215296)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.00877e-08 (from 0.00226903)\n", "\t\tTime needed 338.031 ms\n", "\t\tdx = 5.36355e-08, res_now = 3.00877e-08, res_old = 7.79086e-07\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 193536)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 1.49718e-08 (from 0.00358503)\n", "\t\tTime needed 422.516 ms\n", "\t\tdx = 2.78158e-08, res_now = 1.49718e-08, res_old = 4.93097e-07\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 179712)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 8.15032e-09 (from 0.007371)\n", "\t\tTime needed 243.167 ms\n", "\t\tdx = 1.6803e-08, res_now = 8.15032e-09, res_old = 2.39827e-07\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 7680)...\n", "\t\tFinished with flag 1 after 68 iterations with relres 1.73718e-09 (from 0.209899)\n", "\t\tTime needed 39.795 ms\n", "\t\tdx = 2.00851e-09, res_now = 1.73718e-09, res_old = 8.42197e-09\n", "Solution rank [ 1 31 27 25 29 27 27 30 1 ]\n", "Maxres 7.79086e-07\n", "Time 1960.88 ms\n", "\n", "Starting sweep 11\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 7936)...\n", "\t\tFinished with flag 1 after 74 iterations with relres 1.75467e-09 (from 0.0236432)\n", "\t\tTime needed 49.129 ms\n", "\t\tdx = 4.53517e-09, res_now = 1.75467e-09, res_old = 7.47686e-08\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 158976)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.98157e-09 (from 0.0150717)\n", "\t\tTime needed 151.234 ms\n", "\t\tdx = 8.3438e-09, res_now = 3.98157e-09, res_old = 1.17291e-07\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 166400)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.44523e-09 (from 0.0156798)\n", "\t\tTime needed 232.104 ms\n", "\t\tdx = 6.05687e-09, res_now = 3.44523e-09, res_old = 1.12742e-07\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 185600)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.48653e-09 (from 0.035096)\n", "\t\tTime needed 426.313 ms\n", "\t\tdx = 6.79284e-09, res_now = 3.48653e-09, res_old = 5.03695e-08\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 207360)...\n", "\t\tFinished with flag 0 after 80 iterations with relres 3.0563e-09 (from 0.0387987)\n", "\t\tTime needed 321.109 ms\n", "\t\tdx = 5.25471e-09, res_now = 3.0563e-09, res_old = 4.55625e-08\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 186624)...\n", "\t\tFinished with flag 1 after 61 iterations with relres 1.74632e-09 (from 0.0437416)\n", "\t\tTime needed 322.051 ms\n", "\t\tdx = 1.28997e-09, res_now = 1.74632e-09, res_old = 4.04139e-08\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 184320)...\n", "\t\tFinished with flag 1 after 72 iterations with relres 1.71683e-09 (from 0.0702795)\n", "\t\tTime needed 217.118 ms\n", "\t\tdx = 1.85506e-09, res_now = 1.71683e-09, res_old = 2.51534e-08\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.68707e-09 (from 0.899157)\n", "\t\tTime needed 0.659 ms\n", "\t\tdx = 9.67935e-13, res_now = 1.68707e-09, res_old = 1.96603e-09\n", "Solution rank [ 1 23 26 25 30 27 24 22 1 ]\n", "Maxres 1.17291e-07\n", "Time 1975.16 ms\n", "\n", "Starting sweep 12\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5888)...\n", "\t\tFinished with flag 1 after 19 iterations with relres 1.76053e-09 (from 0.254848)\n", "\t\tTime needed 8.709 ms\n", "\t\tdx = 2.37954e-10, res_now = 1.76053e-09, res_old = 6.93656e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 146432)...\n", "\t\tFinished with flag 1 after 39 iterations with relres 1.75273e-09 (from 0.111683)\n", "\t\tTime needed 63.539 ms\n", "\t\tdx = 6.10997e-10, res_now = 1.75273e-09, res_old = 1.58284e-08\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 160000)...\n", "\t\tFinished with flag 1 after 22 iterations with relres 1.7621e-09 (from 0.148265)\n", "\t\tTime needed 65.28 ms\n", "\t\tdx = 2.17345e-10, res_now = 1.7621e-09, res_old = 1.1923e-08\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 184320)...\n", "\t\tFinished with flag 1 after 60 iterations with relres 1.76222e-09 (from 0.149988)\n", "\t\tTime needed 320.443 ms\n", "\t\tdx = 1.23221e-09, res_now = 1.76222e-09, res_old = 1.1786e-08\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 158976)...\n", "\t\tFinished with flag 1 after 46 iterations with relres 1.76237e-09 (from 0.1896)\n", "\t\tTime needed 173.71 ms\n", "\t\tdx = 6.40444e-10, res_now = 1.76237e-09, res_old = 9.32365e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 141312)...\n", "\t\tFinished with flag 1 after 14 iterations with relres 1.69016e-09 (from 0.417831)\n", "\t\tTime needed 45.238 ms\n", "\t\tdx = 9.57588e-11, res_now = 1.69016e-09, res_old = 4.23082e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 1 after 7 iterations with relres 1.66911e-09 (from 0.475457)\n", "\t\tTime needed 20.959 ms\n", "\t\tdx = 2.38051e-11, res_now = 1.66911e-09, res_old = 3.71804e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.65367e-09 (from 0.74809)\n", "\t\tTime needed 0.631 ms\n", "\t\tdx = 8.87253e-13, res_now = 1.65367e-09, res_old = 2.36304e-09\n", "Solution rank [ 1 22 25 24 23 23 23 22 1 ]\n", "Maxres 1.58284e-08\n", "Time 936.523 ms\n", "\n", "Starting sweep 13\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.28617e-09 (from 0.251033)\n", "\t\tTime needed 1.093 ms\n", "\t\tdx = 3.4751e-12, res_now = 1.28617e-09, res_old = 7.04196e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 140800)...\n", "\t\tFinished with flag 1 after 6 iterations with relres 1.71449e-09 (from 0.142137)\n", "\t\tTime needed 10.636 ms\n", "\t\tdx = 1.03098e-11, res_now = 1.71449e-09, res_old = 1.24371e-08\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 147456)...\n", "\t\tFinished with flag 1 after 9 iterations with relres 1.72536e-09 (from 0.152134)\n", "\t\tTime needed 24.977 ms\n", "\t\tdx = 2.36773e-11, res_now = 1.72536e-09, res_old = 1.16198e-08\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 15 iterations with relres 1.72289e-09 (from 0.100777)\n", "\t\tTime needed 47.764 ms\n", "\t\tdx = 6.39156e-11, res_now = 1.72289e-09, res_old = 1.75414e-08\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 11 iterations with relres 1.72084e-09 (from 0.226403)\n", "\t\tTime needed 37.509 ms\n", "\t\tdx = 4.19339e-11, res_now = 1.72084e-09, res_old = 7.80806e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 4 iterations with relres 1.66502e-09 (from 0.438618)\n", "\t\tTime needed 19.115 ms\n", "\t\tdx = 5.4306e-12, res_now = 1.66502e-09, res_old = 4.03031e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 1 after 5 iterations with relres 1.63799e-09 (from 0.5512)\n", "\t\tTime needed 16.976 ms\n", "\t\tdx = 1.62868e-11, res_now = 1.63799e-09, res_old = 3.20713e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.55732e-09 (from 0.805674)\n", "\t\tTime needed 0.653 ms\n", "\t\tdx = 7.9711e-13, res_now = 1.55732e-09, res_old = 2.19415e-09\n", "Solution rank [ 1 22 24 23 23 23 23 22 1 ]\n", "Maxres 1.75414e-08\n", "Time 320.59 ms\n", "\n", "Starting sweep 14\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.26335e-09 (from 0.578092)\n", "\t\tTime needed 0.905 ms\n", "\t\tdx = 1.38103e-12, res_now = 1.26335e-09, res_old = 3.05794e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 135168)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.63465e-09 (from 0.293481)\n", "\t\tTime needed 7.237 ms\n", "\t\tdx = 3.90547e-12, res_now = 1.63465e-09, res_old = 6.02345e-09\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 141312)...\n", "\t\tFinished with flag 1 after 5 iterations with relres 1.64806e-09 (from 0.224868)\n", "\t\tTime needed 16.95 ms\n", "\t\tdx = 9.74615e-12, res_now = 1.64806e-09, res_old = 7.86136e-09\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 7 iterations with relres 1.66827e-09 (from 0.281059)\n", "\t\tTime needed 26.666 ms\n", "\t\tdx = 1.52581e-11, res_now = 1.66827e-09, res_old = 6.28967e-09\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 8 iterations with relres 1.71136e-09 (from 0.396932)\n", "\t\tTime needed 29.295 ms\n", "\t\tdx = 2.65786e-11, res_now = 1.71136e-09, res_old = 4.45358e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 135424)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.67653e-09 (from 0.414887)\n", "\t\tTime needed 16.7 ms\n", "\t\tdx = 3.12342e-12, res_now = 1.67653e-09, res_old = 4.26084e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 129536)...\n", "\t\tFinished with flag 1 after 5 iterations with relres 1.70254e-09 (from 0.576411)\n", "\t\tTime needed 16.898 ms\n", "\t\tdx = 1.80754e-11, res_now = 1.70254e-09, res_old = 3.06685e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.58989e-09 (from 0.795746)\n", "\t\tTime needed 0.643 ms\n", "\t\tdx = 8.85293e-13, res_now = 1.58989e-09, res_old = 2.22152e-09\n", "Solution rank [ 1 22 24 23 23 23 23 22 1 ]\n", "Maxres 7.86136e-09\n", "Time 273.108 ms\n", "\n", "Starting sweep 15 (last one)\n", "\tCore 0\n", "\t\tChoosing iterative solver (local size 5632)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.25467e-09 (from 0.699452)\n", "\t\tTime needed 0.886 ms\n", "\t\tdx = 1.09686e-12, res_now = 1.25467e-09, res_old = 2.52736e-09\n", "\tCore 1\n", "\t\tChoosing iterative solver (local size 110592)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.65754e-09 (from 0.374358)\n", "\t\tTime needed 5.984 ms\n", "\t\tdx = 2.46619e-12, res_now = 1.65754e-09, res_old = 4.72213e-09\n", "\tCore 2\n", "\t\tChoosing iterative solver (local size 117760)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.7403e-09 (from 0.305758)\n", "\t\tTime needed 10.88 ms\n", "\t\tdx = 3.12012e-12, res_now = 1.7403e-09, res_old = 5.78158e-09\n", "\tCore 3\n", "\t\tChoosing iterative solver (local size 111872)...\n", "\t\tFinished with flag 1 after 3 iterations with relres 1.62722e-09 (from 0.373588)\n", "\t\tTime needed 12.919 ms\n", "\t\tdx = 4.35216e-12, res_now = 1.62722e-09, res_old = 4.73186e-09\n", "\tCore 4\n", "\t\tChoosing iterative solver (local size 111872)...\n", "\t\tFinished with flag 1 after 2 iterations with relres 1.74943e-09 (from 0.498912)\n", "\t\tTime needed 11.013 ms\n", "\t\tdx = 2.60875e-12, res_now = 1.74943e-09, res_old = 3.54324e-09\n", "\tCore 5\n", "\t\tChoosing iterative solver (local size 111872)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 8.40839e-10 (from 0.843821)\n", "\t\tTime needed 9.149 ms\n", "\t\tdx = 9.07152e-13, res_now = 8.40839e-10, res_old = 2.09495e-09\n", "\tCore 6\n", "\t\tChoosing iterative solver (local size 107008)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 1.44182e-09 (from 1.16718)\n", "\t\tTime needed 9.009 ms\n", "\t\tdx = 6.40839e-13, res_now = 1.44182e-09, res_old = 1.51456e-09\n", "\tCore 7\n", "\t\tChoosing iterative solver (local size 4608)...\n", "\t\tFinished with flag 1 after 1 iterations with relres 8.45485e-10 (from 2.0333)\n", "\t\tTime needed 0.631 ms\n", "\t\tdx = 5.0725e-13, res_now = 8.45485e-10, res_old = 8.69406e-10\n", "Solution rank [ 1 18 20 19 19 19 19 18 1 ]\n", "Maxres 5.78158e-09\n", "Time 159.09 ms\n", "\n", "Finished after 15 sweeps and 14.2404 seconds\n", "\n", "Relative residual: tensor(5.0368e-09, dtype=torch.float64)\n", "Solver time: 0:00:14.255007\n" ] } ], "source": [ "if tn.cuda.is_available():\n", " cuda_dev = 'cuda:0'\n", " time = datetime.datetime.now()\n", " x = tntt.solvers.amen_solve(L_tt.to(cuda_dev), b_tt.to(cuda_dev) ,x0 = b_tt.to(cuda_dev), nswp = 20, eps = 1e-8, verbose = True, preconditioner=None)\n", " time = datetime.datetime.now() - time\n", " x = x.cpu()\n", " print('Relative residual: ',(L_tt@x-b_tt).norm()/b_tt.norm())\n", " print('Solver time: ',time)\n", "else:\n", " print('GPU not available...')" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }