'cpulimit' e 'nice' não são eficazes em limitar o uso de cpu de um programa python que contém cálculos pesados usando theano

0

Estou executando um programa escrito em python que faz cálculos pesados usando theano .

Como é um programa muito intenso de CPU, ele está interrompendo todas as minhas outras atividades no meu laptop.

Por esse motivo, ajustei o nível legal do processo para 19 e usei cpulimit para reduzir o uso da CPU para 10%.

Infelizmente, essas tentativas não foram eficazes, pois o laptop às vezes fica preso por alguns minutos.

Você tem alguma idéia de como lidar com esse problema? Como posso instruir o agendador a se comportar adequadamente?

O laptop é um Ultrabook da Samsung (nova série 9) com um processador Intel Core i5-3317U. O sistema operacional é o Linux, o Ubuntu 15.10 com o kernel 4.2.0.

EDIT: O problema parece ser causado por lixeira (pouca memória, troca constante)

    
por fstab 18.03.2016 / 15:08

1 resposta

1

Esse tipo de falta de resposta, embora a CPU seja limitada, geralmente é causada pela troca (ou seja, seu processo envia outras tarefas para o disco e faz com que elas voltem a ocorrer em muito tempo).

A melhor maneira de limitar seu uso de memória é normalmente de dentro do programa. Se isso não for possível e a memória for consumida lentamente (porque não é liberada), pode ser necessário matar o programa com tanta frequência e reiniciar. É claro que isso só funciona se resultados intermediários forem escritos regularmente.

Fora do programa, você pode limitar a quantidade de memória usando o script timeout (esse não é o tempo limite de coreutils !) Ele tem uma opção -m para limitar a memória e irá matar seu processo se ele começar a consumir muita memória.

Se você não puder reiniciar o processamento, suas opções serão

  • comprando mais memória para sua máquina se ela puder ser instalada
  • instalando um SSD SATA se o seu laptop suportar isso e colocar swap nele
  • reescrevendo o software para trabalhar em partes menores
por 18.03.2016 / 17:44