J'ai un std :: vector (appelons-le "data_vector") que je veux synchroniser des parties de processeurs. C'est-à-dire, je veux envoyer les valeurs d'index arbitraires dans ce vecteur à d'autres processeurs.Synchroniser uniquement les parties d'un vecteur C++ en utilisant Boost.MPI
Je peux facilement le faire avec les fonctions send() de Boost si je veux envoyer le vecteur entier, mais j'ai seulement besoin d'en envoyer une petite partie. En ce moment j'ai un vecteur séparé (appelons-le "idx_vector") contenant les index de data_vector que je veux envoyer, mais je peux changer le format si nécessaire.
Quelle est la meilleure façon de faire cela? Je ne veux pas parcourir et synchroniser chaque index séparément. Je pourrais copier toutes les valeurs dans un vecteur contigu et synchroniser cela, puis le reconstruire, mais je me demande si Boost a un meilleur moyen. Boost.serialization avec idx_vector contenant des pointeurs vers des emplacements data_vector fonctionnerait-il? Comment ferais-je cela?