Argobots 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 chosen as a finalist for the 2020 R&D 100 Awards.
Argobots 1.1 was released
Argobots 1.1 added numerous features, improved the performance, and fixed several bugs. A list of changes can be found here: changes in Argobots 1.1.
Working together with Charmworks to improve Argobots
We are excited to announce that the Argobots team at Argonne National Laboratory will work with Charmworks to expand and enhance Argobots (see the press release). The Argobots team will keep working on the open-source Argobots for better performance, functionality, portability, and interoperability.
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.
Ecosystem of Argobots
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