Avec tous les smartphones et ordinateurs dotés de plusieurs processeurs, l'utilisation d'idées fonctionnelles pour faciliter la programmation parallèle est de plus en plus répandue. Dans ce cours, vous apprendrez les principes fondamentaux de la programmation parallèle, du parallélisme des tâches au parallélisme des données. En particulier, vous verrez comment de nombreuses idées familières de la programmation fonctionnelle s'adaptent parfaitement au paradigme du parallélisme de données. Nous commencerons par les rouages de la parallélisation efficace des opérations de collections familières, et nous construirons jusqu'à parallel collections, une bibliothèque de collections de données parallèles prête à la production, disponible dans la bibliothèque standard de Scala. Tout au long du cours, nous appliquerons ces concepts à travers plusieurs exemples pratiques qui analysent des données du monde réel, tels que des algorithmes populaires comme le clustering k-means. Objectifs pédagogiques. A la fin de ce cours, vous serez capable de : - raisonner sur les programmes parallèles de tâches et de données, - exprimer des algorithmes communs dans un style fonctionnel et les résoudre en parallèle, - microbenchmarker de manière compétente le code parallèle, - écrire des programmes qui utilisent efficacement les collections parallèles pour atteindre la performance : Vous devez avoir au moins un an d'expérience en programmation. La maîtrise de Java ou de C# est idéale, mais une expérience dans d'autres langages tels que C/C++, Python, Javascript ou Ruby est également suffisante. Vous devez avoir une certaine familiarité avec l'utilisation de la ligne de commande. Ce cours est destiné à être suivi après Functional Program Design in Scala : https://www.coursera.org/learn/progfun2.
Compétences que vous acquerrez
- Catégorie : Programmation Informatique
- Catégorie : Parallèle unifié C
- Catégorie : Algorithmes
- Catégorie : Calcul parallèle
Détails à connaître
Ajouter à votre profil LinkedIn
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées
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 4 modules dans ce cours
Nous motivons la programmation parallèle et introduisons les constructions de base pour construire des programmes parallèles sur JVM et Scala. Des exemples tels que la norme des tableaux et les calculs de Monte Carlo illustrent ces concepts. Nous montrons comment estimer le travail et la profondeur des programmes parallèles ainsi que comment comparer les implémentations.
Inclus
9 vidéos4 lectures3 devoirs de programmation
Nous poursuivons avec des exemples d'algorithmes parallèles en présentant un tri parallèle par fusion. Nous expliquons ensuite comment des opérations telles que map, reduce et scan peuvent être calculées en parallèle. Nous présentons l'associativité comme la condition clé permettant la mise en œuvre parallèle de la réduction et du balayage.
Inclus
6 vidéos2 devoirs de programmation
Nous montrons comment les opérations de données parallèles permettent le développement d'un code élégant de données parallèles en Scala. Nous donnons un aperçu de la hiérarchie des collections parallèles, y compris les caractéristiques des séparateurs et des combinateurs qui complètent les itérateurs et les constructeurs du cas séquentiel.
Inclus
5 vidéos2 devoirs de programmation
Nous donnons un aperçu des structures de données internes pour le calcul parallèle, ce qui nous aide à comprendre ce qui se passe sous le capot des collections parallèles.
Inclus
5 vidéos2 devoirs de programmation
Offert par
Recommandé si vous êtes intéressé(e) par Développement de logiciels
University of California San Diego
University of Colorado Boulder
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
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 achetez un certificat, vous avez accès à tous les supports de cours, y compris les devoirs notés. Une fois le cours terminé, votre certificat électronique sera ajouté à votre page de réalisations. Vous pourrez alors l'imprimer ou l'ajouter à votre profil LinkedIn. Si vous souhaitez uniquement lire et visualiser le contenu du cours, vous pouvez l'auditer gratuitement.
Vous pouvez prétendre à un remboursement intégral jusqu'à deux semaines après la date de votre paiement ou (pour les cours qui viennent d'être lancés) jusqu'à deux semaines après le début de la première session du cours, la date la plus tardive étant retenue. Vous ne pouvez pas obtenir de remboursement une fois que vous avez obtenu un certificat de cours, même si vous terminez le cours pendant la période de remboursement de deux semaines. Consultez notre politique de remboursement complète.