# Argobots

A Lightweight Low-level Threading Framework

Download
GitHub

## Argobots: A Lightweight Low-level Threading Framework

Argobots, which was developed as a part of the Argo project, is a lightweight runtime system that supports integrated computation and data movement with massive concurrency. It will directly leverage the lowest-level constructs in the hardware and OS: lightweight notification mechanisms, data movement engines, memory mapping, and data placement strategies.

Argobots is used by numerous industrial and academic collaborators such as Intel, The HDF group, RIKEN, and BSC.

### Argobots was named a finalist for the 2020 R&D 100 Awards

The prestigious R&D 100 competition, sponsored by R&D Magazine, recognizes the 100 most innovative technologies of the previous year. Argobots, a lightweight and highly flexible multithreading framework, was chosen as a finalist for the 2020 R&D 100 Awards. We would like to thank all the Argobots users and developers for supporting us!

### Lightweight Threads and Tasklets

Argobots implements lightweight parallel work units, such as lightweight threads or tasklets, that can dynamically and efficiently adapt to the tug of requirements from applications and hardware resources. Threads and tasklets are efficiently scheduled based on power, resilience, memory locality, and capabilities. Threads and tasklets are executed by abstracted execution entities called execution streams.

### Customizable Schedulers

Localized scheduling strategies such as those used in current runtime systems, while efficient for short execution, are unaware of global strategies and priorities. Adaptability and dynamic application behavior must be handled by scheduling strategies that can change over time or be customized for a particular algorithm or data structure. “Plugging” in a specialized scheduling strategy lets the OS/R handle the mechanism and utilize lightweight notification features while leaving the policy to higher levels of the system-software stack.

### High Portability

Argobots works on major UNIX-based platforms including Ubuntu, FreeBSD, CentOS, macOS, and Solaris. Argobots supports most CPU architectures with special optimizations for Intel/AMD x86/64, ARMv8-A, and POWER 8 and 9. We regularly test Argobots with numerous C compilers including GCC, Clang, ICC (Intel), XLC (IBM), PGCC (PGI), Solaris Studio (Oracle), and Arm C Compiler for HPC (ARM). Please check here for details.

## Argobots Ecosystem

Argobots has been expanding its ecosystem both inside and outside the Argo project. Various programming models are integrating Argobots into their runtime so that their applications can take advantage of Argobots without modifying the code.

- Intel DAOS
- RIKEN OpenMP/XcalableMP
- OmpSs (BSC)
- Margo: Mercury over Argobots
- BOLT: OpenMP over Argobots
- Open MPI interoperation with Argobots
- MPICH interoperation with Argobots
- Charm++ over Argobots
- CilkBots over Argobots
- TASCEL over Argobots
- PaRSEC over Argobots