Je ne suis pas sûr que ce forum soit le meilleur endroit pour ma question, mais je tente quand même.
Je souhaite lancer un programme (un binaire présent sur ma machine) un grand nombre de fois, avec des arguments qui varient. Par "grand nombre", je veux dire ~1 000 000. J'utilise donc des `subprocess` pour les lancements de ces binaires.
J'ai un peu de traitement à faire sur ces arguments avant de les soumettre, alors j'utilise aussi multiprocess.Pool pour ces traitements, qui se chargent aussi de lancer le binaire.
L'architecture de mon application ressemble pour le moment à ça (avec un peu de pseudo-code)
Code : Tout sélectionner
def main():
"""Démarre un pool de processus pour traiter les arguments et lancer le binaire."""
pool = Pool(NB_PROCESSES)
pool.map_async(binary_wrapper, args)
def binary_wrapper(arg):
"""Transforme l'argument, puis lance mon binaire."""
# Some stuff
popen = subprocess.Popen((my_binary, arg))
popen.wait()
N'y a-t-il pas moyen d'utiliser un système équivalent à un multiprocess.Pool pour démarrer un programme indépendant ?
Merci d'avance pour votre aide !
Duna
EDIT: Je précise que je n'ai pas moyen de modifier le code du binaire. Je ne peux tripatouiller que des wrappers.