Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop
Bonjour a vous,
J'avais mentionner plusieurs fois que je donnais un cours de calcul haute performance ce semestre. J'ai pense que certains pourrait etre interesse par les slides de mon cours. Vous pouvez les trouver a cette addresse:
http://webpages.uncc.edu/~esaule/ITCS6010_8010/
J'ajouterai les slides au fur et a mesure que je les fais/presentes.
Tous les commentaires sont les bienvenu.
Erik
C'est pour quel genre de cursus, quel niveau ?
En tout cas ça a l'air vachement terre-à-terre, je sais pas si je suis mal tombé en regardant un endroit au hasard ou quoi, mais ça a l'air plutôt indigeste, y'avait des pages et des pages de code ![]()
C'est cible pour des doctorants, mais il y a des masters qui prennent ce cours la aussi. Le message central du cours est "les concepts abstraits, c'est bien. Mesurer les performances dans le monde reel, c'est mieux."
Quelques slides sont certainement imbitable sans le voice over (par exemple, le details des instructions vectoriel ou les differentes techniques de synchronizations).
Hey, sympa! Merci beaucoup. ![]()
Intéressant! Merci
Instructif ! En master j'ai très très peu abordé ces sujets ![]()
dark_dow
Etrange, si on regarde le plan du cours, y'a pas mal de notions niveau L3/M1, genre le modèle PRAM & pointer-jumping c'est classique, les deadlock avec testAndSet, le MPI...
Par contre en master on voit plutôt les concepts abstraits que le "monde réel" comme dit godrik plus haut
c'est bien pour ça que j'aurais du faire un master dans une bonne fac
On a juste vu le MPI et les archi CPU...
Il n'y a aucune formation qui enseigne tout ce qu'il y a à savoir sur l'informatique, de toute façon en 5 ou 8 ans c'est impossible de tout voir, c'est pour ça que c'est utile de savoir apprendre tout seul.
Merci pour le partage !
En fati MrPocolo a raison. Et il a encore plus raison aux Etats Unis ou les universite ont integre ce principe et l'erige en pilier de l'education. Il y a tres peu de sujet obligatoires et beaucoup de sujet a la carte. Ca permet d'etre tres flexible et de creer des profils tres differents en fonction du besoin ou desir de competence.
C'est pour ca que mon cours peut sembler un peu etrange. En plus, j'ai voulu ce cours comme une coupe de tranche (? cross-section) de ce qui est important en calcul haute performance. Du fait, il y a beaucoup de sujet qui sont (devrait etre) traite auparavant. Mais le traitemet du sujet est tres precis. Oui, je parle de processeur, mais je parles juste de la partie qui est interessante pour mon probleme. Je vais reparler du modele RISC d'architecture. Mais c'est juste en introduction au modele CISC/RISC a execution parallele et desordone des instructions. Je vais aussi parle de vectorization qui n'est typiquement pas aborde.
De la meme facon, quand je parle de memoire et de protocole de coherence de cache, ca me sert a introduire les ecritures atomiques par mot, les problemes d'invalidation de cache (et donc de false sharing), les instructions atomiques pour locker le contenu memoire et le buffer d'ecriture qui peut staller le pipeline du processeur.
CavalierAnal, je pense que c'est un vrai probleme que les gens voit le calcul haute performance comme une discipline abstraite. Et c'est pour ca que les gens font n'importe quoi: Ils ne mesurent pas et donc ils posent les mauvaises questions. Les gens regardent des metriques relatives comme speedup. Alors qu'ils devraient regarder des metriques absolues comme performance. Et une fois que tu regardes les meriques absolues, tu te rends compte que les problemes ne sont pas ou tu pensais qu'ils etaient.
Merci d'avoir posté ça
Un peu trop compliqué pour moi ![]()
Belle initiative godrik, plus de prof devrait partager leurs cours surtout s'il sont si intéressant et instructif !!!
" plus de prof devrait partager leurs cours "
Oh mais il y en a énormément qui le font, c'est juste qu'ils ne les poste pas sur des forums, mais souvent tu peux les trouver soit sur la page perso des profs soit sur la page dédiée au module en question (il se peut que l'accès soit réservé cela-dit) soit sur la page du bouquin qui est utilisé pour le module. Au pire y'a toujours les trucs comme le MIT OCW ou les MOOC comme edX ou Coursera.
Et de nombreux professeurs ne le font pas car ceux-ci les commercialisent à des instituts de formation ou assimilé. La vente de cours est un marché aussi.
Merci godrik, t'entendre parler de ce que tu faisais m'intriguait, et voilà enfin une démonstration de ce que tu enseigne.
Je me suis souvent posé la question des hautes performances.
Mais bon, je vais sûrement rien comprendre... ![]()
Mais si ça peut me permettre de faire un peu d'optimisation (je sais même pas si ton cours est fait pour
)...
C'est un peu pour ca que j'ai poste aussi. Ca permet de donner une idee concrete de ce que je fais au gens.
l'optimization c'est souvent un probleme complique. Ca passe en premier par l'utilisation d'algorithme efficace. Et ca je n'en parle pas dans ce cours. Ici je parles de details plus architecturaux ou lie a des probleme de parallelisme.
J'ai bien aimé tes slides (vive beamer), je regrette juste de ne pas avoir le support "audio" qui va avec, on sent bien qu'ils ne sont qu'un support, justement.
Par contre, d'un point de vue communication, il me semble que ça touche juste : les key concepts sont présents et parcourir les slides à la va-vite devrait permettre à une personne ayant potassé le cours ou cherchant un axe pour une veille techno d'aller rapidement au but.En amélioration, quitte à augmenter le nombre de slides, je dédensifierais certains d'entre eux, saturés d'informations.
Cependant, je constate avec tristesse que les problématiques restent les mêmes qu'il y a 10 ans et qu'à l'instar de l'IA, les miracles n'existent toujours pas :D
Les problemes sont en effet rester les memes qu'il y a dix ans. A cela pres que l'on a plus de forme canonique pour des modeles d'executions classique. Genre les execution a appel de fonction asynchrone sont devenue completement mainstream depuis Intel Cilk Plus. Et les execution pipeline sont devenue streamline depuis Intel TBB.
Mais en performance le plus grand probleme est entre la chaise et le clavier avec des gens qui disent "on s'en fout le compilo est magique" et qui ne mesure jamais les vrai temps de calcul.
Cela etant dit, l'IA n'est pas beaucoup plus magique qu'il y a 10 ans
La masse de donnee disponible permet un apprentissage plus general des models. Mais les mdoeles sont toujours profondement manuel. Il y a de la classification sans apprentissage, mais ca n'apprends toujours que le signal principal que tu lui fous en entree. C'est toujours le data scientist qui plonge les donnees dans l'espace de representation qui va bien.
Oui, c'est bien ce que je voulais dire : l'IA non plus n'est toujours pas magiques :D
En tous cas, tes slides sont une bonne base pour quelqu'un qui voudrait faire de la veille
PS : Le compilo magique et le fait de lui déléguer son cerveau, c'est un réel problème. D'autant plus accentué par le fait que ça peut passer inaperçu pendant le développement et n'apparaître qu'en production, surtout si comme dans beaucoup de SSII/projets, les tests de charge sont perçus comme un coût inutile (Comme la sécurité, hélas).