diff --git a/4-collectives.html b/4-collectives.html index c2d9684..878532c 100644 --- a/4-collectives.html +++ b/4-collectives.html @@ -641,11 +641,13 @@

Division de l’espace de travail

Exemple - Intégration par la méthode des rectangles#

- +

Soit la fonction :

+
+\[f(x) = \sin^2{x \mathrm{e}^{-x}}\]
+

Calculons en parallèle une approximation de l’intégrale \(I\) +de cette fonction dans l’intervalle allant de \(0\) à \(\pi\) :

-\[f(x) = sin^2{x e^{-x}}\]
+\[I = \int_{0}^{\pi} \sin^2{x \mathrm{e}^{-x}} \mathrm{d}x\] diff --git a/_sources/4-collectives.ipynb b/_sources/4-collectives.ipynb index 82e818d..f8f77b3 100644 --- a/_sources/4-collectives.ipynb +++ b/_sources/4-collectives.ipynb @@ -429,10 +429,14 @@ "metadata": {}, "source": [ "### Exemple - Intégration par la méthode des rectangles\n", + "Soit la fonction :\n", "\n", - "* Calculons en parallèle une approximation de l'intégrale $I$ de la fonction suivante :\n", + "$$f(x) = \\sin^2{x \\mathrm{e}^{-x}}$$\n", "\n", - "$$f(x) = sin^2{x e^{-x}}$$" + "Calculons en parallèle une approximation de l'intégrale $I$\n", + "de cette fonction dans l'intervalle allant de $0$ à $\\pi$ :\n", + "\n", + "$$I = \\int_{0}^{\\pi} \\sin^2{x \\mathrm{e}^{-x}} \\mathrm{d}x$$" ] }, { diff --git a/searchindex.js b/searchindex.js index 5acff20..35fb003 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Calculs collectifs": [[4, "calculs-collectifs"]], "Communicateurs": [[2, "communicateurs"]], "Communications collectives": [[4, "communications-collectives"]], "Communications non bloquantes": [[3, "communications-non-bloquantes"]], "Communications point-\u00e0-point": [[3, "communications-point-a-point"]], "Compilation d\u2019un programme MPI": [[2, "compilation-d-un-programme-mpi"]], "Des questions \u00e0 se poser": [[1, "des-questions-a-se-poser"]], "Diffusion de donn\u00e9es avec MPI_Bcast": [[4, "diffusion-de-donnees-avec-mpi-bcast"]], "Distribution de donn\u00e9es avec MPI_Scatter": [[4, "distribution-de-donnees-avec-mpi-scatter"]], "Division de l\u2019espace de travail": [[4, "division-de-l-espace-de-travail"]], "D\u00e9placements de donn\u00e9es": [[4, "deplacements-de-donnees"]], "Environnement requis pour utiliser MPI": [[2, "environnement-requis-pour-utiliser-mpi"]], "Exemple - Int\u00e9gration par la m\u00e9thode des rectangles": [[4, "exemple-integration-par-la-methode-des-rectangles"]], "Exemple - MPI_Send et MPI_Recv": [[3, "exemple-mpi-send-et-mpi-recv"]], "Exemple d\u2019ex\u00e9cution": [[2, "exemple-dexecution"]], "Exemple en C - demos/bonjour.c": [[2, "exemple-en-c-demos-bonjour-c"]], "Exemple en Python - demos/bonjour.py": [[2, "exemple-en-python-demos-bonjour-py"]], "Exercice #1 - Premier lancement": [[2, "exercice-1-premier-lancement"]], "Exercice #2 - Envoi d\u2019une matrice": [[3, "exercice-2-envoi-d-une-matrice"]], "Exercice #3 - \u00c9change de vecteurs": [[3, "exercice-3-echange-de-vecteurs"]], "Introduction": [[1, "introduction"]], "Lancement d\u2019un programme MPI": [[2, "lancement-d-un-programme-mpi"]], "Les communications via MPI": [[2, "les-communications-via-mpi"]], "MPI_Recv() (bloquant)": [[3, "mpi-recv-bloquant"]], "MPI_Send() (bloquant)": [[3, "mpi-send-bloquant"]], "Machine \u00e0 m\u00e9moire distribu\u00e9e": [[1, "machine-a-memoire-distribuee"]], "Nombre de processus et un rang unique": [[2, "nombre-de-processus-et-un-rang-unique"]], "Op\u00e9rations de r\u00e9duction": [[4, "operations-de-reduction"]], "Parall\u00e9lisation explicite": [[2, "parallelisation-explicite"]], "Premiers pas avec MPI": [[2, "premiers-pas-avec-mpi"]], "Programmation parall\u00e8le avec MPI": [[0, "programmation-parallele-avec-mpi"]], "Programme MPI de base": [[2, "programme-mpi-de-base"]], "Qu\u2019est-ce que MPI?": [[2, "qu-est-ce-que-mpi"]], "Regroupement de donn\u00e9es avec MPI_Gather": [[4, "regroupement-de-donnees-avec-mpi-gather"]], "Regroupement \u00e0 tous avec MPI_Allgather": [[4, "regroupement-a-tous-avec-mpi-allgather"]], "R\u00e9duction avec MPI_Reduce": [[4, "reduction-avec-mpi-reduce"]], "R\u00e9duction et diffusion avec MPI_Allreduce": [[4, "reduction-et-diffusion-avec-mpi-allreduce"]], "R\u00e9f\u00e9rences": [[0, "references"], [5, "references"]], "Solution 1": [[3, "solution-1"]], "Solution 2": [[3, "solution-2"]], "Structure d\u2019un code MPI": [[2, "structure-d-un-code-mpi"]], "Table des mati\u00e8res": [[0, "table-des-matieres"]], "Transposition globale avec MPI_Alltoall": [[4, "transposition-globale-avec-mpi-alltoall"]], "Types de communications": [[2, "types-de-communications"]], "Types de donn\u00e9es": [[2, "types-de-donnees"]], "\u00c0 propos": [[0, "a-propos"]], "\u00c9viter les situations d\u2019interblocage": [[3, "eviter-les-situations-d-interblocage"]]}, "docnames": ["0-a_propos", "1-introduction", "2-mpi", "3-point-a-point", "4-collectives", "99-references"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["0-a_propos.ipynb", "1-introduction.ipynb", "2-mpi.ipynb", "3-point-a-point.ipynb", "4-collectives.ipynb", "99-references.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 4], "001": 4, "011": 4, "1": 4, "10": [2, 3], "101": 4, "11": [2, 3], "110": 4, "111": 4, "120": 2, "15": 4, "1994": 2, "2": 4, "2023": 2, "3": [2, 4], "4": 2, "4x4": 3, "5": [2, 4], "6": 4, "7": 4, "746": 3, "8": 4, "Avec": [2, 3], "C": [1, 3, 4], "Ce": 2, "Ces": 2, "Cet": 0, "ET": 4, "Elle": 3, "Elles": 3, "En": [2, 3, 4], "Ici": 2, "Il": [1, 2, 3], "L": [0, 3], "La": [2, 4], "Le": [2, 3], "Les": [0, 3, 4, 5], "N": 4, "OU": 4, "On": [2, 3, 4], "Par": [1, 2, 4], "Pour": [2, 4], "Qu": 0, "Soit": 3, "Un": 2, "Une": 2, "__main__": 2, "__name__": 2, "a": [1, 2, 3, 4], "abord": 2, "acces": 2, "acc\u00e9ler": 1, "action": 2, "adress": 3, "ad\u00e9quat": 2, "agir": 2, "aid": 2, "ains": 3, "algorithm": 5, "allgath": 4, "allianc": 5, "allon": [1, 2], "allreduc": 4, "alltoall": 4, "alor": 4, "amdahl": 5, "analys": 5, "any": 4, "any_sourc": 3, "any_tag": 3, "apparent": 1, "appel": [2, 3, 4], "appellent": 2, "apprendr": 0, "approxim": 4, "apres": 3, "archiv": 5, "archivag": 5, "argc": 2, "argument": [2, 3], "argv": 2, "assur": [3, 4], "ateli": [0, 5], "attendent": 3, "authentif": 5, "automat": [2, 5], "autr": [2, 3], "avant": 2, "b": [3, 4], "bcast": 4, "besoin": 2, "bibliothequ": [0, 2], "bin": 2, "binair": 4, "bloqu": 0, "born": 4, "boucl": 4, "bref": 3, "b\u00e9lug": 5, "calcul": [0, 1, 5], "calculon": 4, "canad": 5, "carpentry": 5, "cas": [2, 3], "cat\u00e9gor": 1, "cedar": 5, "chacun": [1, 2], "chang": 3, "chapitr": [1, 2], "chaqu": [1, 2, 3, 4], "char": 2, "charg": 2, "ci": [2, 3], "cod": [0, 3], "collect": [0, 2], "combinaison": 3, "comm": [2, 3, 4], "comm_world": [2, 3], "command": [2, 5], "commenc": 3, "commencent": 3, "comment": 1, "commun": [0, 1], "communaut": 5, "communiqu": 2, "communiquent": 2, "compil": 3, "complet": 3, "complex": 5, "compress": 5, "compt": [3, 4], "compte_envoi": 4, "compte_recep": 4, "comput": 2, "concept": 2, "conclus": 0, "configur": 2, "consist": 4, "consistent": 1, "const": 4, "cons\u00e9quent": 1, "conten": 1, "contr": 4, "con\u00e7u": 2, "coordon": 1, "count": 3, "cour": 1, "cpu": 5, "cr\u00e9": 2, "dan": [1, 2, 3, 4], "dar": 5, "dat": [2, 5], "debut": 4, "def": 2, "depuis": 2, "dessus": 2, "dest": 3, "deux": [1, 2, 3], "devient": 1, "diff\u00e9rent": [1, 2, 3], "dimens": 4, "dir": [2, 3], "disk": 5, "diskusage_explor": 5, "diskusage_report": 5, "disponibl": [2, 5], "distribu": 0, "divis": [0, 1], "doit": [2, 3, 4], "doivent": [1, 2], "don": [0, 1, 3, 5], "donc": [2, 3], "dont": 2, "doubl": 2, "d\u00e9faut": [2, 3], "d\u00e9fin": 4, "d\u00e9marr": 3, "d\u00e9pend": 2, "d\u00e9plac": 0, "d\u00e9sign": 2, "d\u00e9sir": 2, "d\u00e9s\u00e9rialis": 3, "e": 4, "effect": 4, "effectu": 4, "efficac": 4, "elif": 3, "else": 3, "encor": 2, "englob": 2, "ensembl": 2, "enti": [2, 3], "entier": 4, "entre": [0, 1, 2], "env": 2, "environ": 0, "envoi": [1, 2, 4], "erreur": 2, "erron": 3, "espac": [0, 5], "etat": 3, "etc": 3, "etiquet": 3, "exceeded": 5, "exchang": 3, "exclus": 4, "exist": 2, "explicit": 0, "ex\u00e9cut": [1, 2], "f": [2, 4], "fair": [2, 4], "fait": [1, 2, 4], "fass": 3, "faux": 4, "fa\u00e7on": 2, "fichi": [2, 3, 5], "fin": [2, 4], "finaliz": 2, "float": 2, "flott": 2, "foir": 5, "fonction": [2, 3, 4], "font": 4, "format": [0, 5], "fortran": 2, "from": 2, "gagn": 4, "gath": 4, "gestion": [2, 5], "get_rank": 2, "get_siz": 2, "github": 0, "gnu": 5, "gpu": 5, "graham": 5, "grand": [1, 2, 5], "grapp": 5, "gros": 3, "group": 2, "g\u00e9ner": 2, "g\u00e9n\u00e9ral": 2, "g\u00e9n\u00e9ralis": 3, "h": 2, "haut": 3, "hdf5": 5, "hierarchical": 5, "hor": 2, "hostnam": 2, "i": 4, "ident": [1, 2], "identifi": [2, 3], "ierr": [2, 4], "if": [2, 3], "impair": 3, "implicit": 2, "impliqu": 3, "import": [2, 3], "includ": 2, "inclus": [2, 4], "indiqu": 2, "inform": [3, 4], "inf\u00e9rieur": 4, "init": 2, "initial": 2, "inser": 2, "instanc": 1, "int": [2, 3, 4], "interblocag": 0, "interfac": 2, "interm\u00e9diair": 0, "intervall": 4, "introduct": 0, "int\u00e9gral": 4, "irecv": 3, "isend": 3, "iter": 4, "jav": 2, "lanc": 3, "langag": 2, "li": 3, "lign": 5, "limit": [1, 3], "list": [2, 4], "load": 2, "local": [3, 5], "localis": 2, "logiqu": 4, "loi": 5, "long": [2, 5], "lor": [2, 3, 4], "lorsqu": 2, "lustr": 5, "machin": 0, "main": 2, "major": 2, "manqu": 2, "mat\u00e9riel": 0, "maximal": 3, "maximum": 4, "messag": [2, 3], "minimum": 4, "mist": 5, "modern": 1, "modifi": 3, "modul": 2, "moin": 4, "moyen": [1, 2, 5], "mpi": [1, 3, 4], "mpi4py": 2, "mpi_abort": 2, "mpi_any_sourc": 3, "mpi_any_tag": 3, "mpi_band": 4, "mpi_bor": 4, "mpi_bxor": 4, "mpi_char": 2, "mpi_comm": [2, 3, 4], "mpi_comm_rank": 2, "mpi_comm_siz": 2, "mpi_comm_world": [2, 3, 4], "mpi_datatyp": [3, 4], "mpi_doubl": [2, 3], "mpi_finaliz": 2, "mpi_float": 2, "mpi_in": 2, "mpi_int": [2, 3, 4], "mpi_irecv": 3, "mpi_isend": 3, "mpi_land": 4, "mpi_long": 2, "mpi_lor": 4, "mpi_lxor": 4, "mpi_max": 4, "mpi_min": 4, "mpi_op": 4, "mpi_prod": 4, "mpi_recv": 0, "mpi_request": 3, "mpi_send": 0, "mpi_short": 2, "mpi_sourc": 3, "mpi_ssend": 3, "mpi_status": 3, "mpi_sum": 4, "mpi_tag": 3, "mpi_w": 3, "mpicc": 2, "mpicxx": 2, "mpiexec": 2, "mpif90": 2, "mpirun": 2, "multifacteur": 5, "multipl": [2, 4], "m\u00e9moir": [0, 3], "m\u00e9thod": 1, "m\u00eam": [1, 2, 3, 4], "narval": 5, "national": 5, "nearlin": 5, "niagar": 5, "niveau": 0, "node1": 2, "node2": 2, "nombr": [1, 3, 5], "nomm": 2, "non": [0, 4], "norm": 2, "not": [0, 2, 3], "notebook": 0, "novembr": 2, "np": 2, "numer": 5, "n\u00e9cessair": [1, 2, 3, 4], "n\u0153ud": 5, "o": 2, "object": [0, 3], "objet": [2, 3, 4], "octet": [2, 3], "officiel": 2, "op": 4, "open": 2, "openmp": 2, "optiqu": 2, "or": 1, "ordonnanceur": 2, "ordre": 3, "oubli": 4, "p": 2, "pair": 3, "parallel": [1, 2, 4, 5], "parall\u00e9lis": [0, 1], "part": [2, 3], "partag": 5, "particip": 3, "pass": 2, "passing": 2, "perl": 2, "permet": [2, 4], "permis": 3, "pet": 3, "peut": [2, 3, 4], "peuvent": [2, 3, 4], "pickl": 3, "plac": 2, "plus": [1, 3, 4], "plusieur": [1, 4], "plut\u00f4t": 2, "point": [0, 2], "polit": 5, "portabl": 1, "portion": 4, "possibil": 1, "possibl": 2, "pourquoi": 1, "pouv": 2, "power9": 5, "prec": 3, "premi": [0, 3], "prennent": 2, "principal": [0, 2], "print": 2, "printf": 2, "problem": [1, 2], "proc": 3, "processeur": [1, 2], "processus": [0, 1, 3, 4], "prochain": 5, "produit": 4, "program": 2, "programm": [1, 3], "programmeur": 2, "project": 5, "propr": 3, "pr\u00e9cis": 2, "pr\u00e9matur": 2, "pr\u00e9sent": 0, "publi": 0, "puisqu": 4, "purg": 5, "py": 3, "python": [3, 4], "quand": 3, "quantit": 3, "quelqu": 4, "question": 5, "quot": 5, "qu\u00e9bec": 5, "r": 2, "racin": 4, "rang": 3, "rank": [2, 4], "recep": 4, "recept": 3, "recev": 3, "recevoir": [1, 3], "recherch": 5, "reconstitu": 2, "recv": 3, "reduc": 4, "rend": 3, "requ": 0, "requet": 3, "respect": 2, "respons": 2, "ressourc": 5, "rest": [2, 3], "retourn": 3, "return": 2, "re\u00e7oit": 3, "re\u00e7u": 3, "re\u00e7us": 3, "risqu": [3, 4], "rsync": 5, "r\u00e9cept": [2, 3], "r\u00e9ciproqu": 3, "r\u00e9cuper": 4, "r\u00e9pertoir": [2, 3], "r\u00e9solu": 4, "r\u00e9soudr": 2, "r\u00e9utilis": 3, "san": 3, "savoir": 2, "scalair": 2, "scatt": 4, "scratch": 5, "script": 2, "selon": [2, 4], "send": 3, "send_matrix": 3, "sequenc": 4, "serveur": 1, "seul": [3, 4], "short": 2, "si": 3, "simpl": 2, "sin": 4, "singl": 2, "situat": 0, "siz": [2, 4], "slurm": 2, "slurm_tmpd": 5, "softwar": 5, "somm": 4, "sourc": [2, 3], "souvent": 2, "spid": 2, "spmd": 2, "srun": 2, "status": 3, "stdio": 2, "stockag": 5, "strateg": 4, "structur": 0, "suiv": [1, 3, 4], "sum": 4, "superordin": 1, "sup\u00e9rieur": 4, "system": 5, "s\u00e9rialis": [2, 3], "tag": 3, "taill": 4, "tampon": [3, 4], "tap": 5, "tar": 5, "techniqu": 3, "tel": 3, "term": 5, "termin": [2, 3], "total": [1, 2], "toujour": 3, "tous": [2, 3], "tout": [2, 3, 4], "trait": 2, "transfer": [1, 2], "transfert": [3, 5], "transm": 3, "transmet": 3, "transmiss": 2, "travail": [0, 1], "travaill": [2, 5], "travaillent": 1, "tri": 5, "trivial": 4, "trouvent": 2, "tutoriel": 5, "typ": [3, 4, 5], "type_envoi": 4, "type_recep": 4, "typiqu": 2, "t\u00e2ch": 1, "uniqu": 4, "usr": 2, "utilis": [0, 3, 4], "valeur": [2, 3], "valid": 2, "variabl": [1, 3], "vaudr": 4, "vecteur": 2, "ver": 3, "version": [2, 3], "vi": [0, 3], "viennent": 3, "virgul": 2, "viv": 1, "voic": 4, "void": [3, 4], "voir": [0, 1, 2], "votr": 3, "vrai": 4, "wait": 3, "webinair": 5, "wik": 5, "x": 4, "\u00c0": 2, "\u00e7a": 3, "\u00e9chang": 2, "\u00e9dit": 3, "\u00e9gal": 4, "\u00e9l\u00e9ment": [2, 3, 4], "\u00e9quivalent": 4, "\u00e9tabl": 1, "\u00e9tat": 5, "\u00e9tiquet": 3, "\u00e9vit": 0, "\u00eatre": [3, 4]}, "titles": ["Programmation parall\u00e8le avec MPI", "Introduction", "Premiers pas avec MPI", "Communications point-\u00e0-point", "Communications collectives", "R\u00e9f\u00e9rences"], "titleterms": {"1": [2, 3], "2": 3, "3": 3, "C": 2, "Des": 1, "Les": 2, "Qu": 2, "bas": 2, "bloqu": 3, "bonjour": 2, "calcul": 4, "cod": 2, "collect": 4, "commun": [2, 3, 4], "compil": 2, "demos": 2, "diffus": 4, "distribu": [1, 4], "divis": 4, "don": [2, 4], "d\u00e9plac": 4, "environ": 2, "envoi": 3, "espac": 4, "exempl": [2, 3, 4], "exercic": [2, 3], "explicit": 2, "ex\u00e9cu": 2, "global": 4, "integr": 4, "interblocag": 3, "introduct": 1, "lanc": 2, "machin": 1, "mati": 0, "matric": 3, "mpi": [0, 2], "mpi_allgath": 4, "mpi_allreduc": 4, "mpi_alltoall": 4, "mpi_bcast": 4, "mpi_gath": 4, "mpi_recv": 3, "mpi_reduc": 4, "mpi_scatt": 4, "mpi_send": 3, "m\u00e9moir": 1, "m\u00e9thod": 4, "nombr": 2, "non": 3, "oper": 4, "parallel": 0, "parall\u00e9lis": 2, "point": 3, "pos": 1, "premi": 2, "processus": 2, "programm": [0, 2], "propos": 0, "py": 2, "python": 2, "question": 1, "rang": 2, "rectangl": 4, "regroup": 4, "requ": 2, "r\u00e9duct": 4, "r\u00e9f\u00e9rent": [0, 5], "situat": 3, "solut": 3, "structur": 2, "tabl": 0, "tous": 4, "transposit": 4, "travail": 4, "typ": 2, "uniqu": 2, "utilis": 2, "vecteur": 3, "vi": 2, "\u00c0": 0, "\u00e9chang": 3, "\u00e9vit": 3}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Calculs collectifs": [[4, "calculs-collectifs"]], "Communicateurs": [[2, "communicateurs"]], "Communications collectives": [[4, "communications-collectives"]], "Communications non bloquantes": [[3, "communications-non-bloquantes"]], "Communications point-\u00e0-point": [[3, "communications-point-a-point"]], "Compilation d\u2019un programme MPI": [[2, "compilation-d-un-programme-mpi"]], "Des questions \u00e0 se poser": [[1, "des-questions-a-se-poser"]], "Diffusion de donn\u00e9es avec MPI_Bcast": [[4, "diffusion-de-donnees-avec-mpi-bcast"]], "Distribution de donn\u00e9es avec MPI_Scatter": [[4, "distribution-de-donnees-avec-mpi-scatter"]], "Division de l\u2019espace de travail": [[4, "division-de-l-espace-de-travail"]], "D\u00e9placements de donn\u00e9es": [[4, "deplacements-de-donnees"]], "Environnement requis pour utiliser MPI": [[2, "environnement-requis-pour-utiliser-mpi"]], "Exemple - Int\u00e9gration par la m\u00e9thode des rectangles": [[4, "exemple-integration-par-la-methode-des-rectangles"]], "Exemple - MPI_Send et MPI_Recv": [[3, "exemple-mpi-send-et-mpi-recv"]], "Exemple d\u2019ex\u00e9cution": [[2, "exemple-dexecution"]], "Exemple en C - demos/bonjour.c": [[2, "exemple-en-c-demos-bonjour-c"]], "Exemple en Python - demos/bonjour.py": [[2, "exemple-en-python-demos-bonjour-py"]], "Exercice #1 - Premier lancement": [[2, "exercice-1-premier-lancement"]], "Exercice #2 - Envoi d\u2019une matrice": [[3, "exercice-2-envoi-d-une-matrice"]], "Exercice #3 - \u00c9change de vecteurs": [[3, "exercice-3-echange-de-vecteurs"]], "Introduction": [[1, "introduction"]], "Lancement d\u2019un programme MPI": [[2, "lancement-d-un-programme-mpi"]], "Les communications via MPI": [[2, "les-communications-via-mpi"]], "MPI_Recv() (bloquant)": [[3, "mpi-recv-bloquant"]], "MPI_Send() (bloquant)": [[3, "mpi-send-bloquant"]], "Machine \u00e0 m\u00e9moire distribu\u00e9e": [[1, "machine-a-memoire-distribuee"]], "Nombre de processus et un rang unique": [[2, "nombre-de-processus-et-un-rang-unique"]], "Op\u00e9rations de r\u00e9duction": [[4, "operations-de-reduction"]], "Parall\u00e9lisation explicite": [[2, "parallelisation-explicite"]], "Premiers pas avec MPI": [[2, "premiers-pas-avec-mpi"]], "Programmation parall\u00e8le avec MPI": [[0, "programmation-parallele-avec-mpi"]], "Programme MPI de base": [[2, "programme-mpi-de-base"]], "Qu\u2019est-ce que MPI?": [[2, "qu-est-ce-que-mpi"]], "Regroupement de donn\u00e9es avec MPI_Gather": [[4, "regroupement-de-donnees-avec-mpi-gather"]], "Regroupement \u00e0 tous avec MPI_Allgather": [[4, "regroupement-a-tous-avec-mpi-allgather"]], "R\u00e9duction avec MPI_Reduce": [[4, "reduction-avec-mpi-reduce"]], "R\u00e9duction et diffusion avec MPI_Allreduce": [[4, "reduction-et-diffusion-avec-mpi-allreduce"]], "R\u00e9f\u00e9rences": [[0, "references"], [5, "references"]], "Solution 1": [[3, "solution-1"]], "Solution 2": [[3, "solution-2"]], "Structure d\u2019un code MPI": [[2, "structure-d-un-code-mpi"]], "Table des mati\u00e8res": [[0, "table-des-matieres"]], "Transposition globale avec MPI_Alltoall": [[4, "transposition-globale-avec-mpi-alltoall"]], "Types de communications": [[2, "types-de-communications"]], "Types de donn\u00e9es": [[2, "types-de-donnees"]], "\u00c0 propos": [[0, "a-propos"]], "\u00c9viter les situations d\u2019interblocage": [[3, "eviter-les-situations-d-interblocage"]]}, "docnames": ["0-a_propos", "1-introduction", "2-mpi", "3-point-a-point", "4-collectives", "99-references"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["0-a_propos.ipynb", "1-introduction.ipynb", "2-mpi.ipynb", "3-point-a-point.ipynb", "4-collectives.ipynb", "99-references.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"0": [2, 3, 4], "001": 4, "011": 4, "1": 4, "10": [2, 3], "101": 4, "11": [2, 3], "110": 4, "111": 4, "120": 2, "15": 4, "1994": 2, "2": 4, "2023": 2, "3": [2, 4], "4": 2, "4x4": 3, "5": [2, 4], "6": 4, "7": 4, "746": 3, "8": 4, "Avec": [2, 3], "C": [1, 3, 4], "Ce": 2, "Ces": 2, "Cet": 0, "ET": 4, "Elle": 3, "Elles": 3, "En": [2, 3, 4], "Ici": 2, "Il": [1, 2, 3], "L": [0, 3], "La": [2, 4], "Le": [2, 3], "Les": [0, 3, 4, 5], "N": 4, "OU": 4, "On": [2, 3, 4], "Par": [1, 2, 4], "Pour": [2, 4], "Qu": 0, "Soit": [3, 4], "Un": 2, "Une": 2, "__main__": 2, "__name__": 2, "a": [1, 2, 3, 4], "abord": 2, "acces": 2, "acc\u00e9ler": 1, "action": 2, "adress": 3, "ad\u00e9quat": 2, "agir": 2, "aid": 2, "ains": 3, "algorithm": 5, "allant": 4, "allgath": 4, "allianc": 5, "allon": [1, 2], "allreduc": 4, "alltoall": 4, "alor": 4, "amdahl": 5, "analys": 5, "any": 4, "any_sourc": 3, "any_tag": 3, "apparent": 1, "appel": [2, 3, 4], "appellent": 2, "apprendr": 0, "approxim": 4, "apres": 3, "archiv": 5, "archivag": 5, "argc": 2, "argument": [2, 3], "argv": 2, "assur": [3, 4], "ateli": [0, 5], "attendent": 3, "authentif": 5, "automat": [2, 5], "autr": [2, 3], "avant": 2, "b": [3, 4], "bcast": 4, "besoin": 2, "bibliothequ": [0, 2], "bin": 2, "binair": 4, "bloqu": 0, "born": 4, "boucl": 4, "bref": 3, "b\u00e9lug": 5, "calcul": [0, 1, 5], "calculon": 4, "canad": 5, "carpentry": 5, "cas": [2, 3], "cat\u00e9gor": 1, "cedar": 5, "chacun": [1, 2], "chang": 3, "chapitr": [1, 2], "chaqu": [1, 2, 3, 4], "char": 2, "charg": 2, "ci": [2, 3], "cod": [0, 3], "collect": [0, 2], "combinaison": 3, "comm": [2, 3, 4], "comm_world": [2, 3], "command": [2, 5], "commenc": 3, "commencent": 3, "comment": 1, "commun": [0, 1], "communaut": 5, "communiqu": 2, "communiquent": 2, "compil": 3, "complet": 3, "complex": 5, "compress": 5, "compt": [3, 4], "compte_envoi": 4, "compte_recep": 4, "comput": 2, "concept": 2, "conclus": 0, "configur": 2, "consist": 4, "consistent": 1, "const": 4, "cons\u00e9quent": 1, "conten": 1, "contr": 4, "con\u00e7u": 2, "coordon": 1, "count": 3, "cour": 1, "cpu": 5, "cr\u00e9": 2, "dan": [1, 2, 3, 4], "dar": 5, "dat": [2, 5], "debut": 4, "def": 2, "depuis": 2, "dessus": 2, "dest": 3, "deux": [1, 2, 3], "devient": 1, "diff\u00e9rent": [1, 2, 3], "dimens": 4, "dir": [2, 3], "disk": 5, "diskusage_explor": 5, "diskusage_report": 5, "disponibl": [2, 5], "distribu": 0, "divis": [0, 1], "doit": [2, 3, 4], "doivent": [1, 2], "don": [0, 1, 3, 5], "donc": [2, 3], "dont": 2, "doubl": 2, "d\u00e9faut": [2, 3], "d\u00e9fin": 4, "d\u00e9marr": 3, "d\u00e9pend": 2, "d\u00e9plac": 0, "d\u00e9sign": 2, "d\u00e9sir": 2, "d\u00e9s\u00e9rialis": 3, "e": 4, "effect": 4, "effectu": 4, "efficac": 4, "elif": 3, "else": 3, "encor": 2, "englob": 2, "ensembl": 2, "enti": [2, 3], "entier": 4, "entre": [0, 1, 2], "env": 2, "environ": 0, "envoi": [1, 2, 4], "erreur": 2, "erron": 3, "espac": [0, 5], "etat": 3, "etc": 3, "etiquet": 3, "exceeded": 5, "exchang": 3, "exclus": 4, "exist": 2, "explicit": 0, "ex\u00e9cut": [1, 2], "f": [2, 4], "fair": [2, 4], "fait": [1, 2, 4], "fass": 3, "faux": 4, "fa\u00e7on": 2, "fichi": [2, 3, 5], "fin": [2, 4], "finaliz": 2, "float": 2, "flott": 2, "foir": 5, "fonction": [2, 3, 4], "font": 4, "format": [0, 5], "fortran": 2, "from": 2, "gagn": 4, "gath": 4, "gestion": [2, 5], "get_rank": 2, "get_siz": 2, "github": 0, "gnu": 5, "gpu": 5, "graham": 5, "grand": [1, 2, 5], "grapp": 5, "gros": 3, "group": 2, "g\u00e9ner": 2, "g\u00e9n\u00e9ral": 2, "g\u00e9n\u00e9ralis": 3, "h": 2, "haut": 3, "hdf5": 5, "hierarchical": 5, "hor": 2, "hostnam": 2, "i": 4, "ident": [1, 2], "identifi": [2, 3], "ierr": [2, 4], "if": [2, 3], "impair": 3, "implicit": 2, "impliqu": 3, "import": [2, 3], "includ": 2, "inclus": [2, 4], "indiqu": 2, "inform": [3, 4], "inf\u00e9rieur": 4, "init": 2, "initial": 2, "inser": 2, "instanc": 1, "int": [2, 3, 4], "int_": 4, "interblocag": 0, "interfac": 2, "interm\u00e9diair": 0, "intervall": 4, "introduct": 0, "int\u00e9gral": 4, "irecv": 3, "isend": 3, "iter": 4, "jav": 2, "lanc": 3, "langag": 2, "li": 3, "lign": 5, "limit": [1, 3], "list": [2, 4], "load": 2, "local": [3, 5], "localis": 2, "logiqu": 4, "loi": 5, "long": [2, 5], "lor": [2, 3, 4], "lorsqu": 2, "lustr": 5, "machin": 0, "main": 2, "major": 2, "manqu": 2, "mathrm": 4, "mat\u00e9riel": 0, "maximal": 3, "maximum": 4, "messag": [2, 3], "minimum": 4, "mist": 5, "modern": 1, "modifi": 3, "modul": 2, "moin": 4, "moyen": [1, 2, 5], "mpi": [1, 3, 4], "mpi4py": 2, "mpi_abort": 2, "mpi_any_sourc": 3, "mpi_any_tag": 3, "mpi_band": 4, "mpi_bor": 4, "mpi_bxor": 4, "mpi_char": 2, "mpi_comm": [2, 3, 4], "mpi_comm_rank": 2, "mpi_comm_siz": 2, "mpi_comm_world": [2, 3, 4], "mpi_datatyp": [3, 4], "mpi_doubl": [2, 3], "mpi_finaliz": 2, "mpi_float": 2, "mpi_in": 2, "mpi_int": [2, 3, 4], "mpi_irecv": 3, "mpi_isend": 3, "mpi_land": 4, "mpi_long": 2, "mpi_lor": 4, "mpi_lxor": 4, "mpi_max": 4, "mpi_min": 4, "mpi_op": 4, "mpi_prod": 4, "mpi_recv": 0, "mpi_request": 3, "mpi_send": 0, "mpi_short": 2, "mpi_sourc": 3, "mpi_ssend": 3, "mpi_status": 3, "mpi_sum": 4, "mpi_tag": 3, "mpi_w": 3, "mpicc": 2, "mpicxx": 2, "mpiexec": 2, "mpif90": 2, "mpirun": 2, "multifacteur": 5, "multipl": [2, 4], "m\u00e9moir": [0, 3], "m\u00e9thod": 1, "m\u00eam": [1, 2, 3, 4], "narval": 5, "national": 5, "nearlin": 5, "niagar": 5, "niveau": 0, "node1": 2, "node2": 2, "nombr": [1, 3, 5], "nomm": 2, "non": [0, 4], "norm": 2, "not": [0, 2, 3], "notebook": 0, "novembr": 2, "np": 2, "numer": 5, "n\u00e9cessair": [1, 2, 3, 4], "n\u0153ud": 5, "o": 2, "object": [0, 3], "objet": [2, 3, 4], "octet": [2, 3], "officiel": 2, "op": 4, "open": 2, "openmp": 2, "optiqu": 2, "or": 1, "ordonnanceur": 2, "ordre": 3, "oubli": 4, "p": 2, "pair": 3, "parallel": [1, 2, 4, 5], "parall\u00e9lis": [0, 1], "part": [2, 3], "partag": 5, "particip": 3, "pass": 2, "passing": 2, "perl": 2, "permet": [2, 4], "permis": 3, "pet": 3, "peut": [2, 3, 4], "peuvent": [2, 3, 4], "pi": 4, "pickl": 3, "plac": 2, "plus": [1, 3, 4], "plusieur": [1, 4], "plut\u00f4t": 2, "point": [0, 2], "polit": 5, "portabl": 1, "portion": 4, "possibil": 1, "possibl": 2, "pourquoi": 1, "pouv": 2, "power9": 5, "prec": 3, "premi": [0, 3], "prennent": 2, "principal": [0, 2], "print": 2, "printf": 2, "problem": [1, 2], "proc": 3, "processeur": [1, 2], "processus": [0, 1, 3, 4], "prochain": 5, "produit": 4, "program": 2, "programm": [1, 3], "programmeur": 2, "project": 5, "propr": 3, "pr\u00e9cis": 2, "pr\u00e9matur": 2, "pr\u00e9sent": 0, "publi": 0, "puisqu": 4, "purg": 5, "py": 3, "python": [3, 4], "quand": 3, "quantit": 3, "quelqu": 4, "question": 5, "quot": 5, "qu\u00e9bec": 5, "r": 2, "racin": 4, "rang": 3, "rank": [2, 4], "recep": 4, "recept": 3, "recev": 3, "recevoir": [1, 3], "recherch": 5, "reconstitu": 2, "recv": 3, "reduc": 4, "rend": 3, "requ": 0, "requet": 3, "respect": 2, "respons": 2, "ressourc": 5, "rest": [2, 3], "retourn": 3, "return": 2, "re\u00e7oit": 3, "re\u00e7u": 3, "re\u00e7us": 3, "risqu": [3, 4], "rsync": 5, "r\u00e9cept": [2, 3], "r\u00e9ciproqu": 3, "r\u00e9cuper": 4, "r\u00e9pertoir": [2, 3], "r\u00e9solu": 4, "r\u00e9soudr": 2, "r\u00e9utilis": 3, "san": 3, "savoir": 2, "scalair": 2, "scatt": 4, "scratch": 5, "script": 2, "selon": [2, 4], "send": 3, "send_matrix": 3, "sequenc": 4, "serveur": 1, "seul": [3, 4], "short": 2, "si": 3, "simpl": 2, "sin": 4, "singl": 2, "situat": 0, "siz": [2, 4], "slurm": 2, "slurm_tmpd": 5, "softwar": 5, "somm": 4, "sourc": [2, 3], "souvent": 2, "spid": 2, "spmd": 2, "srun": 2, "status": 3, "stdio": 2, "stockag": 5, "strateg": 4, "structur": 0, "suiv": [1, 3], "sum": 4, "superordin": 1, "sup\u00e9rieur": 4, "system": 5, "s\u00e9rialis": [2, 3], "tag": 3, "taill": 4, "tampon": [3, 4], "tap": 5, "tar": 5, "techniqu": 3, "tel": 3, "term": 5, "termin": [2, 3], "total": [1, 2], "toujour": 3, "tous": [2, 3], "tout": [2, 3, 4], "trait": 2, "transfer": [1, 2], "transfert": [3, 5], "transm": 3, "transmet": 3, "transmiss": 2, "travail": [0, 1], "travaill": [2, 5], "travaillent": 1, "tri": 5, "trivial": 4, "trouvent": 2, "tutoriel": 5, "typ": [3, 4, 5], "type_envoi": 4, "type_recep": 4, "typiqu": 2, "t\u00e2ch": 1, "uniqu": 4, "usr": 2, "utilis": [0, 3, 4], "valeur": [2, 3], "valid": 2, "variabl": [1, 3], "vaudr": 4, "vecteur": 2, "ver": 3, "version": [2, 3], "vi": [0, 3], "viennent": 3, "virgul": 2, "viv": 1, "voic": 4, "void": [3, 4], "voir": [0, 1, 2], "votr": 3, "vrai": 4, "wait": 3, "webinair": 5, "wik": 5, "x": 4, "\u00c0": 2, "\u00e7a": 3, "\u00e9chang": 2, "\u00e9dit": 3, "\u00e9gal": 4, "\u00e9l\u00e9ment": [2, 3, 4], "\u00e9quivalent": 4, "\u00e9tabl": 1, "\u00e9tat": 5, "\u00e9tiquet": 3, "\u00e9vit": 0, "\u00eatre": [3, 4]}, "titles": ["Programmation parall\u00e8le avec MPI", "Introduction", "Premiers pas avec MPI", "Communications point-\u00e0-point", "Communications collectives", "R\u00e9f\u00e9rences"], "titleterms": {"1": [2, 3], "2": 3, "3": 3, "C": 2, "Des": 1, "Les": 2, "Qu": 2, "bas": 2, "bloqu": 3, "bonjour": 2, "calcul": 4, "cod": 2, "collect": 4, "commun": [2, 3, 4], "compil": 2, "demos": 2, "diffus": 4, "distribu": [1, 4], "divis": 4, "don": [2, 4], "d\u00e9plac": 4, "environ": 2, "envoi": 3, "espac": 4, "exempl": [2, 3, 4], "exercic": [2, 3], "explicit": 2, "ex\u00e9cu": 2, "global": 4, "integr": 4, "interblocag": 3, "introduct": 1, "lanc": 2, "machin": 1, "mati": 0, "matric": 3, "mpi": [0, 2], "mpi_allgath": 4, "mpi_allreduc": 4, "mpi_alltoall": 4, "mpi_bcast": 4, "mpi_gath": 4, "mpi_recv": 3, "mpi_reduc": 4, "mpi_scatt": 4, "mpi_send": 3, "m\u00e9moir": 1, "m\u00e9thod": 4, "nombr": 2, "non": 3, "oper": 4, "parallel": 0, "parall\u00e9lis": 2, "point": 3, "pos": 1, "premi": 2, "processus": 2, "programm": [0, 2], "propos": 0, "py": 2, "python": 2, "question": 1, "rang": 2, "rectangl": 4, "regroup": 4, "requ": 2, "r\u00e9duct": 4, "r\u00e9f\u00e9rent": [0, 5], "situat": 3, "solut": 3, "structur": 2, "tabl": 0, "tous": 4, "transposit": 4, "travail": 4, "typ": 2, "uniqu": 2, "utilis": 2, "vecteur": 3, "vi": 2, "\u00c0": 0, "\u00e9chang": 3, "\u00e9vit": 3}}) \ No newline at end of file