Ceci est une question d'interview. NCalcul de la somme en parallèle
N nœuds, chaque nœud se compose de quelques champs et méthodes. Ce sont:
// Every node has an ID. All of these IDs are sequential, and begin with 0.
// i.e. all ids are uniquely in the range of 0 t N-1
int id;
int val; // Every node has a value
int max; // max = N. Every node knows how many nodes are in the system.
void send(int idTo, int payload)
int recv(int idFrom)
Ecrire un seul morceau de code qui fonctionne sur chaque nœud simultanément, de sorte que quand il est fini en cours d'exécution chaque nœud dans le système connaît la somme des valeurs de tous les nœuds du système.
Solution que je pourrais penser est que sur chaque nœud, obtenir la valeur de tous les autres nœuds, puis ajouter. De cette façon, nous utiliserons à la fois les fonctions send et recv. et tout sera en cours d'exécution simultanément. – abhinav
Les mots-clés à rechercher pour trouver des solutions sont "préfixe parallèle" "algorithme de balayage" "doublage récursif" – Novelocrat
Considérer également "all reduce" ou "réduction globale" – Novelocrat