2008-08-29 6 views
0

Je travaille sur un système avec quatre CPS logiques (deux processeurs dual-core si cela est important). J'utilise make pour paralléliser douze tâches trivialement parallélisables et le faire depuis cron.Problème avec parallèle ne démarre pas toujours un autre travail quand on finit

L'invocation ressemble:

make -k -j 4 -l 3.99 -C [dir] [12 targets] 

Le problème que je suis en cours d'exécution en est que parfois un emploi se terminera, mais le prochain ne sera pas mise en service, même si elle ne doit pas être arrêté par la moyenne de charge limiteur. Chaque objectif prend environ quatre heures à compléter et je me demande si cela pourrait faire partie du problème. Edit: Parfois une cible échoue mais j'utilise l'option -k pour que le reste de la make soit encore exécuté. Je n'ai remarqué aucune corrélation avec les échecs d'un emploi et le prochain travail ne démarre pas.

Répondre

0

Pensez-vous que l'une des cibles est défaillante? Si c'est le cas, il arrêtera la création après la fin des travaux en cours. Vous pouvez utiliser -k pour lui dire de continuer même si une erreur se produit.

1

Je laisserais tomber le « -l »

Si tout ce que vous envisagez d'exécuter le système est cette construction, je pense le -j 4 fait ce que vous voulez.

Sur la base de ma mémoire, si vous avez quoi que ce soit en cours d'exécution d'autre (crond?), Qui peut pousser la charge moyenne sur 4.

GNU make ref

0

@BCS

Je suis sûr 99,9% que le -l ne cause pas le problème parce que je peux regarder la moyenne de charge sur la machine et il tombe à environ trois et parfois aussi bas qu'un (!) sans commencer le travail suivant.

Questions connexes