Как заставить все ядра работать во время решения Scipi Linalg? - PullRequest
0 голосов
/ 03 июля 2019

Я написал алгоритм интегрирования уравнения движения Ньюмарка.Он работает довольно хорошо, с основным решателем, настроенным как scipy.linalg.solve, однако, насколько мне было сказано, этот решатель должен использовать весь процессор, но для моих расчетов он использует только одно ядро.Можете ли вы сказать мне, что я должен изменить / где ошибка?Код основной части решателя ниже.

for i in range (1,NT):

    t=dt*i
    V1=(a1*U[:,i-1]+a4*Ud[:,i-1]+a5*Udd[:,i-1])
    V2=(a0*U[:,i-1]+a2*Ud[:,i-1]+a3*Udd[:,i-1])

    print("calculation in timestep t=", t)

    CV=dot(numpy.array(Ceqbb).astype(numpy.float64),V1)
    MA=dot(numpy.array(Beqbb).astype(numpy.float64),V2)


    #  apply forces

    F=(numpy.array(FQbb(t)).astype(numpy.float64)).reshape(ndof)


    FH=F+MA+CV

#  solve for displacements

    if(ndof>1):
        Un = linalg.solve(KHnn(t), FH)
    else:
        Un=FH/KHnn(t)

    Uddn=a0*(Un-U[:,i-1])-a2*Ud[:,i-1]-a3*Udd[:,i-1]
    Udn=Ud[:,i-1]+a6*Udd[:,i-1]+a7*Uddn


    U[:,i]=Un
    Ud[:,i]=Udn
    Udd[:,i]=Uddn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...