Execute o script GNU Octave em vários núcleos

2

Estou computando simulações de Monte Carlo usando o GNU Octave 4.0.0 no meu PC de 4 núcleos. A simulação leva quase 4 horas para calcular o script por 50.000 vezes (específico para o meu problema), o que é muito tempo gasto para computação. Eu queria saber se existe uma maneira de executar o Octave em vários núcleos simultaneamente para reduzir o tempo de cálculos.

Obrigado antecipadamente.

    
por North 18.05.2016 / 15:53

1 resposta

2

O GNU Parallel não fará multithreading, mas irá fazer multiprocessamento, o que pode ser o suficiente para você:

seq 50000 | parallel my_MC_sim --iteration {}

O padrão será 1 processo por núcleo da CPU e garantirá que a saída de dois trabalhos paralelos não seja misturada.

Você pode até colocar essa paralelização no script do Octave. Consulte o link

O GNU Parallel é um paralelizador geral e facilita a execução de trabalhos em paralelo na mesma máquina ou em várias máquinas para as quais você tem acesso ssh. Muitas vezes, pode substituir um loop for .

Se você tem 32 tarefas diferentes que você quer rodar em 4 CPUs, uma forma direta de paralelizar é rodar 8 tarefas em cada processador:

O

GNUParallelgeraumnovoprocessoquandoumtermina-mantendoasCPUsativaseeconomizandotempo:

Instalação

Se o GNU Parallel não for empacotado para sua distribuição, você poderá fazer uma instalação pessoal, que não requer acesso root. Isso pode ser feito em 10 segundos ao fazer isso:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Para outras opções de instalação, consulte o link

Saiba mais

Veja mais exemplos: link

Assista aos vídeos de introdução: link

Percorra o tutorial: link

Inscreva-se na lista de e-mail para obter suporte: link

    
por 04.07.2016 / 08:13