New Clan release with a larger and an easier-to-understand application domain. Learn more!
New version of OpenScop, the open format and library for polyhedral compilation tools to work together. Learn more!
After some great years at Paris-Sud, I have the privilege to join the vibrant ICPS team of the ICube lab at the University of Strasbourg. Do not forget to update your contact information if necessary.
New CLooG release that, amongst other improvements, brings the OpenScop support. Learn more!
Louis-Noël Pouchet published a new release of the Polyhedral Compiler Collection. To enjoy the power of high-level compilation, give it a try!
Bio and Contact Informations
I'm professor at the University of Strasbourg, France, associated with the ICPS group, the research team on parallel and scientific computing at ICube. I received the Ph.D. degree in computer science from Pierre & Marie Curie University, France, in 2004. My supervisor was Paul Feautrier. I have been assistant of teaching and research at PRiSM, Versailles University and LLAIC, Clermont-Ferrand University. Before joining the University of Strasbourg, I have been assistant professor at Paris-Sud University. I visited Reservoir Labs Inc. as visiting professor, for one year in 2009. In 2011-2012, I have been visiting researcher at CNRS, the French National Lab. My research interests are in compiler techniques for optimization and parallelization with a strong emphasis on code restructuring using the polyhedral model. I maintain several polyhedral-community-used tools as the code generator CLooG and Paul Feautrier's parametric integer programming solver, PIP.
300 Boulevard Sébastien Brant
UFR Mathématique et Informatique
7 rue René Descartes
Office Pôle API, office B223 Building 7, office 305 Phone +33/0 3 68 85 45 52 +33/0 3 68 55 02 27 firstname.lastname@example.org email@example.com
Journals and Book Chapters
- E. Park, J. Cavazos, L.-N. Pouchet, C. Bastoul, A. Cohen and P. Sadayappan Predictive Modeling in a Polyhedral Optimization Space International Journal of Parallel Programming, 41(5):704-750, October 2013. [bibtex]
- C. Bastoul. Parallel Code Generation. Encyclopedia of Parallel Computing, pages 310-318, Springer, 2011.
- H. Munk, E. Ayguadé, C. Bastoul, P. Carpenter, Z. Chamski, A. Cohen, M. Cornero, P. Dumont, M. Duranton, M. Fellahi, R. Ferrer, R. Ladelsky, M. Lindwer, X. Martorell, C. Miranda, D. Nuzman, A. Ornstein, A. Pop, S. Pop, L.-N. Pouchet, A. Ramírez, D. Ródenas, E. Rohou, I. Rosen, U. Shvadron, K. Trifunovic and A. Zaks. ACOTES Project: Advanced Compiler Technologies for Embedded Streaming. International Journal of Parallel Programming, 38, April 2010. [Springer] [PDF] [bibtex]
- S. Girbal, N. Vasilache, C. Bastoul, A. Cohen, D. Parello, M. Sigler, and O. Temam. Semi-automatic composition of loop transformations for deep parallelism and memory hierarchies. International Journal of Parallel Programming, 34(3):261-317, June 2006. [ACM] [PDF] [bibtex]
- C. Bastoul and P. Feautrier. Adjusting a program transformation for legality. Parallel processing letters, 15(1):3-17, Mar. 2005. [World Scientific] [PDF] [bibtex]
Conferences and Workshops
- L. Bagnères and C. Bastoul. Switchable Scheduling for Runtime Adaptation of Optimization In Euro-Par'20 International Euro-Par Conference, Porto, Portugal, August 2014. [PDF] [bibtex]
- O. Zinenko, S. Huot and C. Bastoul. Clint: A Direct Manipulation Tool for Parallelizing Compute-Intensive Program Parts In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Melbourne, Australia, July 2014. [PDF] [bibtex]
- F. Bodin, C. Bastoul and E. Brunet.. A Compilation Path for Manycore Architectures In International Workshop on High Performance Energy Efficient Embedded Systems (HIP3ES), Berlin, Germany, January 2013 (communication).
- L.-N. Pouchet, U. Bondhugula, C. Bastoul, A. Cohen, J. Ramanujam, P. Sadayappan and N. Vasilache. Loop Transformations: Convexity, Pruning and Optimization In 38th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'11), Austin, TX, January 2011. [PDF] [bibtex]
- L.-N. Pouchet, U. Bondhugula, C. Bastoul, A. Cohen, J. Ramanujam and P. Sadayappan. Combined Iterative and Model-driven Optimization in and Automatic Parallelization Framework In International Conference on Supercomputing (SC'10), New Orleans, LA, November 2010. [PDF] [bibtex]
- A. Hartono, N. Vasilache, C. Bastoul, A. Leung, B. Meister, R. Lethin and P. Vouras. Automatic Parallelization and Locality Optimization of Beamforming Algorithms. In High Performance Embedded Computing Workshop (HPEC), MIT Lincoln Laboratory, Lexington, Massachusetts, September 2010. [PDF] [bibtex]
- R. Baghdadi, A. Cohen, C. Bastoul, L.-N. Pouchet and L. Rauchwerger. The potential of synergistic static, dynamic and speculative loop nest optimizations for automatic parallelization. In Workshop on Parallel Execution of Sequential Programs on Multi-core Architectures (PESPMA'10), Saint-Malo, France, August 2010. [PDF] [bibtex]
- A. Leung, N. Vasilache, B. Meister, M. Baskaran, D. Wohlford, C. Bastoul and R. Lethin. A mapping path for multi-GPGPU accelerated computers from a portable high level programming abstraction. In Proceedings of 3rd Workshop on General Purpose Processing on Graphics Processing Units, GPGPU 2010, ACM International Conference Proceeding Series, Volume 425, Pages 51-61, Pittsburgh, Pennsylvania, March 2010. [ACM] [PDF] [bibtex]
- M.-W. Benabderrahmane, L.-N. Pouchet, A. Cohen, and C. Bastoul. The Polyhedral Model Is More Widely Applicable Than You Think. In CC'10 International Conference on Compiler Construction, LNCS 6011, pages 283-303, Paphos, Cyprus, March 2010. [Springer] [PDF] [bibtex]
- C. Bastoul, N. Vasilache, A. Leung, B. Meister, D. Wohlford, and R. Lethin. Extended Static Control Programs as a Programming Model for Accelerators, A Case Study: Targetting ClearSpeed CSX700 With the R-Stream Compiler. In proceedings of the PMEA'09 Workshop on Programming Models for Emerging Architectures, pages 45-52, Raleigh, North Carolina, September 2009. [PDF] [bibtex]
- A. Hartono, M. Baskaran, C. Bastoul, A. Cohen, S. Krishnamoorthy, B. Norris, J. Ramanujam and P. Sadayappan. Parametric Multi-Level Tiling of Imperfectly Nested Loops. In Proceedings of the ACM International Conference on Supercomputing (ICS'09), pages 147-157, Yorktown Heights, New York, June 2009. [PDF] [bibtex]
- B. Meister, A. Leung, N. Vasilache, D. Wohlford, C. Bastoul and R. Lethin. Productivity via Automatic Code Generation for PGAS Platforms with the R-Stream Compiler. In APGAS'09 Workshop on Asynchrony in the PGAS Programming Model, Yorktown Heights, New York, June 2009. [PDF] [bibtex]
- L.-N. Pouchet, C. Bastoul, A. Cohen, and S. Cavazos. Iterative optimization in the polyhedral model: Part II, multidimensional time. In proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'08), pages 90-100, Tucson, Arizona, June 2008. [ACM] [PDF] [bibtex]
- L.-N. Pouchet, C. Bastoul, J. Cavazos, and A. Cohen. A note on the performance distribution of affine schedules. In 2nd Workshop on Statistical and Machine learning approaches to ARchitectures and compilaTion (SMART'08), Göteborg, Sweden, Jan. 2008. [PDF] [bibtex]
- S. Salva, C. Delamare, and C. Bastoul. Web service call parallelization using OpenMP. In 3rd International Workshop on OpenMP, LNCS 4935, pages 185-194, Beijing, China, June 2007. [Springer] [PDF] [bibtex]
- L.-N. Pouchet, C. Bastoul, A. Cohen, and N. Vasilache. Iterative optimization in the polyhedral model: Part I, one-dimensional time. In ACM International Conference on Code Generation and Optimization (CGO'07), pages 144-156, San Jose, California, Mar. 2007. [ACM] [PDF] [bibtex]
- N. Vasilache, C. Bastoul, S. Girbal, and A. Cohen. Violated dependence analysis. In Proceedings of the ACM International Conference on Supercomputing (ICS'06), pages 335-344, Cairns, Australia, June 2006. [ACM] [PDF] [bibtex]
- S. Pop, A. Cohen, C. Bastoul, S. Girbal, P. Jouvelot, G.-A. Silber, and N. Vasilache. GRAPHITE: Loop optimizations based on the polyhedral model for GCC. In Proc. of the 4th GCC Developper's Summit, pages 179-198, Ottawa, Canada, June 2006. [PDF] [bibtex]
- N. Vasilache, C. Bastoul, and A. Cohen. Polyhedral code generation in the real world. In Proceedings of the International Conference on Compiler Construction (ETAPS CC'06), LNCS 3923, pages 185-201, Vienna, Austria, Mar. 2006. Springer-Verlag. [Springer] [PDF] [bibtex]
- C. Bastoul. Code generation in the polyhedral model is easier than you think. In PACT'13 IEEE International Conference on Parallel Architecture and Compilation Techniques, pages 7-16, Juan-les-Pins, France, Sept. 2004. Student Award. [ACM] [PDF] [bibtex]
- C. Bastoul and P. Feautrier. More legal transformations for locality. In Euro-Par'10 International Euro-Par conference, LNCS 3149, pages 272-283, Pisa, Italy, Aug. 2004. Distinguished Paper Award. [Springer] [PDF] [bibtex]
- C. Bastoul. Efficient code generation for automatic parallelization and optimization. In ISPDC'2 IEEE International Symposium on Parallel and Distributed Computing, pages 23-30, Ljubljana, Slovenia, Oct. 2003. [IEEE] [PDF] [bibtex]
- C. Bastoul, A. Cohen, S. Girbal, S. Sharma, and O. Temam. Putting polyhedral loop transformations to work. In Workshop on Languages and Compilers for Parallel Computing (LCPC'03), LNCS 2558, pages 23-30, College Station, Texas, Oct. 2003. Springer-Verlag. [Springer] [PDF] [bibtex]
- C. Bastoul and P. Feautrier. Improving data locality by chunking. In CC'12 International Conference on Compiler Construction, LNCS 2622, pages 320-335, Warsaw, Poland, Apr. 2003. [Springer] [PDF] [bibtex]
- C. Bastoul and P. Feautrier. Reordering methods for data locality improvement. In CPC'10 Compilers for Parallel Computers, pages 187-196, Amsterdam, The Netherlands, Jan. 2003. [PDF] [bibtex]
- C. Bastoul. Une méthode d'amélioration de la localité basée sur des estimations asymptotiques du trafic. In RENPAR'14, pages 127-134, Hammamet, Tunisia, Avril 2002. [PDF] [bibtex]
Tool-Related Technical Reports
- C. Bastoul. Extracting polyhedral representation from high level programs. Technical Report, LRI, Paris-Sud University, 2008. Related to the Clan tool. [PDF] [bibtex]
- L.-N. Pouchet, C. Bastoul, A. Cohen. LetSee: the LEgal Transformation SpacE Explorer. Third International Summer School on Advanced Computer Architecture and Compilation for Embedded Systems (ACACES'07), pages 247-251, L'Aquila, Italia, Jul. 2008. Related to the LeTSeE tool. [PDF] [bibtex]
- C. Bastoul, A. Cohen, A. Girbal, S. Sharma, and O. Temam. Putting polyhedral loop transformations to work. Technical Report 4902, INRIA Rocquencourt, 2003. Related to the WRAP-IT tool. [PDF] [bibtex]
- C. Bastoul. Generating loops for scanning polyhedra. Technical Report 2002/23, PRiSM, Versailles University, 2002. Related to the CLooG tool. [PDF] [bibtex]
- P. Feautrier, J. Collard, and C. Bastoul. Solving systems of affine (in)equalities. Technical report, PRiSM, Versailles University, 2002. Related to the PIP/PipLib tool. [PDF] [bibtex]
- J. Abella, C. Bastoul, J. Bechennec, N. Drach, C. Eisenbeis, P. Feautrier, B. Franke, G. Fursin, A. Gonzalez, T. Kisku, P. Knijnenburg, J. Llosa, M. O'Boyle, J. Sebot, and X. Vera. Guided transformations. Technical Report M3.D2, MHAOTEU ESPRIT project No 24942, february 2001. Related to the MHAOTEU toolset. [PDF] [bibtex]
- Allen K. Leung, Benoît Meister, Nicolas T. Vasilache, David E. Wohlford, Cédric Bastoul, Peter Szilagyi and Richard A. Lethin. System, Methods and Apparatus for Program optimization for Multi-Threaded Processor Architectures. Patent application number US20100218196, publication date 26/08/2010. [Description] [PDF]
- C. Bastoul. Contributions to High-Level Program Optimization. Habilitation thesis, University Paris-Sud, France, Dec. 2012. [PDF (defense version, to be updated soon)] [bibtex]
- C. Bastoul. Improving Data Locality in Static Control Programs. PhD thesis, University Paris 6, Pierre et Marie Curie, France, Dec. 2004. [PDF] [bibtex]
I'm writing and/or maintaining and/or contributing to several tools that can be combined to build a complete source-to-source optimization/parallelization framework. Nevertheless they can also be used separately either to be a part of your own framework or to achieve a specific task that has nothing to do with compilation (e.g., PIP and CLooG are also used for very different purpose). All these tools are free software under GPL or LGPL license. However (except for PIP which is copyright (C) Paul Feautrier), if you're coming from industry and you are interested in integrating some of these tools without GPL/LGPL requirements, just ask me. I can even integrate them for you, translate them to you prefered language and so on.
- Clan, the Chunky Loop ANalyzer, is a tool to extract the polyhedral representation from the static control parts of high level programs (written in C, C++, C# or Java). Status: in development, use at your own risks, full documentation in doc/ directory.
- Candl, the Chunky ANalyzer for Dependencies in Loops, is a tool for data dependence analysis of static control parts. Status: in development, no documentation (except full Doxygen-documented code), no support.
- OpenScop, the OpenScop Library, is a library providing facilities for tools manipulating static control parts and usual data structures used in polyhedral compilation. Using it offers a high level of interoperability with many tools in the polyhedral compilation ecosystem. OpenScop is the name of the new version of SCoPLib.
- Clay, the Chunky Loop Alteration wizardrY, is a tool to apply high-level loop transformation scripts to static control parts. It accepts all major loop transformations (fusion, fission, skewing, interchange, tiling, unrolling etc.) as well as data transformations. It is able to check for the legality of the transformation script as well as generating the code that implement this transformation script.
- PIP/PipLib, the Parametric Integer Programming (LIBrary), is a tool that finds the lexicographic minimum (or maximum) in the set of integer points of a convex parameterized polyhedron (i.e. even if this polyhedron linearly depends on one or more integral parameters). Status: production quality.
- Chunky is the optimizer heart. It finds the transformations to be applied to the original code in order to improve data locality. I developed Chunky during my Ph.D. it is not working anymore with the new toolchain but I plan to port it someday. For the moment, if you're looking for a tool to find good transformations, you should consider LooPo that implements well known algorithms (Feautrier, Lim, Griebl, etc.), LeTSeE that achieves iterative compilation scheme over the polyhedral model or PLuTo, a state-of-the-art tiling-based parallelizer in the polyhedral model. And to get both LeTSeE and PLuTo at once, you may consider PoCC, a complete toolchain which includes the two optimizers and capabilities to make them work together.
- CLooG, the Chunky LOOp Generator. This tool is a code generator for scanning Z-polyhedra: it finds the code or pseudo-code where each integral point of one or more parameterized polyhedron or parameterized polyhedra union is reached. Status: production quality.
Vous trouverez ici les ressources pédagogiques des différents enseignements que je donne (ou que j'ai donné, ou auxquels j'ai participé récemment) à l'IUT d'Orsay, à l'UFR Sciences de l'université Paris-Sud ou encore à l'École Polytechnique. Si un lien est mort, cela signifie certainement que la responsabilité a changé, merci de ne pas m'en avertir !
- Cours OpenMP Master 2 RISE, UFR Mathématique et Informatique Université de Strasbourg.
- Licence Professionnelle PER, IUT d'Orsay.
- Licence Professionnelle SRSI, IUT d'Orsay.
- Système S2, IUT d'Orsay.
- Système S4, IUT d'Orsay.
- Java Apprentis, IUT d'Orsay.
- Java, IUT d'Orsay (vers page de la responsable, Sylvie Delaët).
- Amphi matériel, IUT d'Orsay.
- Programmation orientée objet, UFR Sciences Paris-Sud.
- Architecture des ordinateurs, École Polytechnique.
- Principes et programmation des systèmes d'exploitation, École Polytechnique (vers page du responsable, Albert Cohen).
- Sécurité informatique, formation continue.
- Projet Nintendo DS, IUT d'Orsay.
HandcraftsIn the history of computing, program optimizations were initially handcrafted, leading to error prone, non portable, illegible codes, and incidentally to a real nightmare for automatic optimizers. Nevertheless, it is very useful to know and understand them in order to consider their automatic application. Here are some exhaustive handcraft vaults: