diff --git a/autoscaling.ipynb b/autoscaling.ipynb new file mode 100644 index 0000000..26271be --- /dev/null +++ b/autoscaling.ipynb @@ -0,0 +1,701 @@ +{ + "cells": [ + { + "metadata": {}, + "cell_type": "markdown", + "source": "### 2 do 5 maszyn - ze skalowaniem (60s)", + "id": "8da38f621da326fa" + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:18:15.646664Z", + "start_time": "2024-12-21T11:00:55.641352Z" + } + }, + "cell_type": "code", + "source": [ + "import requests\n", + "import random\n", + "import math\n", + "import time\n", + "import threading\n", + "import logging\n", + "logging.getLogger().setLevel(logging.INFO)\n", + "\n", + "API_URL=\"http://s464863-lb-2086103880.us-east-1.elb.amazonaws.com:8080/\"\n", + "\n", + "UNIT = 60.0 # secs\n", + "\n", + "# Pre generated primes\n", + "first_primes_list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29,\n", + " 31, 37, 41, 43, 47, 53, 59, 61, 67,\n", + " 71, 73, 79, 83, 89, 97, 101, 103,\n", + " 107, 109, 113, 127, 131, 137, 139,\n", + " 149, 151, 157, 163, 167, 173, 179,\n", + " 181, 191, 193, 197, 199, 211, 223,\n", + " 227, 229, 233, 239, 241, 251, 257,\n", + " 263, 269, 271, 277, 281, 283, 293,\n", + " 307, 311, 313, 317, 331, 337, 347, 349]\n", + "\n", + "\n", + "def nBitRandom(n):\n", + " return random.randrange(2**(n-1)+1, 2**n - 1)\n", + " \n", + "def getLowLevelPrime(n):\n", + " '''Generate a prime candidate divisible\n", + " by first primes'''\n", + " while True:\n", + " # Obtain a random number\n", + " pc = nBitRandom(n)\n", + " \n", + " # Test divisibility by pre-generated\n", + " # primes\n", + " for divisor in first_primes_list:\n", + " if pc % divisor == 0 and divisor**2 <= pc:\n", + " break\n", + " else: return pc\n", + " \n", + "def isMillerRabinPassed(mrc):\n", + " '''Run 20 iterations of Rabin Miller Primality test'''\n", + " maxDivisionsByTwo = 0\n", + " ec = mrc-1\n", + " while ec % 2 == 0:\n", + " ec >>= 1\n", + " maxDivisionsByTwo += 1\n", + " assert(2**maxDivisionsByTwo * ec == mrc-1)\n", + " \n", + " def trialComposite(round_tester):\n", + " if pow(round_tester, ec, mrc) == 1:\n", + " return False\n", + " for i in range(maxDivisionsByTwo):\n", + " if pow(round_tester, 2**i * ec, mrc) == mrc-1:\n", + " return False\n", + " return True\n", + " \n", + " # Set number of trials here\n", + " numberOfRabinTrials = 20\n", + " for i in range(numberOfRabinTrials):\n", + " round_tester = random.randrange(2, mrc)\n", + " if trialComposite(round_tester):\n", + " return False\n", + " return True\n", + " \n", + "def random_large_prime(bits):\n", + " while True:\n", + " prime_candidate = getLowLevelPrime(bits)\n", + " if not isMillerRabinPassed(prime_candidate):\n", + " continue\n", + " else:\n", + " return prime_candidate\n", + "\n", + "def thread_function(i, fast, timeout):\n", + " start = time.time()\n", + "\n", + " c = 5 # bits: 20: 200ms; 21: 350ms; 22: 700ms 23: 1.5s; 25: 6s; 26: 10s; 27: 24s\n", + " bits = 19 if fast else 23\n", + " last_report = time.time()\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " while True:\n", + " iter_start = time.time()\n", + " if iter_start - start > timeout:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " return\n", + " if iter_start - last_report > UNIT/2:\n", + " if len(results[i])%2 == 0:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " last_report=iter_start\n", + "\n", + " factors = [random_large_prime(bits) for i in range(c)]\n", + " factors.sort()\n", + " n=math.prod(factors)\n", + "\n", + " r = requests.get(API_URL+'/factors/%d'%(n))\n", + " if r.status_code != 200:\n", + " logging.error(\"wrong status code from webservice\")\n", + " else:\n", + " result = r.json()\n", + " if result != factors:\n", + " logging.error(\"Wrong factors\")\n", + "\n", + " processing_time+=time.time() - iter_start\n", + " reqs+=1\n", + " time.sleep(0.5)\n", + "\n", + "START = time.time()\n", + "slow_threads = 4\n", + "\n", + "results = [ {} for i in range(slow_threads+1)]\n", + "\n", + "t0 = threading.Thread(target=thread_function, args=(0, True, (5 + slow_threads*3) * UNIT))\n", + "t0.start()\n", + "time.sleep(2 * UNIT)\n", + "for i in range(slow_threads):\n", + " t = threading.Thread(target=thread_function, args=(i+1, False, (slow_threads-i) * 3 * UNIT))\n", + " t.start()\n", + " time.sleep(2 * UNIT)\n", + "\n", + "t0.join()" + ], + "id": "8613c6fa0c16b496", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:root:Thread: 0\treqs: 34\tmean time: 0.394s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 25\tmean time: 1.235s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 5\tmean time: 5.553s\t\n", + "INFO:root:Thread: 0\treqs: 17\tmean time: 1.370s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 13\tmean time: 2.978s\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 21.416s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 2\tmean time: 22.743s\t\n", + "INFO:root:Thread: 1\treqs: 16\tmean time: 1.436s\t\n", + "INFO:root:Thread: 0\treqs: 15\tmean time: 1.586s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 15\tmean time: 1.637s\t\n", + "INFO:root:Thread: 1\treqs: 14\tmean time: 1.746s\t\n", + "INFO:root:Thread: 3\treqs: 10\tmean time: 2.624s\t\n", + "INFO:root:Thread: 2\treqs: 4\tmean time: 7.588s\t\n", + "INFO:root:Thread: 0\treqs: 10\tmean time: 4.636s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 2\tmean time: 23.023s\t\n", + "INFO:root:Thread: 3\treqs: 4\tmean time: 7.500s\t\n", + "INFO:root:Thread: 2\treqs: 10\tmean time: 2.699s\t\n", + "INFO:root:Thread: 0\treqs: 9\tmean time: 2.929s\tfast\t\n", + "INFO:root:Thread: 4\treqs: 8\tmean time: 3.502s\t\n", + "INFO:root:Thread: 1\treqs: 8\tmean time: 3.540s\t\n", + "INFO:root:Thread: 3\treqs: 8\tmean time: 3.638s\t\n", + "INFO:root:Thread: 2\treqs: 8\tmean time: 3.663s\t\n", + "INFO:root:Thread: 0\treqs: 8\tmean time: 3.670s\tfast\t\n", + "INFO:root:Thread: 4\treqs: 8\tmean time: 3.527s\t\n", + "INFO:root:Thread: 1\treqs: 8\tmean time: 3.522s\t\n", + "INFO:root:Thread: 3\treqs: 8\tmean time: 3.624s\t\n", + "INFO:root:Thread: 2\treqs: 8\tmean time: 3.738s\t\n", + "INFO:root:Thread: 0\treqs: 8\tmean time: 3.691s\tfast\t\n", + "INFO:root:Thread: 4\treqs: 8\tmean time: 3.527s\t\n", + "INFO:root:Thread: 1\treqs: 8\tmean time: 3.502s\t\n", + "INFO:root:Thread: 4\treqs: 5\tmean time: 3.653s\t\n", + "INFO:root:Thread: 3\treqs: 8\tmean time: 3.592s\t\n", + "INFO:root:Thread: 2\treqs: 9\tmean time: 3.011s\t\n", + "INFO:root:Thread: 0\treqs: 9\tmean time: 2.892s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 11\tmean time: 2.508s\t\n", + "INFO:root:Thread: 3\treqs: 8\tmean time: 2.525s\t\n", + "INFO:root:Thread: 2\treqs: 14\tmean time: 1.679s\t\n", + "INFO:root:Thread: 0\treqs: 14\tmean time: 1.679s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 6\tmean time: 5.037s\t\n", + "INFO:root:Thread: 1\treqs: 6\tmean time: 5.041s\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 21.444s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 6\tmean time: 1.288s\t\n", + "INFO:root:Thread: 0\treqs: 34\tmean time: 1.010s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 21.476s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 21.461s\tfast\t\n" + ] + } + ], + "execution_count": 1 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:18:17.153724Z", + "start_time": "2024-12-21T11:18:15.665198Z" + } + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.stats as stats\n", + "mu = 0\n", + "std = 1\n", + "for i, result in enumerate(results):\n", + " x = [(x - START)/UNIT for x in result.keys()]\n", + " y = result.values()\n", + " plt.plot(x, y, label=\"t%d\"%(i,))\n", + "\n", + "plt.legend()\n", + "plt.show()" + ], + "id": "a81368cf19a093c1", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 2 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:19:43.182407Z", + "start_time": "2024-12-21T11:18:17.322562Z" + } + }, + "cell_type": "code", + "source": [ + "import requests\n", + "import random\n", + "import math\n", + "import time\n", + "import threading\n", + "import logging\n", + "logging.getLogger().setLevel(logging.INFO)\n", + "\n", + "\n", + "API_URL=\"http://s464863-lb-2086103880.us-east-1.elb.amazonaws.com:8080/\"\n", + "\n", + "UNIT = 5 # secs\n", + "\n", + "# Pre generated primes\n", + "first_primes_list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29,\n", + " 31, 37, 41, 43, 47, 53, 59, 61, 67,\n", + " 71, 73, 79, 83, 89, 97, 101, 103,\n", + " 107, 109, 113, 127, 131, 137, 139,\n", + " 149, 151, 157, 163, 167, 173, 179,\n", + " 181, 191, 193, 197, 199, 211, 223,\n", + " 227, 229, 233, 239, 241, 251, 257,\n", + " 263, 269, 271, 277, 281, 283, 293,\n", + " 307, 311, 313, 317, 331, 337, 347, 349]\n", + "\n", + "\n", + "def nBitRandom(n):\n", + " return random.randrange(2**(n-1)+1, 2**n - 1)\n", + " \n", + "def getLowLevelPrime(n):\n", + " '''Generate a prime candidate divisible\n", + " by first primes'''\n", + " while True:\n", + " # Obtain a random number\n", + " pc = nBitRandom(n)\n", + " \n", + " # Test divisibility by pre-generated\n", + " # primes\n", + " for divisor in first_primes_list:\n", + " if pc % divisor == 0 and divisor**2 <= pc:\n", + " break\n", + " else: return pc\n", + " \n", + "def isMillerRabinPassed(mrc):\n", + " '''Run 20 iterations of Rabin Miller Primality test'''\n", + " maxDivisionsByTwo = 0\n", + " ec = mrc-1\n", + " while ec % 2 == 0:\n", + " ec >>= 1\n", + " maxDivisionsByTwo += 1\n", + " assert(2**maxDivisionsByTwo * ec == mrc-1)\n", + " \n", + " def trialComposite(round_tester):\n", + " if pow(round_tester, ec, mrc) == 1:\n", + " return False\n", + " for i in range(maxDivisionsByTwo):\n", + " if pow(round_tester, 2**i * ec, mrc) == mrc-1:\n", + " return False\n", + " return True\n", + " \n", + " # Set number of trials here\n", + " numberOfRabinTrials = 20\n", + " for i in range(numberOfRabinTrials):\n", + " round_tester = random.randrange(2, mrc)\n", + " if trialComposite(round_tester):\n", + " return False\n", + " return True\n", + " \n", + "def random_large_prime(bits):\n", + " while True:\n", + " prime_candidate = getLowLevelPrime(bits)\n", + " if not isMillerRabinPassed(prime_candidate):\n", + " continue\n", + " else:\n", + " return prime_candidate\n", + "\n", + "def thread_function(i, fast, timeout):\n", + " start = time.time()\n", + "\n", + " c = 5 # bits: 20: 200ms; 21: 350ms; 22: 700ms 23: 1.5s; 25: 6s; 26: 10s; 27: 24s\n", + " bits = 19 if fast else 23\n", + " last_report = time.time()\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " while True:\n", + " iter_start = time.time()\n", + " if iter_start - start > timeout:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " return\n", + " if iter_start - last_report > UNIT/2:\n", + " if len(results[i])%2 == 0:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " last_report=iter_start\n", + "\n", + " factors = [random_large_prime(bits) for i in range(c)]\n", + " factors.sort()\n", + " n=math.prod(factors)\n", + "\n", + " r = requests.get(API_URL+'/factors/%d'%(n))\n", + " if r.status_code != 200:\n", + " logging.error(\"wrong status code from webservice\")\n", + " else:\n", + " result = r.json()\n", + " if result != factors:\n", + " logging.error(\"Wrong factors\")\n", + "\n", + " processing_time+=time.time() - iter_start\n", + " reqs+=1\n", + " time.sleep(0.5)\n", + "\n", + "START = time.time()\n", + "slow_threads = 4\n", + "\n", + "results = [ {} for i in range(slow_threads+1)]\n", + "\n", + "t0 = threading.Thread(target=thread_function, args=(0, True, (5 + slow_threads*3) * UNIT))\n", + "t0.start()\n", + "time.sleep(2 * UNIT)\n", + "for i in range(slow_threads):\n", + " t = threading.Thread(target=thread_function, args=(i+1, False, (slow_threads-i) * 3 * UNIT))\n", + " t.start()\n", + " time.sleep(2 * UNIT)\n", + "\n", + "t0.join()" + ], + "id": "712561570af0603d", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:root:Thread: 0\treqs: 1\tmean time: 21.442s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 22.393s\t\n", + "INFO:root:Thread: 2\treqs: 1\tmean time: 22.035s\t\n", + "INFO:root:Thread: 4\treqs: 2\tmean time: 1.301s\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 1.606s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 2\tmean time: 1.551s\t\n", + "INFO:root:Thread: 4\treqs: 2\tmean time: 1.677s\t\n", + "INFO:root:Thread: 3\treqs: 1\tmean time: 23.503s\t\n", + "INFO:root:Thread: 4\treqs: 1\tmean time: 2.620s\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 2.646s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 1\tmean time: 2.535s\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 2.514s\t\n", + "INFO:root:Thread: 3\treqs: 1\tmean time: 2.443s\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 2.544s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 2\tmean time: 1.671s\t\n", + "INFO:root:Thread: 1\treqs: 2\tmean time: 1.527s\t\n", + "INFO:root:Thread: 1\treqs: 2\tmean time: 1.147s\t\n", + "INFO:root:Thread: 0\treqs: 3\tmean time: 0.891s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 3\tmean time: 0.379s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 3\tmean time: 0.394s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 2\tmean time: 0.380s\tfast\t\n" + ] + } + ], + "execution_count": 3 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:19:43.300061Z", + "start_time": "2024-12-21T11:19:43.205792Z" + } + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.stats as stats\n", + "mu = 0\n", + "std = 1\n", + "for i, result in enumerate(results):\n", + " x = [(x - START)/UNIT for x in result.keys()]\n", + " y = result.values()\n", + " plt.plot(x, y, label=\"t%d\"%(i,))\n", + "\n", + "plt.legend()\n", + "plt.show()" + ], + "id": "983c6fffba1a5dd0", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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RRddhIqKCgiCgFdeeSXu65Ik4Z577kF5eTkcDgfmz5+PvXv36jPYDDrR+xIKhXDnnXdi8uTJyM3NRUVFBb773e/i8OHD+g04g07230x3P/jBDyAIAh577LGMjU8vfXlfPv/8c1x88cVwuVzIzc3FjBkzcPDgwcwP1qCyMnx89NFH+PWvf41TTz1V76EYwrFjxzBnzhxYrVb83//9H3bt2oX/+q//wqBBg/Qemu4efPBBPPnkk/jv//5vfP7553jwwQfx0EMP4Ze//KXeQ8u4jo4OTJkyBU888USvX3/ooYfw+OOP46mnnkJ1dTVyc3OxYMEC+P3+DI80s070vnR2dmLbtm1YuXIltm3bhpdeegm7d+/GxRdfrMNIM+9k/83IXn75ZWzatAkVFRUZGpm+Tva+fPXVVzjrrLMwbtw4rFu3Djt27MDKlSuRk5OT4ZEamJRl2trapNGjR0vvvPOOdM4550i333673kPS3Z133imdddZZeg/DkC688ELpxhtvjLvvsssuk6699lqdRmQMAKSXX35Z+VwURamsrEx6+OGHlfuam5slu90uPffcczqMUB8935febN68WQIgHThwIDODMojjvTeHDh2SBg8eLO3cuVMaNmyY9Oijj2Z8bHrq7X256qqrpOuuu06fAWWJrJv5uOWWW3DhhRdi/vz5eg/FMP7xj39g+vTpuOKKK+DxeDB16lT85je/0XtYhjB79mysXbsWe/bsAQB88skn+Oc//4mFCxfqPDJjqampQV1dXdz/Vy6XCzNnzsTGjRt1HJnxtLS0QBAEFBYW6j0U3YmiiOuvvx4rVqzAxIkT9R6OIYiiiNdffx1jxozBggUL4PF4MHPmzBNeshqIsip8PP/889i2bRtWr16t91AMZd++fXjyyScxevRovPXWW7j55ptx22234fe//73eQ9Pdv//7v+Pqq6/GuHHjYLVaMXXqVCxduhTXXnut3kMzlLq6OgBAaWlp3P2lpaXK1wjw+/248847cc011wzIQ8N6evDBB2GxWHDbbbfpPRTD8Hq9aG9vxy9+8QtccMEFePvtt3HppZfisssuQ1VVld7DMwzDnWp7PLW1tbj99tvxzjvv8LpZD6IoYvr06XjggQcAAFOnTsXOnTvx1FNPYfHixTqPTl8vvvgi/vznP+PZZ5/FxIkTsX37dixduhQVFRUD/r2h5IRCIVx55ZWQJAlPPvmk3sPR3datW7FmzRps27YNgiDoPRzDEEURALBo0SLccccdAIDTTjsNGzZswFNPPYVzzjlHz+EZRtbMfGzduhVerxenn346LBYLLBYLqqqq8Pjjj8NisSASieg9RN2Ul5djwoQJcfeNHz+eK6sBrFixQpn9mDx5Mq6//nrccccdnD3roaysDABQX18fd399fb3ytYFMDh4HDhzAO++8w1kPAB988AG8Xi+GDh2q/Ew+cOAA/u3f/g3Dhw/Xe3i6KSkpgcVi4c/kk8iamY958+bh008/jbvvhhtuwLhx43DnnXfCbDbrNDL9zZkzB7t37467b8+ePRg2bJhOIzKOzs5OmEzxGdtsNiv/OqGoESNGoKysDGvXrsVpp50GAGhtbUV1dTVuvvlmfQenMzl47N27F++//z6Ki4v1HpIhXH/99Qlr7xYsWIDrr78eN9xwg06j0p/NZsOMGTP4M/kksiZ85OfnY9KkSXH35ebmori4OOH+geaOO+7A7Nmz8cADD+DKK6/E5s2b8fTTT+Ppp5/We2i6u+iii3D//fdj6NChmDhxIj7++GM88sgjuPHGG/UeWsa1t7fjyy+/VD6vqanB9u3bUVRUhKFDh2Lp0qX4+c9/jtGjR2PEiBFYuXIlKioqcMkll+g36Aw40ftSXl6Ob3/729i2bRtee+01RCIRZQ1MUVERbDabXsPOiJP9N9MziFmtVpSVlWHs2LGZHmpGnex9WbFiBa666iqcffbZOPfcc/Hmm2/i1Vdfxbp16/QbtNHovd1GDW617fLqq69KkyZNkux2uzRu3Djp6aef1ntIhtDa2irdfvvt0tChQ6WcnBzplFNOkX7yk59IgUBA76Fl3Pvvvy8BSLgtXrxYkqTodtuVK1dKpaWlkt1ul+bNmyft3r1b30FnwInel5qaml6/BkB6//339R562p3sv5meBspW2768L7/97W+lUaNGSTk5OdKUKVOkV155Rb8BG5AgSQOw6pGIiIh0kzULTomIiKh/YPggIiKijGL4ICIiooxi+CAiIqKMYvggIiKijGL4ICIiooxi+CAiIqKMYvggIiKijGL4ICIiooxi+CAiIqKMYvggIiKijGL4ICIiooz6/1+cZpufmXU7AAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 4 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:28:25.963320Z", + "start_time": "2024-12-21T11:19:43.307797Z" + } + }, + "cell_type": "code", + "source": [ + "import requests\n", + "import random\n", + "import math\n", + "import time\n", + "import threading\n", + "import logging\n", + "logging.getLogger().setLevel(logging.INFO)\n", + "\n", + "\n", + "API_URL=\"http://s464863-lb-2086103880.us-east-1.elb.amazonaws.com:8080/\"\n", + "\n", + "UNIT = 30 # secs\n", + "\n", + "# Pre generated primes\n", + "first_primes_list = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29,\n", + " 31, 37, 41, 43, 47, 53, 59, 61, 67,\n", + " 71, 73, 79, 83, 89, 97, 101, 103,\n", + " 107, 109, 113, 127, 131, 137, 139,\n", + " 149, 151, 157, 163, 167, 173, 179,\n", + " 181, 191, 193, 197, 199, 211, 223,\n", + " 227, 229, 233, 239, 241, 251, 257,\n", + " 263, 269, 271, 277, 281, 283, 293,\n", + " 307, 311, 313, 317, 331, 337, 347, 349]\n", + "\n", + "\n", + "def nBitRandom(n):\n", + " return random.randrange(2**(n-1)+1, 2**n - 1)\n", + " \n", + "def getLowLevelPrime(n):\n", + " '''Generate a prime candidate divisible\n", + " by first primes'''\n", + " while True:\n", + " # Obtain a random number\n", + " pc = nBitRandom(n)\n", + " \n", + " # Test divisibility by pre-generated\n", + " # primes\n", + " for divisor in first_primes_list:\n", + " if pc % divisor == 0 and divisor**2 <= pc:\n", + " break\n", + " else: return pc\n", + " \n", + "def isMillerRabinPassed(mrc):\n", + " '''Run 20 iterations of Rabin Miller Primality test'''\n", + " maxDivisionsByTwo = 0\n", + " ec = mrc-1\n", + " while ec % 2 == 0:\n", + " ec >>= 1\n", + " maxDivisionsByTwo += 1\n", + " assert(2**maxDivisionsByTwo * ec == mrc-1)\n", + " \n", + " def trialComposite(round_tester):\n", + " if pow(round_tester, ec, mrc) == 1:\n", + " return False\n", + " for i in range(maxDivisionsByTwo):\n", + " if pow(round_tester, 2**i * ec, mrc) == mrc-1:\n", + " return False\n", + " return True\n", + " \n", + " # Set number of trials here\n", + " numberOfRabinTrials = 20\n", + " for i in range(numberOfRabinTrials):\n", + " round_tester = random.randrange(2, mrc)\n", + " if trialComposite(round_tester):\n", + " return False\n", + " return True\n", + " \n", + "def random_large_prime(bits):\n", + " while True:\n", + " prime_candidate = getLowLevelPrime(bits)\n", + " if not isMillerRabinPassed(prime_candidate):\n", + " continue\n", + " else:\n", + " return prime_candidate\n", + "\n", + "def thread_function(i, fast, timeout):\n", + " start = time.time()\n", + "\n", + " c = 5 # bits: 20: 200ms; 21: 350ms; 22: 700ms 23: 1.5s; 25: 6s; 26: 10s; 27: 24s\n", + " bits = 19 if fast else 23\n", + " last_report = time.time()\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " while True:\n", + " iter_start = time.time()\n", + " if iter_start - start > timeout:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " return\n", + " if iter_start - last_report > UNIT/2:\n", + " if len(results[i])%2 == 0:\n", + " logging.info(\"Thread: %d\\treqs: %d\\tmean time: %.3fs\\t%s\"%(i, reqs, processing_time/reqs if reqs>0 else 0.0, \"fast\\t\" if fast else \"\"))\n", + " results[i][iter_start] = processing_time/reqs if reqs>0 else 0.0\n", + " processing_time = 0.0\n", + " reqs = 0\n", + " last_report=iter_start\n", + "\n", + " factors = [random_large_prime(bits) for i in range(c)]\n", + " factors.sort()\n", + " n=math.prod(factors)\n", + "\n", + " r = requests.get(API_URL+'/factors/%d'%(n))\n", + " if r.status_code != 200:\n", + " logging.error(\"wrong status code from webservice\")\n", + " else:\n", + " result = r.json()\n", + " if result != factors:\n", + " logging.error(\"Wrong factors\")\n", + "\n", + " processing_time+=time.time() - iter_start\n", + " reqs+=1\n", + " time.sleep(0.5)\n", + "\n", + "START = time.time()\n", + "slow_threads = 4\n", + "\n", + "results = [ {} for i in range(slow_threads+1)]\n", + "\n", + "t0 = threading.Thread(target=thread_function, args=(0, True, (5 + slow_threads*3) * UNIT))\n", + "t0.start()\n", + "time.sleep(2 * UNIT)\n", + "for i in range(slow_threads):\n", + " t = threading.Thread(target=thread_function, args=(i+1, False, (slow_threads-i) * 3 * UNIT))\n", + " t.start()\n", + " time.sleep(2 * UNIT)\n", + "\n", + "t0.join()" + ], + "id": "be094f896ed40b1b", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:root:Thread: 0\treqs: 16\tmean time: 1.717s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 21.419s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 22.195s\t\n", + "INFO:root:Thread: 0\treqs: 9\tmean time: 1.339s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 9\tmean time: 1.361s\t\n", + "INFO:root:Thread: 2\treqs: 8\tmean time: 1.505s\t\n", + "INFO:root:Thread: 0\treqs: 8\tmean time: 1.586s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 8\tmean time: 1.575s\t\n", + "INFO:root:Thread: 2\treqs: 8\tmean time: 1.622s\t\n", + "INFO:root:Thread: 0\treqs: 8\tmean time: 1.587s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 8\tmean time: 1.554s\t\n", + "INFO:root:Thread: 3\treqs: 6\tmean time: 2.339s\t\n", + "INFO:root:Thread: 2\treqs: 5\tmean time: 2.570s\t\n", + "INFO:root:Thread: 0\treqs: 5\tmean time: 2.604s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 5\tmean time: 2.694s\t\n", + "INFO:root:Thread: 3\treqs: 5\tmean time: 2.558s\t\n", + "INFO:root:Thread: 2\treqs: 5\tmean time: 2.583s\t\n", + "INFO:root:Thread: 0\treqs: 5\tmean time: 2.570s\tfast\t\n", + "INFO:root:Thread: 1\treqs: 5\tmean time: 2.792s\t\n", + "INFO:root:Thread: 4\treqs: 4\tmean time: 3.601s\t\n", + "INFO:root:Thread: 3\treqs: 4\tmean time: 3.686s\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 22.297s\t\n", + "INFO:root:Thread: 0\treqs: 3\tmean time: 9.913s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 4\tmean time: 8.330s\t\n", + "INFO:root:Thread: 4\treqs: 1\tmean time: 22.307s\t\n", + "INFO:root:Thread: 3\treqs: 1\tmean time: 22.306s\t\n", + "INFO:root:Thread: 4\treqs: 1\tmean time: 1.490s\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 23.343s\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 23.323s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 1\tmean time: 24.088s\t\n", + "INFO:root:Thread: 3\treqs: 5\tmean time: 2.595s\t\n", + "INFO:root:Thread: 3\treqs: 5\tmean time: 2.638s\t\n", + "INFO:root:Thread: 1\treqs: 5\tmean time: 2.624s\t\n", + "INFO:root:Thread: 0\treqs: 5\tmean time: 2.625s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 6\tmean time: 2.302s\t\n", + "INFO:root:Thread: 1\treqs: 6\tmean time: 5.040s\t\n", + "INFO:root:Thread: 0\treqs: 6\tmean time: 5.038s\tfast\t\n", + "INFO:root:Thread: 2\treqs: 4\tmean time: 6.798s\t\n", + "INFO:root:Thread: 1\treqs: 1\tmean time: 22.445s\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 21.447s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 21.433s\tfast\t\n", + "INFO:root:Thread: 0\treqs: 1\tmean time: 21.465s\tfast\t\n" + ] + } + ], + "execution_count": 5 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-21T11:28:26.106329Z", + "start_time": "2024-12-21T11:28:25.992058Z" + } + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.stats as stats\n", + "mu = 0\n", + "std = 1\n", + "for i, result in enumerate(results):\n", + " x = [(x - START)/UNIT for x in result.keys()]\n", + " y = result.values()\n", + " plt.plot(x, y, label=\"t%d\"%(i,))\n", + "\n", + "plt.legend()\n", + "plt.show()" + ], + "id": "b19df5c85a45eec7", + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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CxYsKPexqkZbW1tD/tJBY983aOz718j3DRr7/jXyfYPGvn+NfN9g7Ps31QqIQ0XaMVdeeSUXX3wxb37zm3nLW97Cd7/7XRKJBB/60Icq8eMEQRAEQahDKiJCzjvvPHbs2MEXvvAFtm7dyqGHHspdd921m1lVEARBEITmpWLG1Msuu2xK7ZdGIRgM8sUvfrHE39IoNPJ9g8a+f41836Cx718j3zdo7PvXyPcNynv/NKvce3kFQRAEQRCmQEUSUwVBEARBECZDRIggCIIgCK4gIkQQBEEQBFcQESIIgiAIgiuICJkF1157LUcccQStra3MmTOHc845h5dfftntY1WEr371q2iaxuWXX+72UcrGpk2buPDCC+nu7iYcDnPQQQfxt7/9ze1jlQXDMLj66qtZsmQJ4XCYvfbai//8z/+c1k6HWuGhhx7i7LPPZt68eWiaxm233VZyvWVZfOELX2Du3LmEw2FOPfVUXnnlFXcOOwMmun+5XI7PfvazHHTQQUSjUebNm8cHP/hBNm/e7N6Bp8lk/3/F/PM//zOapvHd7363auebDVO5by+++CLveMc7aG9vJxqNcsQRR7B+/frqH3YGTHb/RkZGuOyyy1iwYAHhcJhly5Zx4403TutniAiZBatWrWLFihU8/vjj3HPPPeRyOU477TQSiYTbRysrf/3rX/nf//1fDj74YLePUjYGBwc59thj8fv93Hnnnbzwwgt861vforOz0+2jlYWvfe1r3HDDDfz3f/83L774Il/72tf4+te/zve+9z23jzZtEokEhxxyCNdff/2Y13/961/nuuuu48Ybb2T16tVEo1GWL19OOp2u8klnxkT3L5lM8tRTT3H11Vfz1FNPccstt/Dyyy/zjne8w4WTzozJ/v8cbr31Vh5//PFpRX67zWT37bXXXuO4445jv/3248EHH+TZZ5/l6quvJhQKVfmkM2Oy+3fllVdy11138fOf/5wXX3yRyy+/nMsuu4zf//73U/8hllA2tm/fbgHWqlWr3D5K2RgeHrb22Wcf65577rFOOOEE61Of+pTbRyoLn/3sZ63jjjvO7WNUjLPOOsu69NJLSy4799xzrQ984AMunag8ANatt96a/9w0Tau/v9/6xje+kb8sFotZwWDQ+uUvf+nCCWfH6Ps3Fk888YQFWG+88UZ1DlVGxrt/GzdutObPn28999xz1h577GF95zvfqfrZZstY9+28886zLrzwQncOVGbGun8HHHCAdc0115Rc9qY3vcn693//9yl/X6mElJF4PA5AV1eXyycpHytWrOCss87i1FNPdfsoZeX3v/89b37zm3nve9/LnDlzOOyww/jBD37g9rHKxjHHHMN9993HmjVrAHjmmWd45JFHOOOMM1w+WXlZu3YtW7duLfn9bG9v58gjj+Sxxx5z8WSVIx6Po2kaHR0dbh+lLJimyUUXXcRnPvMZDjjgALePUzZM0+SPf/wjS5cuZfny5cyZM4cjjzxywnZUvXHMMcfw+9//nk2bNmFZFg888ABr1qzhtNNOm/L3EBFSJkzT5PLLL+fYY4/lwAMPdPs4ZeFXv/oVTz31FNdee63bRyk7r7/+OjfccAP77LMPd999Nx//+Mf55Cc/yU9/+lO3j1YWPve5z3H++eez33774ff7Oeyww7j88sv5wAc+4PbRysrWrVsBdlsJ0dfXl7+ukUin03z2s5/lggsuaJjFaF/72tfw+Xx88pOfdPsoZWX79u2MjIzw1a9+ldNPP50///nPvOtd7+Lcc89l1apVbh+vLHzve99j2bJlLFiwgEAgwOmnn87111/P8ccfP+XvUbHY9mZjxYoVPPfcczzyyCNuH6UsbNiwgU996lPcc889ddO/nA6mafLmN7+Zr3zlKwAcdthhPPfcc9x4441cfPHFLp9u9vzmN7/hF7/4BTfffDMHHHAATz/9NJdffjnz5s1riPvXjORyOd73vvdhWRY33HCD28cpC08++SQrV67kqaeeQtM0t49TVkzTBOCd73wnV1xxBQCHHnoojz76KDfeeCMnnHCCm8crC9/73vd4/PHH+f3vf88ee+zBQw89xIoVK5g3b96Uq+dSCSkDl112GXfccQcPPPAACxYscPs4ZeHJJ59k+/btvOlNb8Ln8+Hz+Vi1ahXXXXcdPp8PwzDcPuKsmDt3LsuWLSu5bP/9968b1/pkfOYzn8lXQw466CAuuugirrjiioaravX39wOwbdu2ksu3bduWv64RcATIG2+8wT333NMwVZCHH36Y7du3s2jRovzzzBtvvMH/+3//j8WLF7t9vFnR09ODz+dr2OeZVCrFv/3bv/Htb3+bs88+m4MPPpjLLruM8847j29+85tT/j5SCZkFlmXxiU98gltvvZUHH3yQJUuWuH2ksnHKKafwj3/8o+SyD33oQ+y333589rOfxev1unSy8nDsscfuNk69Zs0a9thjD5dOVF6SySQeT+lrDK/Xm3911igsWbKE/v5+7rvvPg499FAAhoaGWL16NR//+MfdPVyZcATIK6+8wgMPPEB3d7fbRyobF1100W6vmJcvX85FF13Ehz70IZdOVR4CgQBHHHFEwz7P5HI5crncrJ9nRITMghUrVnDzzTdz++2309ramu9Bt7e3Ew6HXT7d7Ghtbd3N2xKNRunu7m4Iz8sVV1zBMcccw1e+8hXe97738cQTT/D973+f73//+24frSycffbZ/Nd//ReLFi3igAMO4O9//zvf/va3ufTSS90+2rQZGRnh1VdfzX++du1ann76abq6uli0aBGXX345X/7yl9lnn31YsmQJV199NfPmzeOcc85x79DTYKL7N3fuXN7znvfw1FNPcccdd2AYRv55pquri0Ag4Naxp8xk/3+jRZXf76e/v59999232kedNpPdt8985jOcd955HH/88Zx00kncdddd/OEPf+DBBx9079DTYLL7d8IJJ/CZz3yGcDjMHnvswapVq/jZz37Gt7/97an/kFnP7TQxwJhvP/7xj90+WkVopBFdy7KsP/zhD9aBBx5oBYNBa7/99rO+//3vu32ksjE0NGR96lOfshYtWmSFQiFrzz33tP793//dymQybh9t2jzwwANjPs4uvvhiy7LUmO7VV19t9fX1WcFg0DrllFOsl19+2d1DT4OJ7t/atWvHfZ554IEH3D76lJjs/2809TSiO5X7dtNNN1l77723FQqFrEMOOcS67bbb3DvwNJns/m3ZssW65JJLrHnz5lmhUMjad999rW9961uWaZpT/hmaZdVhhKIgCIIgCHWPGFMFQRAEQXAFESGCIAiCILiCiBBBEARBEFxBRIggCIIgCK4gIkQQBEEQBFcQESIIgiAIgiuICBEEQRAEwRVEhAiCIAiC4AoiQgRBEARBcAURIYIgCIIguIKIEEEQBEEQXEFEiCAIgiAIrvD/AzDF+ytLBePDAAAAAElFTkSuQmCC" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 6 + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": "", + "id": "b8073aff580c827f" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}