Giter Club home page Giter Club logo

bale's Introduction

bale

The bale effort is, first and foremost, a vehicle for discussion for parallel programming productivity.

The bale effort attempts to:

  • demonstrate some challenges of implementing interesting (i.e. irregular) scalable distributed parallel applications.

  • demonstrate an approach (aggregation libraries) to achieving high performance for the internode communication in such applications

  • explore concepts that make it easier to write, maintain, and get top performance from such applications

bale does not claim to have the answers to better parallel programming.

bale is not a collection of benchmarks.

We use bale to evolve our thinking on parallel programming in the effort to make parallel programming easier, more productive, and more fun. Yes, we think making it fun is a worthy goal!

The original bale (now called "bale_classic") was implemented in UPC or C and SHMEM. If you are new to bale, you should start by exploring there. New in bale 3.0, the bale repository now contains other variants of bale (sequential, parallel, and custom parallel). Each variant is a separate project and comes with its own build and run instructions. All source code is found in the src directory.

Here is a short presentation on bale from June 2022.

Contents

bale_classic: Built with UPC or C/SHMEM. Contains three aggregation APIs (exstack, exstack2, and conveyors) and the widest collection of apps and implementations of those apps. Location: src/bale_classic

C: Sequential versions of the bale_classic apps, meant to be a gentle introduction to some of the more complicated algorithms in bale_classic. Location: src/other_serial/C

Serial Rust: Similar to the C version, only in Rust. Location: src/other_serial/Rust

Parallel Rust: Parallel versions of the bale apps in Rust on top of Rust conveyors (which are currently implemented on SHMEM). Location: src/other_parallel/Rust

Chapel: A collection of some of the bale apps written in Chapel. Location: src/other_parallel/Chapel

Version History

  • May 2018: Initial Release version 1.0.0

  • Dec. 2018: version 2.0.0

    • New apps: transpose, randperm, permute_matrix, write_sparse_matrix
  • Sep. 2019: version 2.1.0

    • update conveyors to version 0.5.0
  • Oct. 2020: version 3.0.0

    • Added cousins: Rust, Parallel Rust, Serial C, and Chapel to bale
    • new bale_classic features:
      • New graph model: Geometric graphs
      • New app: SSSP
      • replaced write_sparse_matrix with sparse_matrix_io
      • convey-0.6.0 updates
      • arg_parse replaced getopt
      • unit tests with pytest
      • new make_bale script
      • new run_apps script
      • docker files
      • AGP (Atomics, Gets, and Puts) replaces AGI: simple PGAS style programming
      • FTB (From the Book) replaces As God Intended.

Contact

[email protected]

bale's People

Contributors

johnrgilbert avatar jdevinney avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.