"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment envoyer et recevoir efficacement des tableaux 2D dans MPI ?

Comment envoyer et recevoir efficacement des tableaux 2D dans MPI ?

Publié le 2024-12-22
Parcourir:900

How to Effectively Send and Receive 2D Arrays in MPI?

Envoi et réception de tableaux 2D à l'aide de MPI

Problème :

Vous disposez d'une grande matrice 2D qui nécessite un traitement sur plusieurs nœuds utilisant MPI. La seule communication entre les nœuds implique le partage des valeurs de bord après chaque pas de temps.

Approche :

L'approche proposée, décrite dans la question, est adaptée à ce problème. Les segments de code suivants illustrent l'implémentation suggérée :

// (assume A is a 2D array)
if (myrank == 0) {
  for (i = 0; i 

Fonctions MPI supplémentaires :

  • MPI_Allgather : rassemble les données de tous les processeurs dans un tampon accessible à tous les processeurs. Utile pour collecter un tableau distribué sur un seul processeur.
  • MPI_Alltoall : fournit un échange complet de données entre tous les processeurs.
  • MPI_Sendrecv : A fonction pratique qui combine une opération d'envoi et de réception en un seul appel.
  • MPI_Buffer_attach : Attache un tampon à un processus, sans avoir besoin de lui allouer explicitement de la mémoire.

Considérations :

  • Une allocation de mémoire contiguë est recommandée pour les tableaux 2D. pour simplifier la communication MPI.
  • MPI_Barrier assure la synchronisation entre les processus, mais il peut être remplacé par des alternatives non bloquantes comme MPI_Wait ou MPI_Test.
  • Les envois et les réceptions bloquants sont utilisés ici, mais des options non bloquantes sont disponibles pour une efficacité accrue.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3