Ce cours enseigne aux apprenants (professionnels de l'industrie et étudiants) les concepts fondamentaux de la programmation parallèle dans le contexte de Java 8. La programmation parallèle permet aux développeurs d'utiliser des ordinateurs multicœurs pour accélérer l'exécution de leurs applications en utilisant plusieurs processeurs en même temps. A la fin de ce cours, vous apprendrez à utiliser les frameworks Java parallèles populaires (tels que ForkJoin, Stream, et Phaser) pour écrire des programmes parallèles pour une large gamme de plateformes multicœurs, y compris les serveurs, les ordinateurs de bureau, ou les appareils mobiles, tout en apprenant également leurs fondements théoriques, y compris les graphes de calcul, le parallélisme idéal, la vitesse parallèle, la loi d'Amdahl, les courses de données, et le déterminisme. Pourquoi suivre ce cours ?
Programmation parallèle en Java
Ce cours fait partie de Spécialisation Programmation parallèle, concurrente et distribuée en Java
Instructeur : Vivek Sarkar
48 605 déjà inscrits
Inclus avec
(1,218 avis)
Compétences que vous acquerrez
- Catégorie : Flux de données
- Catégorie : Calcul parallèle
- Catégorie : Concurrence Java
- Catégorie : Parallélisme des données
Détails à connaître
Ajouter à votre profil LinkedIn
4 devoirs
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées
Élaborez votre expertise du sujet
- Apprenez de nouveaux concepts auprès d'experts du secteur
- Acquérez une compréhension de base d'un sujet ou d'un outil
- Développez des compétences professionnelles avec des projets pratiques
- Obtenez un certificat professionnel partageable
Obtenez un certificat professionnel
Ajoutez cette qualification à votre profil LinkedIn ou à votre CV
Partagez-le sur les réseaux sociaux et dans votre évaluation de performance
Il y a 7 modules dans ce cours
Bienvenue à la programmation parallèle en Java ! Ce cours est conçu comme une série de trois parties et couvre un thème ou un ensemble de connaissances à travers des conférences vidéo, des démonstrations et des projets de codage.
Inclus
1 vidéo5 lectures1 devoir de programmation1 sujet de discussion
Dans ce module, nous apprendrons les principes fondamentaux du parallélisme des tâches. Les tâches sont l'unité de base de la programmation parallèle. Un nombre croissant de langages de programmation (y compris Java et C++) abandonnent les anciennes approches basées sur les threads au profit d'approches plus modernes basées sur les tâches pour la programmation parallèle. Nous apprendrons ce qu'est la création et la fin d'une tâche, ainsi que le modèle théorique du "graphe de calcul" qui permet de comprendre les diverses propriétés des programmes parallèles à base de tâches. Ces propriétés comprennent le travail, la portée, le parallélisme idéal, la vitesse parallèle et la loi d'Amdahl. Nous apprendrons également les API Java populaires pour le parallélisme des tâches, notamment le cadre Fork/Join.
Inclus
7 vidéos6 lectures1 devoir1 devoir de programmation
Bienvenue au module 2 ! Dans ce module, nous allons découvrir les approches du parallélisme qui ont été inspirées par la programmation fonctionnelle. Les défenseurs de la programmation fonctionnelle parallèle soutiennent depuis des décennies que le parallélisme fonctionnel peut éliminer de nombreux bogues difficiles à détecter qui peuvent survenir avec le parallélisme impératif. Nous en apprendrons plus sur les futures, la mémoïsation et les streams, ainsi que sur les courses de données, une classe notoire de bogues qui peuvent être évités avec le parallélisme fonctionnel. Nous apprendrons également les API Java pour le parallélisme fonctionnel, y compris le cadre Fork/Join et les API Stream.
Inclus
7 vidéos6 lectures1 devoir1 devoir de programmation
Rejoignez le professeur Vivek Sarkar qui s'entretient avec Jim Ward, directeur général de Two Sigma, et Margaret Kelley et Jake Kornblau, ingénieurs en logiciel, dans leurs bureaux du centre-ville de Houston, au Texas, sur l'importance de la programmation parallèle.
Inclus
2 vidéos1 lecture
Bienvenue au module 3, et félicitations pour avoir atteint le milieu de ce cours ! Il est bien connu que de nombreuses applications passent la majorité de leur temps d'exécution dans des boucles, il y a donc une forte motivation pour apprendre comment les boucles peuvent être accélérées par l'utilisation du parallélisme, qui est le point central de ce module. Nous commencerons par apprendre comment les boucles parallèles comptées peuvent être exprimées de manière pratique à l'aide des API forall et stream en Java, et comment ces API peuvent être utilisées pour paralléliser un programme simple de multiplication de matrices. Nous découvrirons également le concept de barrière pour les boucles parallèles et illustrerons son utilisation avec un exemple de programme simple de calcul de moyenne itérative. Enfin, nous apprendrons l'importance de grouper/chunker les itérations parallèles pour réduire l'overhead.
Inclus
7 vidéos6 lectures1 devoir1 devoir de programmation
Bienvenue dans le dernier module du cours ! Dans ce module, nous allons conclure notre introduction à la programmation parallèle en apprenant comment les principes de flux de données peuvent être utilisés pour augmenter le niveau de parallélisme dans un programme. Nous apprendrons comment l'API Phaser de Java peut être utilisée pour implémenter des barrières "floues", ainsi que des synchronisations "point à point" en tant qu'optimisation des barrières régulières en revisitant l'exemple de la moyenne itérative. Enfin, nous apprendrons également comment le parallélisme de pipeline et les modèles de flux de données peuvent être exprimés à l'aide des API Java.
Inclus
7 vidéos7 lectures1 devoir1 devoir de programmation
Les deux prochaines vidéos montreront l'importance de l'apprentissage de la programmation simultanée et de la programmation distribuée en Java. Le professeur Vivek Sarkar s'entretiendra avec des professionnels de l'industrie à Two Sigma sur la façon dont les thèmes de nos deux autres cours sont utilisés sur le terrain.
Inclus
2 vidéos1 lecture
Instructeur
Offert par
Recommandé si vous êtes intéressé(e) par Développement de logiciels
University of California San Diego
École Polytechnique Fédérale de Lausanne
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Avis des étudiants
1 218 avis
- 5 stars
69,12 %
- 4 stars
22,74 %
- 3 stars
6,56 %
- 2 stars
1,14 %
- 1 star
0,41 %
Affichage de 3 sur 1218
Révisé le 18 juin 2018
Excellent Course.I always wanted a good course on java concurrency and parallel programming.And finish->async, isolated, forAsync constructs are awesome.I have learnt much from this course.
Révisé le 26 déc. 2017
Very relevant concepts, explained beautifully by a very experienced professor. The assignments were good, but they could involve more programming for more practice!
Révisé le 27 janv. 2018
Instructor is awesome. However instead of sharing ready libraries for parallelism (like forall loop) in section 3, native codes should be used for forall loops etc.
Ouvrez de nouvelles portes avec Coursera Plus
Accès illimité à 10,000+ cours de niveau international, projets pratiques et programmes de certification prêts à l'emploi - tous inclus dans votre abonnement.
Faites progresser votre carrière avec un diplôme en ligne
Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne
Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires
Améliorez les compétences de vos employés pour exceller dans l’économie numérique
Foire Aux Questions
L'accès aux cours et aux devoirs dépend de votre type d'inscription. Si vous suivez un cours en mode audit, vous pourrez consulter gratuitement la plupart des supports de cours. Pour accéder aux devoirs notés et obtenir un certificat, vous devrez acheter l'expérience de certificat, pendant ou après votre audit. Si vous ne voyez pas l'option d'audit :
Il se peut que le cours ne propose pas d'option d'audit. Vous pouvez essayer un essai gratuit ou demander une aide financière.
Le cours peut proposer l'option "Cours complet, pas de certificat" à la place. Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.
Lorsque vous vous inscrivez au cours, vous avez accès à tous les cours de la Specializations, et vous obtenez un certificat lorsque vous terminez le travail. Votre certificat électronique sera ajouté à votre page de réalisations - de là, vous pouvez imprimer votre certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez uniquement lire et visualiser le contenu du cours, vous pouvez auditer le cours gratuitement.
Si vous vous êtes abonné, vous bénéficiez d'une période d'essai gratuite de 7 jours pendant laquelle vous pouvez annuler votre abonnement sans pénalité. Après cette période, nous ne remboursons pas, mais vous pouvez résilier votre abonnement à tout moment. Consultez notre politique de remboursement complète.