, la meilleure réponse que vous pouvez attendre sera également non Lorsque vous programmez en utilisant MPI, vous écrivez généralement un seul programme qui est lancé (via mpirun/mpiexec, ou un système de traitement par lots, par exemple le couple) sur un ensemble de notes.
Le modèle maître-esclave n'est qu'une approche. L'allocation de mémoire est généralement sous le contrôle du programme, tout comme vous le feriez dans toute application allouant de la mémoire si nécessaire, ainsi dans votre programme MPI. En ce qui concerne la recherche des données, elles leur sont souvent fournies (directement ou indirectement) (par le processus maître , si le modèle maître-esclave est utilisé). Si en effet chaque instance MPI doit "rechercher" les données qu'elle doit traiter, alors comme pour tout programme qui est incapable de trouver ce dont elle a besoin, elle doit renvoyer un message/état d'erreur approprié à l'appelant (ou au maître processus)
.PMCD.
Merci! Les nœuds esclaves MPI obtiennent une image du processus maître lors de l'exécution, n'est-ce pas? Je m'attends donc à ce que les processus esclaves allouent de la mémoire pour les variables localement. Mais mon qstn est de savoir comment les proceses décident de la taille de la mémoire à allouer pour le processus. En d'autres termes, comment l'espace d'adressage est-il déterminé? Comment les informations concernant l'espace d'adressage sont-elles déterminées? –
Les processus esclaves (instances du programme MPI) sont comme n'importe quel autre programme. Si on leur donne un nom de fichier pour l'image à traiter, la routine de la bibliothèque utilisée pour ouvrir le fichier image saura comment inspecter le format de fichier pour découvrir les propriétés de l'image (dimensions en pixels, profondeur de couleur, métadonnées ...) et allouer dynamiquement la mémoire requise (par exemple, malloc/new). Ensuite, en fonction du traitement effectué, votre application doit savoir si elle doit créer une autre image de taille similaire (par exemple, l'image résultante) et peut de nouveau utiliser les routines de la bibliothèque d'images pour allouer/construire une image. –