Je voudrais exécuter deux scripts python en même temps sur mon ordinateur portable sans diminuer la vitesse de leur calcul.
J'ai cherché et vu cette question disant que nous devrions utiliser le fichier bash
.
J'ai cherché mais je n'ai pas compris ce que je devais faire et comment exécuter ces scripts avec cette méthode appelée bash
.
python script1.py & python script2.py &
Je suis inexpérimenté dans et j'ai besoin de vos conseils professionnels. Je ne comprends pas comment faire cela, où et comment. J'utilise Windows 64 bits.
Meilleur
PS: La réponse que j'ai cochée est un moyen d'exécuter en parallèle deux tâches, mais cela ne diminue pas le temps de calcul pour deux tâches parallèles.
3 Réponses :
J'utilise un fichier batch qui contient ces lignes:
start python script1.py start python script2.py
Cela ouvre une nouvelle fenêtre pour chaque instruction start
.
n'appellera pas python script1.py &
sera un meilleur choix
Ça ne marche pas pour moi. Les deux scripts s'exécutent séquentiellement et non simultanément.
J'ai deux questions ici. devrais-je l'écrire sur invite de commande
. et un autre cela les exécuter tous les deux en parallèle? Je veux dire que si vous ouvrez seulement deux scripts Python avec IDL, votre temps d'exécution augmentera. Mais je ne veux pas avoir plus de temps. C'est possible?
Vous pouvez ouvrir vous-même deux invites de commande et exécuter script1
dans l’une et script2
dans l’autre, ou saisir les lignes ci-dessus dans une invite de commande ou utiliser un fichier de commandes pour démarrer leur.
Jusqu'ici tout va bien. Le laissez-moi finir mes scripts que je les ai exécutés avec IDLE, je pense qu'ils seront terminés dans les 6 heures. Ensuite, je vais l'exécuter. Chacun d'eux dure 21 heures, et quand je les lance tous les deux ensemble, le temps est de 26 heures. je devrais donc essayer de voir s'il est possible d'avoir ces 21 heures de cette façon ou non.
Si vous pouvez installer GNU Parallel sous Windows sous Git Bash (ref ), vous pouvez alors exécuter les deux scripts sur des processeurs distincts de cette manière:
â¶ (cat <<EOF) | time parallel --jobs 2 python3 spigot.py python3 spigot.py EOF ... parallel --jobs 2 74.19s user 0.48s system 196% cpu 37.923 total
Remarque du page de manuel parallèle:
â¶ time python3 spigot.py ... python3 spigot.py 52.73s user 0.32s system 98% cpu 53.857 total
Notez que la question a été mise à jour pour indiquer que la parallélisation n'améliore pas le temps de calcul, ce qui n'est généralement pas une déclaration correcte. p >
Alors que les avantages de la parallélisation dépendent fortement de la machine et de la charge de travail, la parallélisation améliore considérablement le temps de traitement des processus liés au processeur sur les ordinateurs multicœurs.
Voici une démonstration basée sur le calcul de 50 000 chiffres de Pi utilisant l'algorithme de Spigot ( code ) sur mon MacBook Pro quadricœur:
Tâche unique (52s):
--jobs N Number of jobslots on each machine. Run up to N jobs in parallel. 0 means as many as possible. Default is 100% which will run one job per CPU on each machine.
Exécution du même calcul deux fois en parallèle GNU (74s):
â¶ (cat <<EOF) | parallel --jobs 2 python script1.py python script2.py EOF
Of Bien sûr, c'est sur un système qui est occupé à exécuter un système d'exploitation et toutes mes autres applications, donc cela ne divise pas par deux le temps de traitement, mais c'est quand même une grande amélioration.
Voir aussi cette réponse liée à Stack Overflow.
Merci, j'ai git-bash sur ma fenêtre. J'ai celui-ci dans les fenêtres de commande git bash YMa @ Yong21-PC MINGW64 ~ $
alors dois-je écrire votre code après $?
qu'est-ce que ▶ cat
et etc. désolé pour de telles questions.
et puis-je vous demander comment installer GNU parallèle sur Windows?
Le ▶ est mon invite. Ignorez cela. Installez Git Bash, puis tapez tout exactement comme vous le voyez dans ma réponse, avec le caractère ▶. En ce qui concerne l'installation de Git Bash, avez-vous suivi le lien vers la question relative à Stack Overflow où il y a des instructions?
non parce que ça ne m'ouvre pas. J'ai juste eu git bash avant. mais je ne sais pas comment insérer une intrigue gnu en utilisant ça
Désolé. Voici quelques instructions sur l'installation de Git Bash youtube.com/watch?v=rWboGsc6CqI
Ensuite, suivez les instructions ici pour installer GNU en parallèle stackoverflow.com/a/52451011/3787051
oui je l'ai vu avant et installé git bash. Maintenant, je demande comment installer Gnu en parallèle. parce que j'en ai trouvé un en utilisant sudo apt
bash: 10seconds_install: aucun fichier ou répertoire de ce type
$ wget https://git.savannah.gnu.org/cgit/parallel.git/plain/10secon ds_install bash: wget: commande introuvable
continuons cette discussion dans le chat .
Un moyen assez simple d'exécuter des travaux parallèles de tous types consiste à utiliser nohup. Cela redirige la sortie vers un fichier appelé nohup.out (par défaut). Dans votre cas, vous devriez simplement écrire:
nohup python script1.py > output_script1 & nohup python script2.py > output_script2 &
C'est tout. Avec nohup, vous pouvez également vous déconnecter et le script continuera jusqu'à ce qu'il soit terminé
Quel est votre système d'exploitation?
ouvrez un terminal et exécutez la commande
python script1.py &
python script2.py &
(système basé sur ubuntu / linux), vous pourrez exécuter le script sans affecter les autres performance@quamrana windows
@prashantrana J'utilise Windows. il suffit donc d'écrire
python script1.py & python script2.py &
dans l'invite de commande? et tout ira bien?@MaY oui juste 1 script à la fois
@prashantrana eh bien je veux deux processus en même temps sans diminuer la vitesse
@MaY ouais ça le fera, ce que je voulais dire était d'exécuter
python script1.py &
cliquez sur Entrée, puis exécutezpython script2.py &
dans le terminal@MaY, je vois votre mise à jour et il n'est absolument pas correct que GNU parallel ne diminue pas le temps de calcul global. Bien que je n'ai aucune visibilité sur ce que vous faites, voici une démonstration de la façon dont GNU augmente le temps de calcul en parallèle youtube.com/watch?v=kl8LO2jcvMc
Et celui-ci est de l'auteur du parallèle GNU youtube.com/watch?v=OpaiGYxkSuQ