• Home
  • Search
  • Inferring Scalability from Program Pseudocode
  • https://doi.org/10.5075/epfl-thesis-6219Copy DOI Icon

Inferring Scalability from Program Pseudocode

  • Abstract
  • Literature Map
  • Similar Papers
Abstract

Recent trends have led hardware manufacturers to place multiple processing cores on a single chip, making parallel programming the intended way of taking advantage of the increased processing power. However, bringing concurrency to average programmers is considered to be one of the major challenges in computer science today. The difficulty lies not only in writing correct parallel programs, but also in achieving the required efficiency and performance. For parallel programs, performance is not only about obtaining low execution times on a fixed number of cores, but also about maintaining efficiency as the number of available cores is increased. Ideally, programmers should have in their toolkit techniques that can be used when designing parallel programs, before any code is available for testing on production hardware, and which are then able to predict scalability once the program is implemented. Existing methods are either unreliable at predicting scalability, such as the case of disjoint-access parallelism, or do not apply to lock-based programs, which currently make up a large part of existing concurrent programs. Furthermore, using some of these techniques is so complicated that it outweighs the time required to implement, debug and test the program on real hardware. In this thesis we study the problem of predicting the scalability of concurrent programs without implementing them. This allows programmers in the design phase of a concurrent algorithm to choose only one or a few promising solutions that will be implemented, debugged and tested on production hardware. We first consider disjoint-access parallelism, an existing property that applies only to a very restricted class of programs. After an extensive practical evaluation spanning across a variety of scenarios, we find it to be ineffective at predicting scalability. For predicting the scalability of more general concurrent algorithms, we propose the obstruction degree, a new scalability metric based on the consistency requirements of algorithms. It applies to programs using locks, invalidation primitives and transactional memory. Our metric allows programmers to compare two given algorithms as well as predict their scalability limit, the maximum number of processors to which they can scale, thus allowing programmers to choose the appropriate size hardware for running their programs. We also examine the composition of relaxed memory transactions in order to combine the ease of programming offered by transactional memory with the increased scalability of transactions that circumvent the traditional transactional model. We present outheritance, a property we show to be both necessary and sufficient for ensuring the correct composition of relaxed transactions, and we show how to calculate the obstruction degree of compositions that use this new property. We use outheritance to build OE-STM, a new software transactional memory algorithm having elastic transactions that correctly compose.

Similar Papers
  • Research Article

A New, Architectural Paradigm for High-performance Computing

  • Jan 01, 1999
  • Scalable Computing Practice and Experience
  • David A Bader
  • Research Article
  • Citations6

Exploring compiler optimization opportunities for the OpenMP 4.x accelerator model on a POWER8+GPU platform

  • Nov 13, 2016
  • Akira Hayashi +4
  • Dissertation

Enhancing the efficiency and practicality of software transactional memory on massively multithreaded systems

  • Mar 22, 2013
  • Gökçen Kestor
  • Supplementary Content
  • Citations1

Solution of Large-scale Structured Optimization Problems with Schur-complement and Augmented Lagrangian Decomposition Methods

  • Aug 02, 2019
  • Figshare
  • Jose S Rodriguez
  • Conference Article

Transactional memory

  • May 11, 2008
  • Ali-Reza Adl-Tabatabai
  • Research Article
  • Citations19

Executing Java programs with transactional memory

  • Aug 04, 2006
  • Science of Computer Programming
  • Brian D Carlstrom +7
  • Conference Article
  • Citations1

QuickTM: A Hardware Solution to a High Performance Unbounded Transactional Memory

  • Sep 01, 2010
  • S Sanyal +1
  • Supplementary Content
  • Citations1

Programming abstractions, compilation, and execution techniques for massively parallel data analysis

  • Apr 28, 2015
  • DepositOnce
  • Stephan Ewen
  • Book Chapter
  • Citations995

Transactional Locking II

  • Jan 01, 2006
  • Dave Dice +2
  • Research Article

Transformations and efficient parallel execution of loops with dependencies

  • Jan 01, 1994
  • Open Collections
  • M.R Ito +1
  • Research Article

Parallel, Distributed and Network-based Computing: an Application Perspective

  • Jan 01, 2010
  • Scalable Computing Practice and Experience
  • Pasqua D’Ambra +3
  • Research Article

Facilitating parallel and distributed computing

  • Jan 03, 2001
  • Scalable Computing Practice and Experience
  • L M Patnaik +2

An Optimized Memory Allocation and Deallocation Method while Programming in Python

  • May 28, 2019
  • S.S Sugantha Mallika +3
  • Research Article
  • Citations1

Internet-Based Geographical Information Systems for the Real Estate Marketing

  • Apr 10, 2015
  • Figshare
  • Journals Iosr +3
  • Research Article

Adaptive Snoop Granularity and Transactional Snoop Filtering in Hardware Transactional Memory

  • Jan 01, 2014
  • Canadian Journal of Electrical and Computer Engineering
  • Ehsan Atoofian
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.