Problème que même si Pool.close () est fait avec le multitraitement de Python, le processus reste en pause et la mémoire augmente régulièrement.

s'il vous plaît dites-moi

Ce que vous voulez résoudre

Si vous donnez un argument approprié au main ci-dessous et que vous l'exécutez, le nombre de processus augmentera et la mémoire sera serrée, je veux donc éviter cela.

import multiprocessing

def score4abc(a,b):
  score = a,b
  return score

def wrapper_score4multi(args):
  return score4abc(*args)

def main(a,foo):
	for i in range(500):
		pool = multiprocessing.Pool(32)
		pool.map(wrapper_score4multi,[[a,b] for b in foo]#32 processus sont toujours à l'état R et les processus terminés restent à l'état S.
		pool.close()

J'aimerais pouvoir faire quelque chose comme ça

Pour le dire clairement, cela fait du bien de pouvoir tuer les processus restants avec une méthode de collage comme pool.kill ().

Information supplémentaire

Quand je l'ai vérifié avec ps aux, le processus qui traitait en parallèle lors de l'exécution du code suivant est resté suspendu pendant un long moment, donc j'ai suspecté que c'était la cause. Selon le document officiel, il dit qu'il s'arrête avec Pool.terminate () et se termine avec Pool.close (), mais il reste parfaitement même après Pool.close (). J'ai oublié les détails, mais je ne peux pas utiliser Process pour transmettre plusieurs arguments à la fonction que je souhaite traiter en parallèle, et je pense que c'était difficile sans utiliser pool.map comme indiqué ci-dessous. De plus, si vous identifiez le processus et que vous le tuez dans le shell toutes les minutes, le nombre de processus se rétablira rapidement avec le temps (couche trop basse pour identifier la cause vous-même). Ce qui précède est compilé et exécuté par Cython. La version python de l'appelant principal ci-dessus est 2.7.3.

Recommended Posts

Problème que même si Pool.close () est fait avec le multitraitement de Python, le processus reste en pause et la mémoire augmente régulièrement.
Le problème qui me donne du chocolat ne se fait pas même si l'analyse de correspondance se fait avec l'API COTOHA
Notez que le processus reste même après la déconnexion avec SSH
Comment gérer le problème du déplacement du répertoire actuel lorsque Python est exécuté depuis Atom
Résolvez le problème du sac à dos Python avec la méthode de branche et liée