10-27-2017, 06:35 AM
(Esta mensagem foi modificada pela última vez a: 10-27-2017, 06:36 AM por Hawk.)
vou tentar postar aqui mesmo e foda-se.
DISCLAIMER: não sou programador... então é 100% de certeza que o código está um lixo kkkk
o código está em https://paste.ofcode.org/35pjwe4pUbSaMWi2q3DZ47r
o gargalo começa na linha 33. Esse loop gira kk vezes, onde kk é o indice do vetor tempo. Por exemplo: se eu tenho um vetor de 10s, com sample rate de 100hz, então o vetor tem kk vai de 0 até 10/0.01 - 1. Normalmente eu trabalho com vetores de 10 a 180s. E ainda concateno vários vetores de tempo nesse tamanho aí. É ponto pra cacete pra um loop.
Enfim, se só rodasse uma vez o loop não era problema. O negócio fica lento um pouco mais pra baixo, na linha 38. Esse for loop é feito com o número de parâmetros a serem identificados. Esse número varia de 7 a 30. E aí meu sistema dinâmico tem suas equações de estado "calculadas" na função gradrespH. O problema maior ainda é que dentro dessa função gradrespH, é feito outro loop de kk vezes do vetor tempo.
Isso é necessário pq estou avaliando a sensibilidade da dinâmica do sistema para cada parâmetro a ser estimado. Eu já vi esse método rodando em C e era ridículo de rápido.
o código do gradresph está em https://paste.ofcode.org/QqkNPpAanP4Vtev3BTQGEW
Em resumo... tem que começar a mexer no gradresph. Se eu já conseguir acelerar esse for loop usando jit, numba ou qualquer outro artíficio maluco do numpy já vai ajudar. Se alguém puder dar uma luz...
DISCLAIMER: não sou programador... então é 100% de certeza que o código está um lixo kkkk
o código está em https://paste.ofcode.org/35pjwe4pUbSaMWi2q3DZ47r
o gargalo começa na linha 33. Esse loop gira kk vezes, onde kk é o indice do vetor tempo. Por exemplo: se eu tenho um vetor de 10s, com sample rate de 100hz, então o vetor tem kk vai de 0 até 10/0.01 - 1. Normalmente eu trabalho com vetores de 10 a 180s. E ainda concateno vários vetores de tempo nesse tamanho aí. É ponto pra cacete pra um loop.
Enfim, se só rodasse uma vez o loop não era problema. O negócio fica lento um pouco mais pra baixo, na linha 38. Esse for loop é feito com o número de parâmetros a serem identificados. Esse número varia de 7 a 30. E aí meu sistema dinâmico tem suas equações de estado "calculadas" na função gradrespH. O problema maior ainda é que dentro dessa função gradrespH, é feito outro loop de kk vezes do vetor tempo.
Isso é necessário pq estou avaliando a sensibilidade da dinâmica do sistema para cada parâmetro a ser estimado. Eu já vi esse método rodando em C e era ridículo de rápido.
o código do gradresph está em https://paste.ofcode.org/QqkNPpAanP4Vtev3BTQGEW
Em resumo... tem que começar a mexer no gradresph. Se eu já conseguir acelerar esse for loop usando jit, numba ou qualquer outro artíficio maluco do numpy já vai ajudar. Se alguém puder dar uma luz...
[00:20] <rav3n> #hnet rlz pq vai de pasta de dente passada no saco ao determinismo q o machado de assis quebrou em umas 20 linhas de chat
http://internetisseriousbusiness.com/


