2010-10-31 5 views

Répondre

2

Malheureusement, il ne semble y avoir aucune référence aux appels MPI non bloquants dans la source OcamlMPI. Cependant, j'ai remarqué que pour les versions de blocage, MPI_Send est utilisé. Sous certaines conditions, MPI_Send se comportera comme un appel non bloquant (par exemple pour les petits messages qui correspondent aux tampons de messages sortants par défaut), mais ce comportement dépend de l'implémentation et ce n'est pas quelque chose sur lequel vous pouvez compter. Par l'apparence de la source OcamlMPI, je ne pense pas qu'il serait difficile d'implémenter vos propres équivalents non-bloquants, jetez un oeil dans "msgs.c" (un fichier dans la source OcamlMPI), la fonction " caml_mpi_send "contient le code pour l'envoi standard. Remplacer MPI_Send avec MPI_Isend et gérer le retour d'une structure de données MPI_Request devrait faire l'affaire. Oh, et vous auriez besoin d'ajouter une autre fonction pour MPI_Wait. Vérifiez le MPI standard pour plus d'informations.

Espérons que ça aide!

1

Mpi.iprobe est disponible dans le dernier coffre Subversion ocamlmpi:

http://forge.ocamlcore.org/projects/ocamlmpi/

Cela fournit un contrôle non-bloquant de nouveaux messages. Une fois qu'un message est disponible, la réception de blocage normale peut être utilisée pour récupérer le message.

Questions connexes