π
<-

map reduce matrice


File hierarchy

 Downloads
 Files created online(49337)
 TI-Nspire
(27898)

 nCreator(4656)

DownloadTélécharger


LicenceLicense : Non spécifiée / IncluseUnspecified / Included

 TéléchargerDownload

Actions



Vote :

ScreenshotAperçu


Informations

Catégorie :Category: nCreator TI-Nspire
Auteur Author: yayah
Type : Classeur 3.0.1
Page(s) : 1
Taille Size: 3.45 Ko KB
Mis en ligne Uploaded: 19/12/2024 - 00:28:30
Uploadeur Uploader: yayah (Profil)
Téléchargements Downloads: 3
Visibilité Visibility: Archive publique
Shortlink : http://ti-pla.net/a4421334

Description 

Fichier Nspire généré sur TI-Planet.org.

Compatible OS 3.0 et ultérieurs.

<<
Voici un exemple de code MapReduce pour calculer le produit matrice-vecteur en utilisant un environnement de traitement distribué, avec deux parties principales : Map et Reduce . Produit Matrice-Vecteur avec MapReduce 1. Cas Simple : Produit Matrice-Vecteur Supposons que le vecteur v v est stocké en mémoire dans chaque worker. Le produit est calculé en émettant les paires (clé, valeur) et en les réduisant ensuite par la somme des produits. Map Pour chaque élément m i j m_{ij} de la matrice M M , on émet un tuple contenant l'index i i et la valeur m i j Å v j m_{ij} cdot v_j : def mapper_matrice_vecteur(key, value): # key: (i, j), value: m_ij i, j = key m_ij = value v_j = vecteur[j] # Le vecteur est stocké en mémoire emit((i, m_ij * v_j)) Reduce Pour chaque clé i i , on effectue une somme des produits des paires reçues dans le Mapper : def reducer_matrice_vecteur(key, values): i = key # Calcul de la somme des produits pour obtenir x_i x_i = sum(values) emit((i, x_i)) 2. Cas Réaliste : Matrice et Vecteur Découpés en Stripes Dans ce cas, la matrice M M est découpée en vertical strips et le vecteur v v en horizontal strips. Chaque worker travaille sur une portion de la matrice et du vecteur. Map Pour chaque stripe de la matrice M M et le vecteur v v , le Map reçoit un morceau de la matrice et l'émet les produits correspondants avec l'index i i et la clé de stripe k k . def mapper_stripes_matrice_vecteur(key, value): # key: (i, k), value: stripe de M i, k = key stripe_M = value # La stripe de la matrice M stripe_v = vecteur_stripes[k] # La stripe correspondante du vecteur v for j, m_ij in stripe_M: emit((i, m_ij * stripe_v[j])) # Emit (i, produit) Reduce Pour chaque clé i i , on effectue une somme des produits reçus dans le Map, de manière similaire au cas simple. def reducer_stripes_matrice_vecteur(key, values): i = key # Calcul de la somme des produits pour obtenir x_i x_i = sum(values) emit((i, x_i)) 3. Produit de Matrices : Solution en Deux Étapes Étape 1 : Jointure naturelle de M M et N N Pour chaque matrice M M et N N , on effectue une jointure naturelle sur la colonne j j pour associer les éléments correspondants de chaque matrice. Map pour M M def mapper_M(key, value): # key: (i, j), value: m_ij i, j = key m_ij = value emit((j, ("M", i, m_ij))) # Emit (j, ("M", i, m_ij)) Map pour N N def mapper_N(key, value): # key: (j, k), value: n_jk j, k = key n_jk = value emit((j, ("N", k, n_jk))) # Emit (j, ("N", k, n_jk)) Reduce pour la Jointure Dans le reduce, nous faisons la jointure sur j j et émettons les paires ( i , k , m i j Å n j k ) (i, k, m_ij cdot n_jk) . def reducer_jointure(key, values): j = key # Les valeurs peuvent être de type ("M", i, m_ij) ou ("N", k, n_jk) for value in values: if value[0] == "M": i = value[1] m_ij = value[2] else: k = value[1] n_jk = value[2] emit((i, k, m_ij * n_jk)) # Emit (i, k, produit) Étape 2 : Regroupement et Agrégation Pour regrouper les résultats, on effectue une réduction sur la clé ( i , k ) (i, k) , et on calcule la somme des produits. def reducer_aggregation(key, values): i, k = key # Calcul de la somme des produits sum_produit = sum(values) emit((i, k, sum_produit)) # Emit (i, k, somme des produits) MapReduce en Une Seule Étape Il est possible de combiner les deux étapes ci-dessus en un seul algorithme, où les opérations de jointure et d'agrégation sont réalisées de manière plus intégrée dans les fonctions Map et Reduce . Cela nécessiterait de manipuler les données de manière plus complexe, mais reste faisable en ajustant les opérations dans chaque fonction. Remarque Dans un environnement de production, vous utiliseriez des frameworks comme Apache Hadoop ou Apache Spark pour implémenter ce genre d'algorithmes en MapReduce de manière distribuée. Ces frameworks gèrent la distribution des tâches et la coordination entre les différents workers de façon transparente. Made with nCreator - tiplanet.org
>>

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
748 utilisateurs:
>716 invités
>24 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)