#!/usr/bin/env python3
-import random
import sys
import bootstrap
import parallelize as p
import decorator_utils
import executors
-import math_utils
import smart_future
@p.parallelize(method=p.Method.REMOTE)
-def list_primes(n):
- """Calculates sum of all primes below given integer n"""
- ret = []
+def compute_factorial_remote(n):
+ total = 1
for x in range(2, n):
- ret.append(math_utils.is_prime(x))
- return ret
+ total *= x
+ return total
@decorator_utils.timed
def test_thread_parallelization() -> None:
results = []
for _ in range(50):
- results.append(compute_factorial_thread(_))
+ f = compute_factorial_thread(_)
+ results.append(f)
smart_future.wait_all(results)
for future in results:
print(f'Thread: {future}')
@decorator_utils.timed
def test_remote_parallelization() -> None:
- results = {}
+ results = []
for _ in range(50):
- n = random.randint(0, 100000)
- results[n] = list_primes(n)
- tot = 0
- for _ in results[n]:
- tot += _
- print(tot)
+ results.append(compute_factorial_remote(_))
+ for result in smart_future.wait_any(results):
+ print(result)
rexecutor = executors.DefaultExecutors().remote_pool()
rexecutor.shutdown()