L’architecture multi-coeurs est présente dans tous les ordinateurs et téléphones portables actuellement disponibles dans le commerce. La question de leur programmation et de l’utilisation efficace de ces ressources se pose naturellement.
Parmi les différents paradigmes de programmation disponibles, il existe un standard : OpenMP (Open Multiprocessing), développé depuis 1997. Celui-ci permet de paralléliser de manière incrémentale des programmes écrits en C/C++/Fortran sur des architectures à mémoire partagée par insertion de directives #pragma dans le code source.
L'objectif de cette formation est de proposer une introduction théorique et pratique (avec des TP sur machine) à la parallélisation de programmes écrits en C ainsi qu’à l’analyse a priori et a posteriori de la performance du code modifié.
1. Architecture des cpu mono-coeur et multi-coeurs.
2. Intérêt du calcul parallèle. Exemples introductifs.
Description des méthodes de parallélisation disponibles actuellement.
3. Analyse de performances d'un code parallélisé: speedup, efficacité,
Loi d'Amhdal.
4. Méthode de parallélisation d’un code écrit en C avec OpenMP
(Quelle directive #pragma utiliser ?).
5. Un premier programme parallèle.
6. Parallélisation d'un calcul n'ayant pas de dépendances :
méthode + exemples + exercices.
7. Parallélisation d'un calcul ayant des dépendances :
méthode + exemples + exercices.
8. Parallélisme de tâches : méthode + exemples + exercices.
30-31/05 et 01/06/2023 J3.04
Mines Saint Etienne - 158, Cours Fauriel Centre SMS -
Cours magistral + travaux pratiques sur ordinateurs.
1 fois par an
18 h
1ère année. 2ème année. 3ème année.
Doc 1, Doc 2, Doc 3 MSE/ENISE/UJM
16 personnes maximum
30-05-2023 de 00:00 à 00:00 Lieu: Lieu 31-05-2023 de 00:00 à 00:00 Lieu:
Peak mem: 1223kB Exec time: 0.03761s Included files #: 65
/tmp/Pluf_L10n-1a8a2bc943034fac4dba0e8f98c69cdb.phps /tmp/Pluf_Template-f48344325d55ffdae67e249079dacc7b.phps /var/www/sdoc-2009/pluf/Pluf.php /var/www/sdoc-2009/pluf/Pluf/DB.php /var/www/sdoc-2009/pluf/Pluf/DB/Field.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Boolean.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Date.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Datetime.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Email.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Foreignkey.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Integer.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Manytomany.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Password.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Sequence.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Text.php /var/www/sdoc-2009/pluf/Pluf/DB/Field/Varchar.php /var/www/sdoc-2009/pluf/Pluf/DB/PostgreSQL.php /var/www/sdoc-2009/pluf/Pluf/Dispatcher.php /var/www/sdoc-2009/pluf/Pluf/HTTP.php /var/www/sdoc-2009/pluf/Pluf/HTTP/Request.php /var/www/sdoc-2009/pluf/Pluf/HTTP/Response.php /var/www/sdoc-2009/pluf/Pluf/HTTP/URL.php /var/www/sdoc-2009/pluf/Pluf/Message.php /var/www/sdoc-2009/pluf/Pluf/Middleware/Csrf.php /var/www/sdoc-2009/pluf/Pluf/Middleware/Debug.php /var/www/sdoc-2009/pluf/Pluf/Middleware/Session.php /var/www/sdoc-2009/pluf/Pluf/Middleware/Translation.php /var/www/sdoc-2009/pluf/Pluf/Model.php /var/www/sdoc-2009/pluf/Pluf/SQL.php /var/www/sdoc-2009/pluf/Pluf/Session.php /var/www/sdoc-2009/pluf/Pluf/Shortcuts.php /var/www/sdoc-2009/pluf/Pluf/Signal.php /var/www/sdoc-2009/pluf/Pluf/Template.php /var/www/sdoc-2009/pluf/Pluf/Template/Compiler.php /var/www/sdoc-2009/pluf/Pluf/Template/Context.php /var/www/sdoc-2009/pluf/Pluf/Template/Context/Request.php /var/www/sdoc-2009/pluf/Pluf/Template/ContextVars.php /var/www/sdoc-2009/pluf/Pluf/Template/SafeString.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/APerm.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/MediaUrl.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/Messages.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/RmediaUrl.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/Rurl.php /var/www/sdoc-2009/pluf/Pluf/Template/Tag/Url.php /var/www/sdoc-2009/pluf/Pluf/Translation.php /var/www/sdoc-2009/pluf/Pluf/User.php /var/www/sdoc-2009/pluf/Pluf/relations.php /var/www/sdoc-2009/src/Sdoc/Models/Config.php /var/www/sdoc-2009/src/Sdoc/Models/Cours.php /var/www/sdoc-2009/src/Sdoc/Models/Doctorant.php /var/www/sdoc-2009/src/Sdoc/Models/Evaluation.php /var/www/sdoc-2009/src/Sdoc/Models/Formation.php /var/www/sdoc-2009/src/Sdoc/Models/FormationDspt.php /var/www/sdoc-2009/src/Sdoc/Models/FormationPact.php /var/www/sdoc-2009/src/Sdoc/Models/Module.php /var/www/sdoc-2009/src/Sdoc/Models/Utilisateur.php /var/www/sdoc-2009/src/Sdoc/Models/Validation.php /var/www/sdoc-2009/src/Sdoc/Models/Voeu.php /var/www/sdoc-2009/src/Sdoc/Utils.php /var/www/sdoc-2009/src/Sdoc/Views/Public.php /var/www/sdoc-2009/src/Sdoc/conf/sdoc.php /var/www/sdoc-2009/src/Sdoc/conf/urls.php /var/www/sdoc-2009/src/Sdoc/relations.php /var/www/sdoc-2009/www/index.php
DB query #: 7
SELECT config."id" AS "id", config."cle" AS "cle", config."valeur" AS "valeur" FROM config WHERE (cle='session') SELECT config."id" AS "id", config."cle" AS "cle", config."valeur" AS "valeur" FROM config WHERE (cle='session') SELECT config."id" AS "id", config."cle" AS "cle", config."valeur" AS "valeur" FROM config WHERE (cle='session') SELECT * FROM formations WHERE id=3740 SELECT modules."id" AS "id", modules."ref" AS "ref", modules."formation" AS "formation", modules."num_in_formation" AS "num_in_formation", modules."date" AS "date", modules."complement_intitule" AS "complement_intitule", modules."ouvert" AS "ouvert", modules."appreciation_voeu" AS "appreciation_voeu", modules."propose" AS "propose", modules."auto_validation" AS "auto_validation" FROM modules WHERE ("formation"=3740) SELECT utilisateur."id" AS "id", utilisateur."user" AS "user", utilisateur."etablissement" AS "etablissement" FROM utilisateur LEFT JOIN sdoc_models_formation_sdoc_models_utilisateur_assoc ON "sdoc_models_utilisateur_id" = utilisateur.id WHERE "sdoc_models_formation_id"=3740 SELECT * FROM users WHERE id=2862