-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
35 lines (29 loc) · 1.58 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from generator import generate_factorizers_dict
from persistance import sqlite_persistance
from statistics import average_of_factorizers
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--bits', required=True, type=int, nargs='+',
help='bits to be executed')
parser.add_argument('--rounds', required=True, type=int, help='number of rounds to be executed')
parser.add_argument('--method', help='method to be used')
parser.add_argument('--processes', type=int, help='number of processes to be used')
parser.add_argument('--server_ip', help='server_ip of parallel implementation')
parser.add_argument('--worker_ips', nargs='*', help='worker_ip of parallel implementation')
parser.add_argument('--quadratic_sieve_tactic', type=int, help='type of polynomial builder to use')
parser.add_argument('--database_name', help='type of polynomial builder to use')
args = parser.parse_args()
if args.processes is None:
args.processes = 3
if args.server_ip is None:
args.server_ip = 'localhost'
if args.worker_ips is None:
args.worker_ips = ['localhost']
if args.database_name is None:
args.database_name = args.method
persistance = sqlite_persistance()
for _ in range(args.rounds):
factorizer_dict = generate_factorizers_dict(args.bits, args.method, args.processes, args.worker_ips, args.server_ip, args.quadratic_sieve_tactic)
result = average_of_factorizers(factorizer_dict)
persistance.save_statistics(result, args.database_name)