IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Parallélisation d'un programme


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 288
    Points : 113
    Points
    113
    Par défaut Parallélisation d'un programme
    Bonjour,

    Je cherche à rendre parralèle un programme matlab pour l'exécuter sur plusieurs postes.
    En effet, ce n'est pas la parralélisation du code dans sa globalité qui me pose problème mais c'est plutôt la possibilité de faire du parralélisme entre PCs ou autrement la possibilité d'affecter des tâches aux différents PCs d'un réseau local.

    Si quelqu'un à une proposition je serais preneur.

    Vous remerciant d'avance pour vôtre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    On en a un peu parlé ici

    Je pense que si il y avait quelque chose de "built in" pour ça, les grands manitous du forum y aurait déjà répondu. J'ai eu ce genre de problème également, j'ai créé mon propre ordonnanceur en bash (ordonnanceur c'est peut être un grand mot pour ce que j'ai écrit ). Forcément, on perd quantité de fonctionnalités (par exemple, si ton code plante, c'est un peu plus difficile d'avoir un retour sur le pourquoi, tu ne peux pas faire de debugging...) mais ça m'a fait gagner un temps précieux.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 288
    Points : 113
    Points
    113
    Par défaut
    Un Grand Merci pour la réponse et l'intérêt.

    La ToolBox est fort intéressante, je vous remercie du tuyau.

    Pour creuser un peu plus, je vais essayer de poser 2 questions:

    1. Comment écrire le module à lancer en parallèle? Quelles particularités? Simplement une fonction, par exemple? Comment spécifier que ce module serait appelé à s'exécuter en parallèle depuis un autre? Où le placer?

    2. Comment appeler un module distant? Comment spécifier le nom de la machine et le chemin d'accès au module (serveur) distant?

    Vous remerciant pour vôtre aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Citation Envoyé par medchok Voir le message
    1. Comment écrire le module à lancer en parallèle?
    Si tu utilises la toolbox Matlab, regarde la documentation du parfor et matlabpool.

    Citation Envoyé par medchok Voir le message
    Quelles particularités? Simplement une fonction, par exemple?
    Le parfor s'utilise comme une boucle for mais il y a des restrictions qui existent. Tu ne peux pas faire ce que tu veux à l'intérieur de ta boucle.


    Citation Envoyé par medchok Voir le message
    Comment spécifier que ce module serait appelé à s'exécuter en parallèle depuis un autre? Où le placer?
    matlab gère ça pour toi (si je comprend bien le sens de ce que tu appelles module). Il va utiliser par défaut tous les cœurs disponibles de la machine sur laquelle tu lances ton code. Tu dois avoir matlab installé sur les machine distante bien entendu.

    Citation Envoyé par medchok Voir le message
    2. Comment appeler un module distant? Comment spécifier le nom de la machine et le chemin d'accès au module (serveur) distant?
    Comme je disais, il me semble que la toolbox ne gère pas de multiple machine, j'ai rien trouvé sur le sujet (mais Duf42 dit que si et il est plus compétent que moi). Si tu n'as pas beaucoup de machines, c'est pas grand chose de lancer manuellement toutes tes taches.
    Imaginons que tu as 3 ordinateurs distants à disposition et que tu veuilles paralleliser une boucle allant de 1 à N, sur le premier ordinateur tu lances une boucle de 1 à N/3, sur le deuxième N/3+1 jusqu'à 2N/3 etc... Pas très gracieux mais ça fonction. Attention, ça veut dire que tes boucles doivent être totalement indépendantes les unes des autres.

    Pour le contrôle de matlab à distance, j'utilise le protocole ssh. Tu te connectes à ta machine distante, tu mets les fichiers nécessaire sur cette machine avec un rsync (commande bash si tu es sous système unix) sinon il me semble que filezilla fait des choses analogues avec en prime une interface graphique. Puis tu lances ton programme depuis ton ordinateur.
    Par contre, il faut veiller à cette connexion reste active, sinon, dès que tu fermeras ton ordinateur, l'ordinateur distant ne recevra plus d'ordre = le programme s'arrêtera. Sous linux, tu peux utiliser la commande screen ou disown pour palier ce problème.

Discussions similaires

  1. MPI - paralléliser un programme
    Par abdeldoli dans le forum Bibliothèques, systèmes et outils
    Réponses: 6
    Dernier message: 01/01/2014, 18h45
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  4. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo