Aller au contenu

Bibliographie

Tous les livres, articles, cours et outils cités dans ce document, classés par thème.

Conventions :

  • ⭐ priorité 1 — à lire, dans l'ordre du thème
  • ◆ priorité 2 — complément utile
  • ○ priorité 3 — pour approfondir
  • 🆓 disponible gratuitement

Sur les éditions et les années

Les années et numéros d'édition sont donnés tels que connus. Des éditions plus récentes peuvent exister, en particulier pour les ouvrages d'architecture et de programmation parallèle. Vérifiez avant d'acheter.


Calcul haute performance, généralités

  • ⭐ Georg Hager, Gerhard Wellein, Introduction to High Performance Computing for Scientists and Engineers, CRC Press. Le livre d'entrée du domaine. Architecture, optimisation séquentielle, modèles de performance, OpenMP, MPI, programmation hybride, avec une rigueur de mesure exemplaire.
  • ⭐ 🆓 Victor Eijkhout, The Art of HPC, quatre volumes, sur theartofhpc.com : Introduction to HPC, Parallel Programming for Science and Engineering, Introduction to Scientific Programming, Tutorials. Gratuits, avec exercices.
  • ◆ Thomas Rauber, Gudula Rünger, Parallel Programming for Multicore and Cluster Systems, Springer. Plus formel, bon sur les modèles de coût.
  • ◆ Peter Pacheco, Matthew Malensek, An Introduction to Parallel Programming, 2ᵉ éd., Morgan Kaufmann, 2021. Pédagogique, couvre MPI, OpenMP et CUDA.
  • ◆ Michael McCool, Arch Robison, James Reinders, Structured Parallel Programming: Patterns for Efficient Computation, Morgan Kaufmann, 2012. Les motifs de parallélisme.
  • ○ 🆓 Cours CS267, Applications of Parallel Computers, UC Berkeley, Jim Demmel. Notes, vidéos et devoirs en ligne. Le cours de référence mondiale.
  • ○ 🆓 MIT 6.172, Performance Engineering of Software Systems, OpenCourseWare, Charles Leiserson et Julian Shun. Le meilleur cours d'optimisation existant.
  • ○ 🆓 ATPESC, Argonne Training Program on Extreme-Scale Computing : deux semaines de cours enregistrés par les auteurs de MPI, PETSc et des outils de performance.
  • ○ 🆓 Le blog de Georg Hager, blogs.fau.de/hager. Études de cas d'optimisation réelles, mesurées.

Modèles de performance

  • ⭐ Samuel Williams, Andrew Waterman, David Patterson, « Roofline: An Insightful Visual Performance Model for Multicore Architectures », Communications of the ACM, 2009. L'article fondateur du modèle roofline.
  • ⭐ Torsten Hoefler, Roberto Belli, « Scientific Benchmarking of Parallel Computing Systems », SC 2015. Douze règles de mesure. À lire absolument.
  • ◆ Gene Amdahl, « Validity of the single processor approach to achieving large scale computing capabilities », 1967, et John Gustafson, « Reevaluating Amdahl's Law », CACM, 1988. Deux articles de deux pages.
  • ◆ Les articles sur le modèle ECM (Execution-Cache-Memory) du groupe de Hager et Wellein, Erlangen. Plus précis que le roofline.
  • ○ Leslie Valiant, « A Bridging Model for Parallel Computation », CACM, 1990. Le modèle BSP.
  • ○ David Culler et al., « LogP: Towards a Realistic Model of Parallel Computation », PPoPP 1993.
  • ○ Grace Ballard, James Demmel, Olga Holtz, Oded Schwartz, « Minimizing Communication in Numerical Linear Algebra », 2011. Les bornes de communication.
  • ○ Fabrizio Petrini, Darren Kerbyson, Scott Pakin, « The Case of the Missing Supercomputer Performance », SC 2003. Une enquête sur le bruit système, très plaisante à lire.
  • ○ Torsten Hoefler, Timo Schneider, Andrew Lumsdaine, « Characterizing the Influence of System Noise on Large-Scale Applications by Simulation », SC 2010.

Architecture et optimisation mono-nœud

  • ⭐ John Hennessy, David Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann. Chapitres 2 (hiérarchie mémoire) et 3 (parallélisme d'instructions) en priorité.
  • ⭐ 🆓 Ulrich Drepper, What Every Programmer Should Know About Memory, 2007, publié à l'origine sur LWN.net. Le meilleur texte sur caches, TLB, pagination et NUMA du point de vue du programmeur.
  • ⭐ Randal Bryant, David O'Hallaron, Computer Systems: A Programmer's Perspective, 3ᵉ éd. Chapitres 3, 5 et 6.
  • ◆ 🆓 Agner Fog, manuels d'optimisation, agner.org/optimize. Quatre volumes, dont les tables d'instructions donnant latence et débit par microarchitecture. La référence des professionnels.
  • ◆ Intel, Intel 64 and IA-32 Architectures Optimization Reference Manual, et l'Intel Intrinsics Guide en ligne.
  • ◆ Arm, Neoverse Software Optimization Guide et documentation SVE.
  • ◆ 🆓 Compiler Explorer, godbolt.org. L'outil le plus efficace jamais construit pour comprendre ce que fait un compilateur.
  • ○ Kazushige Goto, Robert van de Geijn, « Anatomy of High-Performance Matrix Multiplication », ACM TOMS, 2008. Comment on atteint le pic.
  • ○ 🆓 La série How to Optimize GEMM, tutoriel pas à pas fondé sur ce travail.
  • ○ Field van Zee, Robert van de Geijn, les articles du projet BLIS, 2015.
  • ○ David Harris, Sarah Harris, Digital Design and Computer Architecture, ou le cours Nand2Tetris, pour la conception de processeur.

MPI et programmation distribuée

  • ⭐ William Gropp, Ewing Lusk, Anthony Skjellum, Using MPI: Portable Parallel Programming with the Message-Passing Interface, 3ᵉ éd., MIT Press, 2014.
  • ⭐ William Gropp, Torsten Hoefler, Rajeev Thakur, Ewing Lusk, Using Advanced MPI: Modern Features of the Message-Passing Interface, MIT Press, 2014. RMA, MPI-IO, topologies, types dérivés.
  • ⭐ 🆓 Les supports de cours MPI de l'IDRIS, idris.fr/formations/mpi/. En français. La meilleure documentation francophone.
  • ◆ 🆓 Le standard MPI, mpi-forum.org. Contre-intuitivement lisible.
  • ◆ 🆓 Les OSU Micro-Benchmarks, mvapich.cse.ohio-state.edu. La suite de référence pour mesurer latence et bande passante.
  • ◆ 🆓 MUST, vérificateur d'exécution MPI, Aix-la-Chapelle et Dresde.
  • ○ John Kim, William Dally, Steve Scott, Dennis Abts, « Technology-Driven, Highly-Scalable Dragonfly Topology », ISCA 2008.
  • ○ 🆓 UCX, openucx.org. La couche de communication sous les implémentations MPI modernes.
  • ○ GASPI/GPI et OpenSHMEM, pour les modèles PGAS.

OpenMP, threads et concurrence

  • ⭐ Timothy Mattson, Yun He, Alice Koniges, The OpenMP Common Core: Making OpenMP Simple Again, MIT Press, 2019.
  • ⭐ Ruud van der Pas, Eric Stotzer, Christian Terboven, Using OpenMP — The Next Step: Affinity, Accelerators, Tasking, and SIMD, MIT Press, 2017.
  • ◆ Barbara Chapman, Gabriele Jost, Ruud van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007.
  • ◆ 🆓 Les cartes de référence OpenMP, openmp.org. Quatre pages.
  • ◆ 🆓 Les tutoriels du LLNL sur POSIX Threads et OpenMP, hpc-tutorials.llnl.gov. Cités par le syllabus FISE de PABT24.
  • ◆ 🆓 Les supports OpenMP de l'IDRIS, en français.
  • ◆ Maurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming, 2ᵉ éd. La théorie de la synchronisation correcte.
  • ◆ 🆓 Paul McKenney, Is Parallel Programming Hard, And, If So, What Can You Do About It?, sur kernel.org. Modèles mémoire et barrières.
  • ○ 🆓 Le blog de Jeff Preshing, preshing.com. Modèles mémoire et atomique.
  • ○ Robert Blumofe, Charles Leiserson, « Scheduling Multithreaded Computations by Work Stealing », JACM, 1999.
  • ○ 🆓 StarPU, starpu.gitlabpages.inria.fr. Ordonnancement de tâches hétérogène, projet Inria.
  • ○ 🆓 Le TLA+ Video Course de Leslie Lamport, pour le model checking.

GPU et calcul hétérogène

  • ⭐ Wen-mei Hwu, David Kirk, Izzat El Hajj, Programming Massively Parallel Processors: A Hands-on Approach, 4ᵉ éd., Morgan Kaufmann, 2022.
  • ⭐ 🆓 NVIDIA, CUDA C++ Programming Guide et CUDA C++ Best Practices Guide.
  • ⭐ 🆓 Développement GPU : de zéro à expert, dans cette bibliothèque : lien.
  • ◆ 🆓 Le blog technique de NVIDIA, developer.nvidia.com/blog. Séries sur les transferts, le recouvrement, les streams.
  • ◆ 🆓 Mark Harris, Optimizing Parallel Reduction in CUDA. Sept versions successives d'une réduction, chacune mesurée. Le meilleur tutoriel d'optimisation GPU.
  • ◆ 🆓 Les Kokkos Lectures, enregistrées et publiées. Sur la portabilité de performance.
  • ◆ 🆓 BabelStream, github.com/UoB-HPC/BabelStream. Bande passante portable CPU, CUDA, HIP, SYCL, OpenMP.
  • ◆ 🆓 La documentation HIP d'AMD, et l'outil hipify.
  • ◆ 🆓 Les spécifications SYCL de Khronos, et oneAPI DPC++ ou AdaptiveCpp.
  • ○ Paulius Micikevicius et al., « Mixed Precision Training », ICLR 2018.
  • ○ 🆓 NCCL, DeepSpeed, Megatron-LM : documentations et articles.
  • ○ 🆓 Les proxy apps du projet Exascale : LULESH, miniFE, XSBench, SW4lite.

Compilation

  • ⭐ Ken Kennedy, Randy Allen, Optimizing Compilers for Modern Architectures: A Dependence-Based Approach, Morgan Kaufmann, 2001. Le livre sur les transformations de boucles et la vectorisation.
  • ⭐ 🆓 La documentation LLVM, llvm.org/docs : Language Reference, Writing an LLVM Pass, documentation du Loop Vectorizer.
  • ◆ Keith Cooper, Linda Torczon, Engineering a Compiler, 3ᵉ éd., 2022.
  • ◆ 🆓 Les Internals de GCC, gcc.gnu.org/onlinedocs/gccint/, et la documentation de GIMPLE et RTL.
  • ◆ Steven Muchnick, Advanced Compiler Design and Implementation, 1997. Le catalogue des optimisations.
  • ○ Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey Ullman, Compilers: Principles, Techniques, and Tools, 2ᵉ éd., 2006. Le dragon book.
  • ○ 🆓 llvm-mca, OSACA, uiCA : analyseurs statiques de blocs d'assembleur.
  • ○ 🆓 MAQAO, maqao.org, Université de Versailles Saint-Quentin. Analyse de boucles sur binaire, avec diagnostic des limitations.

Systèmes d'exploitation

  • ⭐ Michael Kerrisk, The Linux Programming Interface, No Starch Press, 2010. La bible des appels système Linux.
  • ⭐ 🆓 Remzi et Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, pages.cs.wisc.edu/~remzi/OSTEP/. Le meilleur manuel gratuit de systèmes.
  • ◆ Robert Love, Linux Kernel Development, 3ᵉ éd., 2010.
  • ◆ Daniel Bovet, Marco Cesati, Understanding the Linux Kernel, 3ᵉ éd., 2005.
  • ◆ 🆓 La documentation du noyau Linux, docs.kernel.org. Pages sur les huge pages, numa_balancing, les classes d'ordonnancement, cgroups.
  • ○ Les publications des projets McKernel (RIKEN, Université de Tokyo) et mOS (Intel), sur les noyaux allégés pour l'exascale.
  • ○ Daan Leijen et al., l'article de mimalloc, Microsoft Research, 2019. Le plus lisible sur les allocateurs.

Stockage et entrées-sorties

  • ⭐ 🆓 La documentation Lustre, doc.lustre.org, Lustre Operations Manual.
  • ⭐ 🆓 Les guides d'E-S des grands centres : NERSC (docs.nersc.gov), OLCF (docs.olcf.ornl.gov), IDRIS (idris.fr, en français).
  • ⭐ 🆓 Le tutoriel Parallel I/O in Practice, donné à la conférence SC par Argonne et le NCSA. Diapositives publiques.
  • ◆ 🆓 IO500, io500.org : règlement, listes, configurations des soumissions.
  • ◆ 🆓 IOR et mdtest, github.com/hpc/ior.
  • ◆ 🆓 Darshan, wordpress.cels.anl.gov/darshan/. Profilage d'E-S sans recompilation.
  • ◆ 🆓 La documentation du HDF Group, y compris sur le Parallel HDF5.
  • ○ 🆓 ADIOS2, adios2.readthedocs.io. Conçu pour l'exascale.
  • ○ 🆓 Zarr, zarr.dev, et Apache Arrow / Parquet.
  • ○ Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, « The Google File System », SOSP 2003.
  • ○ John Young, 1974, et John Daly, 2006 : l'intervalle optimal entre points de reprise.
  • ○ 🆓 SCR, Scalable Checkpoint Restart, Lawrence Livermore.

Algèbre linéaire et solveurs

  • ⭐ Lloyd Trefethen, David Bau, Numerical Linear Algebra, SIAM, 1997. Quarante courtes leçons. Le meilleur point d'entrée.
  • ⭐ 🆓 Yousef Saad, Iterative Methods for Sparse Linear Systems, 2ᵉ éd., SIAM,
  • PDF gratuit sur le site de l'auteur.
  • ⭐ 🆓 La documentation et les tutoriels de PETSc, petsc.org. Exemplaires.
  • ◆ Gene Golub, Charles Van Loan, Matrix Computations, 4ᵉ éd., Johns Hopkins,
  • La référence encyclopédique.
  • ◆ James Demmel, Applied Numerical Linear Algebra, SIAM, 1997.
  • ◆ 🆓 Richard Barrett et al., Templates for the Solution of Linear Systems, SIAM. Les algorithmes de Krylov en pseudo-code.
  • ◆ William Briggs, Van Emden Henson, Steve McCormick, A Multigrid Tutorial, 2ᵉ éd., SIAM.
  • ◆ 🆓 La collection SuiteSparse Matrix Collection : des milliers de matrices creuses réelles, standard pour les comparaisons.
  • ○ 🆓 HPL, netlib.org/benchmark/hpl/, et HPCG, hpcg-benchmark.org, avec l'article de Dongarra, Heroux et Luszczek sur la motivation de HPCG.
  • ○ 🆓 MUMPS, mumps-solver.org, et SCOTCH : deux projets français de référence.
  • ○ 🆓 hypre, Trilinos, SLATE, ScaLAPACK, FFTW.

Apprentissage automatique

  • ⭐ 🆓 Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press, 2016, sur deeplearningbook.org.
  • ⭐ Steven Brunton, J. Nathan Kutz, Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control, Cambridge University Press. Le livre de MEAA24, l'UE d'apprentissage du parcours étudiant. Et la chaîne YouTube de Brunton, excellente.
  • ⭐ 🆓 Trevor Hastie, Robert Tibshirani, Jerome Friedman, The Elements of Statistical Learning, 2ᵉ éd., Springer. Gratuit sur le site de Hastie.
  • ◆ 🆓 Kevin Murphy, Probabilistic Machine Learning, deux volumes, sur probml.github.io.
  • ◆ Steven Strogatz, Nonlinear Dynamics and Chaos, 2ᵉ éd. Pour les systèmes dynamiques.
  • ◆ 🆓 La documentation PyTorch, notamment DistributedDataParallel et FSDP.
  • ○ Steven Brunton, Joshua Proctor, J. Nathan Kutz, « Discovering governing equations from data by sparse identification of nonlinear dynamical systems », PNAS, 2016. L'article de SINDy.
  • ○ Maziar Raissi, Paris Perdikaris, George Karniadakis, « Physics-informed neural networks », Journal of Computational Physics, 2019. À lire avec un œil critique.
  • ○ 🆓 MLCommons / MLPerf, mlcommons.org : règlement et soumissions publiques.

Informatique quantique

  • ⭐ Noson Yanofsky, Mirco Mannucci, Quantum Computing for Computer Scientists, Cambridge University Press, 2008. Écrit pour des informaticiens. Cité par le syllabus FISE d'INIQ24.
  • ⭐ 🆓 John Watrous, Lectures Notes on Quantum Computation, cs.uwaterloo.ca/~watrous/QC-notes/QC-notes.pdf. Cité par la brochure.
  • ⭐ Michael Nielsen, Isaac Chuang, Quantum Computation and Quantum Information: 10th Anniversary Edition, Cambridge University Press, 2011. La référence. Citée par la brochure.
  • ◆ Bernard Zygelman, A First Introduction to Quantum Computing and Information, Springer, 2018. Le plus progressif. Cité par la brochure.
  • ◆ 🆓 Ryan O'Donnell, Quantum Computation and Information, cours vidéo, et Artur Ekert, IQIS, cours vidéo. Cités par la brochure.
  • ◆ 🆓 Le Qiskit Textbook, Learn Quantum Computation using Qiskit.
  • ◆ 🆓 Quirk, algassert.com/quirk. Simulateur graphique, cité au programme.
  • ◆ Sanjeev Arora, Boaz Barak, Computational Complexity: A Modern Approach, Cambridge, 2009. Le chapitre sur BQP.
  • ○ Edward Farhi, Jeffrey Goldstone, Sam Gutmann, « A Quantum Approximate Optimization Algorithm », 2014. L'article de QAOA.
  • ○ 🆓 Andrew Lucas, « Ising formulations of many NP problems », Frontiers in Physics, 2014. Les formulations QUBO de dizaines de problèmes. Très utile pour les TP d'IQRO35.
  • ○ Scott Aaronson, Quantum Computing Since Democritus, et son blog Shtetl-Optimized. Pour la culture critique du domaine.

Génie logiciel et outillage

  • ⭐ 🆓 Scott Chacon, Ben Straub, Pro Git, 2ᵉ éd., traduit en français sur git-scm.com/book/fr.
  • ⭐ 🆓 La documentation de Spack, spack.readthedocs.io, et les Spack Tutorials.
  • ⭐ Craig Scott, Professional CMake: A Practical Guide. Le seul bon livre sur CMake.
  • ⭐ 🆓 Les Better Scientific Software guides, bssw.io. Le génie logiciel appliqué au calcul scientifique.
  • ◆ 🆓 Greg Wilson et al., « Best Practices for Scientific Computing », PLoS Biology, 2014, et « Good Enough Practices in Scientific Computing », PLoS Computational Biology, 2017.
  • ◆ Titus Winters, Tom Manshreck, Hyrum Wright, Software Engineering at Google, O'Reilly, 2020.
  • ◆ 🆓 Software Carpentry et HPC Carpentry, carpentries.org.
  • ◆ 🆓 La documentation d'Apptainer, apptainer.org/docs, section MPI.
  • ◆ 🆓 EasyBuild, docs.easybuild.io.
  • ◆ 🆓 fortran-lang.org, y compris Fortran Best Practices.
  • ○ 🆓 Le Turing Way, the-turing-way.netlify.app.

C++

  • ⭐ Bjarne Stroustrup, A Tour of C++, 3ᵉ éd., Addison-Wesley, 2022.
  • ⭐ 🆓 cppreference.com. La source de vérité.
  • ◆ Scott Meyers, Effective Modern C++, O'Reilly, 2014.
  • ◆ Nicolai Josuttis, The C++ Standard Library: A Tutorial and Reference, 2ᵉ éd.
  • ◆ 🆓 Les C++ Core Guidelines, isocpp.github.io/CppCoreGuidelines/.
  • ◆ 🆓 Les conférences de la CppCon, sur YouTube. En particulier Chandler Carruth, Efficiency with Algorithms, Performance with Data Structures (2014), et Mike Acton, Data-Oriented Design and C++ (2014).
  • ○ 🆓 Google Benchmark et quick-bench.com.

Outils de mesure

  • ⭐ Brendan Gregg, Systems Performance, 2ᵉ éd., et son site brendangregg.com. La méthodologie de diagnostic, et les flame graphs.
  • ⭐ 🆓 LIKWID, github.com/RRZE-HPC/likwid. Compteurs matériels, épinglage, micro-bancs. Pensé pour le HPC.
  • ⭐ 🆓 perf, perfwiki.github.io, et les perf examples de Brendan Gregg.
  • ◆ 🆓 Intel VTune et Intel Advisor (roofline automatique), dans oneAPI.
  • ◆ 🆓 Score-P, score-p.org, avec Scalasca, Cube et Vampir.
  • ◆ 🆓 Extrae et Paraver, tools.bsc.es, avec la méthodologie d'analyse du Barcelona Supercomputing Center.
  • ◆ 🆓 Nsight Systems et Nsight Compute, NVIDIA.
  • ○ 🆓 HPCToolkit, hpctoolkit.org ; TAU, tau.uoregon.edu ; mpiP.
  • ○ 🆓 STREAM, cs.virginia.edu/stream/.

Infrastructure et administration

  • ⭐ 🆓 La documentation Slurm, slurm.schedmd.com, y compris les Slurm Publications and Presentations.
  • ⭐ 🆓 Les guides utilisateurs des grands centres : IDRIS (Jean Zay, en français), CINES (Adastra), NERSC (Perlmutter), OLCF (Frontier). Les meilleurs documents pédagogiques sur l'architecture réelle d'un supercalculateur.
  • ◆ 🆓 OpenHPC : une pile logicielle complète de cluster HPC, avec guide d'installation pas à pas.
  • ◆ 🆓 La documentation de Puppet et celle d'Ansible.
  • ◆ 🆓 xCAT et Warewulf, pour le déploiement.
  • ◆ 🆓 ipmitool, hwloc/lstopo, numactl, ClusterShell.
  • ○ 🆓 TOP500 et Green500, top500.org. Lire les highlights de chaque édition, deux fois par an.
  • ○ 🆓 EuroHPC JU, eurohpc-ju.europa.eu, pour les machines européennes.

Énergie

  • ⭐ 🆓 La méthodologie du Green500, top500.org/lists/green500. Les niveaux de qualité de mesure de puissance.
  • ◆ 🆓 La documentation RAPL et la page powercap du noyau Linux.
  • ◆ 🆓 Scaphandre, hubblo-org.github.io/scaphandre-documentation/. Outil français de mesure de consommation.
  • ◆ 🆓 CodeCarbon, codecarbon.io.
  • ◆ 🆓 Les rapports de l'ADEME et de l'Arcep sur l'empreinte du numérique en France.
  • ○ 🆓 GEOPM, Global Extensible Open Power Manager.
  • ○ Emma Strubell, Ananya Ganesh, Andrew McCallum, « Energy and Policy Considerations for Deep Learning in NLP », ACL 2019, et les travaux ultérieurs qui en ont révisé les estimations. Lire les deux côtés.

Traitement de données massives

  • ⭐ Martin Kleppmann, Designing Data-Intensive Applications, O'Reilly, 2017. Le meilleur livre du domaine, et utile même pour un profil HPC.
  • ◆ 🆓 La documentation de Spark, section Tuning Spark.
  • ◆ Tom White, Hadoop: The Definitive Guide, 4ᵉ éd.
  • ○ Jeffrey Dean, Sanjay Ghemawat, « MapReduce: Simplified Data Processing on Large Clusters », OSDI 2004.
  • ○ Matei Zaharia et al., « Resilient Distributed Datasets », NSDI 2012. L'article de Spark.
  • ○ 🆓 Dask, dask.org. L'alternative Python, plus légère, rarement enseignée.

Les dix ouvrages à acheter si l'on ne peut en acheter que dix

Par ordre de priorité, pour un profil HPC généraliste :

  1. Hager & Wellein, Introduction to High Performance Computing for Scientists and Engineers
  2. Hennessy & Patterson, Computer Architecture: A Quantitative Approach
  3. Gropp, Lusk, Skjellum, Using MPI
  4. Mattson, He, Koniges, The OpenMP Common Core
  5. Hwu, Kirk, El Hajj, Programming Massively Parallel Processors
  6. Trefethen & Bau, Numerical Linear Algebra
  7. Bryant & O'Hallaron, Computer Systems: A Programmer's Perspective
  8. Kerrisk, The Linux Programming Interface
  9. Kennedy & Allen, Optimizing Compilers for Modern Architectures
  10. Stroustrup, A Tour of C++

Et tout le reste est gratuit : les volumes d'Eijkhout, Drepper, Saad, OSTEP, Pro Git, les manuels d'Agner Fog, les documentations, CS267, MIT 6.172, et les supports de l'IDRIS.