Faire tourner deux programmes en // sur un PC

Discutez d'informatique ici !
Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Faire tourner deux programmes en // sur un PC

par anthony_unac » 07 Nov 2016, 18:26

Bonjour,
Mon PC exécute une boucle jour et nuit avec maple.
Est ce possible de lui faire exécuter une boucle en parallèle (avec Mupad par exemple) sans affecter le temps de computation de la première boucle ?



Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 14:08

Re: Faire tourner deux programmes en // sur un PC

par Valentin03 » 07 Nov 2016, 18:37

ça dépend du pc
Si tu a plusieurs coeurs et plusieurs tuyaux, tu peux faire une hémorragie dans chaque tuyau sans affecter la pression des autres
Si tu n'a qu'un coeur ou qu'un tuyau, plus tu fais d'hémorragies et plus la pression baisse

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Faire tourner deux programmes en // sur un PC

par fatal_error » 07 Nov 2016, 18:39

ben si tu as plusieurs cores, oui.
Si ton cpu est un intel, il y a de fortes chances que tu aies deux cores. Au quel cas tu peux lancer un autre traitement (sur ton deuxième core).
Ce que tu veux éviter c'est d'avoir du multithreading sur un seul core, parce que là ton OS va préempter du temps processeur pour satisfaire Mupad de manière (disons) régulière.

Conclusion:
si tu as plusieurs cores, oui c'est possible.

note: tu peux louer une machine pour 1euro par mois chez aruba, ils te filent même 2eurs de réduc à l'inscription donc c'est gratuit....donc tu peux avoir une machine gratuite sur le net pendant deux mois...
la vie est une fête :)

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 07 Nov 2016, 23:54

Merci pour vos réponses.
Qu est ce que c'est au juste que cette histoire de PC pour 1€/mois. C'est genre un pc d'un gars quelquepart sur terre à qui vous dites installes ça et fait tourner ce code jour et nuit ???

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 14:08

Re: Faire tourner deux programmes en // sur un PC

par Valentin03 » 08 Nov 2016, 10:25

On est curieux de savoir ce que tu peux bien faire tourner jour et nuit.
Tu mine du bitcoin ?

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 19:06

Re: Faire tourner deux programmes en // sur un PC

par gwlegion » 08 Nov 2016, 14:54

bonjour

vous faites de raccourcis un peu rapides ...
en effet, en théorie, avec plusieurs cœurs, on peut traiter plusieurs thread sans qu'il se télescopent les un les autres.
Sauf qu'en réalité, c'est un poil plus complexe que ca.

même avec plusieurs, cœurs, il n'y a qu'un bus, qu'un jeu de ram, qu'un seul accès au disque.

le multicœur permet en effet de paralléliser certaines opérations, mais pas n'importe comment, et n'importe laquelle.
In finé, la seule chose qui vas compter pour ce genre de taches, c'est la puissance globale de ton poste, et la puissance nécessaire par chaque programme ...

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Faire tourner deux programmes en // sur un PC

par fatal_error » 08 Nov 2016, 20:13

In finé, la seule chose qui vas compter pour ce genre de taches, c'est la puissance globale de ton poste, et la puissance nécessaire par chaque programme ...


Je suis curieux de savoir comment tu calcules la puissance de ton programme.
Je suis également curieux de savoir comment tu réparties ta "puissance" pour tes programmes :roll:

accessoirement, je suis d'accord pour dire qu'il peut y avoir des facteurs parasites: processus liés à l'os, etc...
maintenant, la RAM, à moins d'allouer des tableaux de bourrins, je vois peu de chance de te faire rotir.
Quant au fs, tu conviendras que rien ne te force d'attendre comme un idiot... et à moins que ta tache de fond c'est faire des accès io toute la journée (ce qui est plain stupid si on cherche de la performance), ben ca reste de fait négligeable aussi.

le point le plus important je pense, c'est si actuellement son processus utilises déjà plusieurs threads (et ou son cpu fait de lhyperthreading ou similaire)...
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Faire tourner deux programmes en // sur un PC

par fatal_error » 08 Nov 2016, 20:31

Qu est ce que c'est au juste que cette histoire de PC pour 1€/mois. C'est genre un pc d'un gars quelquepart sur terre à qui vous dites installes ça et fait tourner ce code jour et nuit ???


lol, en fait la première idée qui vient à l'esprit (et qui malheureusement existe), c'est qu'effectivement, partout sur le net tu as des machines infectées: des pirates s'y sont introduits. Ils y ont déposé un ptit "executable". En particulier ils peuvent faire exécuter cet exécutable (généralement pas pour faire des trucs CPU intensive, mais plus pour voler des passwords, pirater d'autre machines, ou faire du spam, tomber des serveurs).

Il existe en revanche des projets à but scientifique ou tu met volontairement ta machine à contribution de la science de manière gratuite. (en gros quand tu fous rien, ben tu lances un programme qui va calculer et renvoyer les résultats à un serveur distant). (jai pris le premier lien google, je ne sais pas ce que ca vaut http://www.networkworld.com/article/224 ... power.html)

Concernant les machines à 1euros, imagine que c'est un immense hangar, dans lequel ya plein de pc en mode sans écran... le propriétaire du hangar, en l'occurrence c'est aruba, et il te loue ses machines... que toi et toi seul controle à distance (jusqu'à ce qu'un pirate s'y introduise!)
la vie est une fête :)

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 10 Nov 2016, 08:44

Bonjour,
Au final j'ai deux programmes qui tournent en parallèle (un sur maple et l'autre sur mupad) et ça marche plutôt bien . Je peux toujours en plus d'eux écouter de la musique et écrire ce message sur mon forum de maths favoris ;)

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 12 Nov 2016, 21:28

Bonsoir,
En consultant le pourcentage des ressources process utilisé, j'en suis à 25% par maple et 25% Mupad ... l'idée de lancer une troisième boucle sous PariGP commence à me trotter dans la tête ... est ce bien raisonnable ???

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21534
Enregistré le: 11 Nov 2009, 22:53

Re: Faire tourner deux programmes en // sur un PC

par Ben314 » 13 Nov 2016, 23:11

Une question à la con : pourquoi tes différentes boucles tu les fait pas avec plusieurs instances du même logiciel ?
MAPLE, vu que c'est propriétaire, c'est peut être pas faisable (encore qu'au fond, je vois même pas pourquoi ça serait génant), mais sur du libre, y'a pas de raison...
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 13 Nov 2016, 23:15

Que voulez vous dire par la ? (je rappelle que mon niveau en maths est aussi faible qu'en informatique)

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21534
Enregistré le: 11 Nov 2009, 22:53

Re: Faire tourner deux programmes en // sur un PC

par Ben314 » 13 Nov 2016, 23:27

Ben que ça me semble bizarre que, vu que tu sait que ton ordi. est "multitâche" (la preuve étant le fait que tu lui demande de faire deux chose en même temps...), je me demande pourquoi tu veut absolument lui faire exécuter deux programmes différents pour faire le même type de calculs plutôt que de lui faire exécuter plusieurs fois le même programme.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 13 Nov 2016, 23:31

Oh là c'est très simple ... cela vient du fait qu'on ne peut pas lancer maple deux fois de suite sur deux taches différentes. Quand vous vous lancez maple sur une boucle donnée, vous ne pouvez pas rouvrir une deuxième fenêtre maple pour lancer une deuxième boucle (différente de la première) en parallèle.

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21534
Enregistré le: 11 Nov 2009, 22:53

Re: Faire tourner deux programmes en // sur un PC

par Ben314 » 13 Nov 2016, 23:56

hummmmm...
On va dire poliment "ça dépend chez qui"....
Image
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 13 Nov 2016, 23:58

Bon bah je crois qu'on a pas le même maple ou alors je ne sais pas m'en servir comme vous tout simplement :)

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 14 Nov 2016, 07:29

Et vous arrivez à lancer deux calculs en parallèle ?
Si c'est le cas, est ce que le temps d'exécution du second influe sur le premier ?

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21534
Enregistré le: 11 Nov 2009, 22:53

Re: Faire tourner deux programmes en // sur un PC

par Ben314 » 14 Nov 2016, 09:14

J'ai pas fait de tests mesurant précisément des temps de calculs mais mon opinion est plutôt du type de celle de gwlegion, c'est à dire que je serait plus que surpris que, lorsque tu lance un process de plus sur ta machine, ça ne la ralentisse pas du tout : tu as beau avoir plusieurs coeur, vu que sur les machines actuelles tu as quasi systématiquement des tonnes de trucs en "tache de fond" (antivirus, recherche/chargement de M.A.J. sur le net, gestion du ou des caches mémoire sur le disque si nécessaire, etc...) et le fait que dés que tu fait ne serait-ce qu'un mini mouvement de souris, ça déclenche une interruption qui va occuper une partie du système (calculs, bus, etc...), ça me semble on ne peut plus compliqué de savoir si tel ou tel truc en plus va fortement ralentir ou pas un calcul effectué en tâche de fond (sans parler du fait que ça va évidement dépendre de la priorité que tu as attribué à la tâche en question).
Sans parler du fait que je sais pas comment marchent en assembleur les processeurs multi-coeurs et donc je ne sait pas s'il est possible ou pas qu'un même logiciel de calcul (compliqués) puisse demander à utiliser plusieurs cœurs pour faire du calcul en parallèle. Mais ça me semblerais fort possible (et bien utile) et ça signifierais évidement qu'avec un tel logiciel, dés que tu rajoute une quelconque tâche supplémentaire, aussi petite soit-elle (par exemple un simple déplacement de la souris), ben ça va forcément le ralentir et éventuellement pas mal le ralentir.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Avatar de l’utilisateur
anthony_unac
Habitué(e)
Messages: 1115
Enregistré le: 30 Juin 2007, 00:31

Re: Faire tourner deux programmes en // sur un PC

par anthony_unac » 14 Nov 2016, 18:20

Re,
Comment faites vous pour faire apparaître une seconde fenêtre [server2], j'ai essayé en vain avec "create a new worksheet" ??? Bon après mon maple est un peu vieux ce doit être le 5 ou le 7 et j'ai vu que le votre était le 17 !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

Re: Faire tourner deux programmes en // sur un PC

par fatal_error » 14 Nov 2016, 21:18

tu as beau avoir plusieurs coeur, vu que sur les machines actuelles tu as quasi systématiquement des tonnes de trucs en "tache de fond

http://linuxrealtime.org/index.php/Impr ... Properties
(mot clé cpuset)

Tu __peux__ dédier un CPU pour une tache. Tu __peux__ lui dédier de la mémoire. Il reste certes certaines opérations du noyau qui viennent te ticker de temps en temps mais c'est négligeable et n'a de toute façon rien à voir avec ton autre process que tu as lancé ailleurs.

La mise en place coute pas la mort (par contre il faut savoir ce que tu fais).

---
Il est possible de demander plusieurs CPU au sein d'un programme. C'est l'os qui te les donne...

Concernant la perte de perf, il n'y a qu'à regarder le % CPU utilisé. Ton programme ne s'épanche pas sur tous tes CPU, et ton os est suffisamment pas con pour utiliser les CPUS peux utilisés. Tu peux chipoter pour les interruptions souris, mais c'est rien comparé à ta boucle infinie..

Ex:
Code: Tout sélectionner
#on lance une boucle infinie:
$ node -e 'for(var gogol;;){}'

#on regarde le %cpu utilisé: (il est actuellement 97.3%)
$ top -n1|grep node
 2997 gogol     20   0  612668  23808  16908 R  97,3  0,2   0:56.14 node

#on regarde quel cpu est utilisé: (c'est le cpu 1)
$ ps -eF|grep node
gogol     2997  2743 99 153167 23808  1 20:12 pts/8    00:01:31 node -e for(var gogol;;){}

#dans un deuxième shell, on relance une boucle infinie
$ node -e 'for(var gogolForever;;){}'

#on regarde le %cpu utilisé: (il est actuellement 97.3%)
$ top -n1|grep node
 2997 gogol     20   0  612668  23808  16908 R  97,2  0,2   2:54.66 node                                                                               
 3022 gogol     20   0  612668  23808  16908 R  97,2  0,2   0:08.28 node

#on regarde nos cpu utilisés: (cette fois ci c'est le deuxieme)
gogol@gogol:~$ ps -eF|grep node
gogol     2997  2743 99 153167 23808  0 20:12 pts/8    00:03:36 node -e for(var gogol;;){}
gogol     3022  2889 99 153167 23808  2 20:14 pts/9    00:00:49 node -e for(var gogolForever;;){}


Non je ne lagge pas (j'ai 4 coeurs), parce que l'os est suffisamment intelligent pour se servir des processeurs à bon escient. Et non je ne pense pas que tu seras impacté outremesure sauf éventuellement si tu manipules des cores qui ont deux CPU (ou plus) auquel cas pe qu'il utilisait déjà l'HT à fond par exemple (ce que j'ai déjà dit plus haut).

edit: non vous n'avez pas les yeux qui floutent et non ce n'est pas une erreur de relevé, la boucle gogol a bien été changée de du cpu 1 au cpu 0. (et elle change occasionnellement de cpu). Evidemment nos deux processus gourmands ne sont pas mis sur le même cpu...
la vie est une fête :)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 10 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite