Я написал функцию для анализа графиков в Python (использует NetworkX), и мне нужно запустить ее 500 раз, что занимает очень много времени.Я попытался распараллелить его с помощью пула из многопроцессорной обработки, но он разбил мой компьютер, даже когда я установил небольшое значение диапазона, например 5, а не 500. Может кто-нибудь взглянуть на это?Спасибо!
import numpy as np
import random as rn
import networkx as nx
import operator
import bcCalcs
from multiprocessing import Process
n1 = 100
n2 = 200
p = 1/2
q = 1/4000
percent = 0
def baInter():
global percent
icCount = .1*(n1+n2)
while icCount >= (.1*(n1+n2)):
ba = bcCalcs.baModel(n1, n2, 4, 4, q)
g = nx.from_numpy_matrix(ba)
globalBC = nx.betweenness_centrality(g, normalized = False)
globalBCsorted = bcCalcs.sortBC(globalBC, 1)
interCommNodes = bcCalcs.inter_comm_nodes(ba, n1)
icCount = len(interCommNodes)
for node in globalBCsorted:
if node[0] in interCommNodes:
percent = percent + 1
print("x")
if __name__ == "__main__":
procs = []
for i in range(500):
proc = Process(target=baInter)
procs.append(proc)
proc.start()
for proc in procs:
proc.join
percent = 100*(percent/500)
print(percent)