Petabricks

PetaBricks is a new implicitly parallel language and compiler where having multiple implementations of multiple algorithms to solve a problem is the natural way of programming. We make algorithmic choice a fundamental construct of the language. Choices are provided in a way that also allows our compiler to tune at a finer granularity. The PetaBricks compiler autotunes programs by making both fine-grained as well as algorithmic choices. Choices also include different automatic parallelization techniques, data distributions, algorithmic parameters, transformations, and blocking. In addition, we introduce novel techniques to autotune algorithms for different convergence criteria. When choosing between various direct and iterative methods, the PetaBricks compiler is able to tune a program in such a way that delivers near-optimal efficiency for any desired level of accuracy. The compiler has the flexibility of utilizing different convergence criteria for the various components within a single algorithm, providing the user with accuracy choice alongside algorithmic choice.


References in zbMATH (referenced in 5 articles )

Showing results 1 to 5 of 5.
Sorted by year (citations)

  1. Gadioli, Davide; Vitali, Emanuele; Palermo, Gianluca; Silvano, Cristina: mARGOt: a dynamic autotuning framework for self-aware approximate computing (2019)
  2. Tan, Guangming; Liu, Junhong; Li, Jiajia: Design and implementation of adaptive SpMV library for multicore and many-core architecture (2018)
  3. Audet, Charles; Dang, Kien-Cong; Orban, Dominique: Optimization of algorithms with OPAL (2014)
  4. Dastgeer, Usman; Li, Lu; Kessler, Christoph: The PEPPHER composition tool: performance-aware composition for GPU-based systems (2014) ioport
  5. Wernsing, John R.; Stitt, Greg: Elastic computing: A portable optimization framework for hybrid computers (2012) ioport


Further publications can be found at: http://groups.csail.mit.edu/commit/?page=publications-static&keyword=PetaBricks