我有这个包含嵌套循环的函数。我需要并行化以便更快地执行代码。
def euclid_distance(X,BOW_X):
d3=[]
d2=[]
for l in range(len(X)):
for n in range(l+1,len(X)):
d1=[]
for m in range(len(X[l])):
min1=999
p=0
while(p<len(X[n])):
d=scipy.spatial.distance.euclidean(X[l][m],X[n][p])
d=d*numpy.min([BOW_X[l][m],BOW_X[n][p]])
if(d<min1):
min1=d
if(min1==0):
break
p+=1
d1.append(min1)
d2.append(d1)
for i in range(len(d2)):
d3.append(sum(d2[i]))
return (d3)
有没有办法做到这一点 X是一个包含列表的列表,其中包含向量。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您有GPU并且指令之间没有数据相关性,您可以使用PyCuda。使用PyCuda,您可以生成多个并行线程,但是设备之间的数据传输会有一些开销,即CPU和GPU。