SWARM Beta
SWARM (SWift Adaptive Runtime Machine)
- Simplify: Makes physical parallelism and complexity invisible to the user
- Future-Proof: Delivers through a single programming interface:
- Portability across heterogeneous systems
- Scalability of applications from desktop to supercomputer
- Stability of code base across system generations
- Accelerate: Boosts performance through increased parallel efficiency and scalability
- Burst: Enables on-demand cloud resource allocation
- Stabilize: Future versions will provide resiliency through micro-checkpointing and graceful degradation
- Conserve: Pushing towards energy efficiency

What is SWARM?
ETI’s SWARM technology is a performance accelerator for multi-core/multi-node and heterogeneous systems with specialized accelerators such as GPUs and APUs. A dynamic adaptive runtime system that minimizes user exposure to physical parallelism and system complexity, SWARM is designed to enable programming on many-core architectures by utilizing a dynamic, message-driven model of execution instead of the static scheduling and sequential computing method of conventional programming models.

The SWARM performance accelerator provides a transformative solution for peta-scale systems rooted in deep dataflow technology for total system efficiency and resiliency.
- Lightweight, thread-virtual machine technology is rooted in dataflow and asynchronous, fine-grain multithreading and synchronization
- Exposure of implicit parallelism hides latency and allows users to exploit full processing power of multi-core systems
- Dynamic scheduling capabilities and resource management expose extreme concurrency by mapping tasks to resources in real time based on the satisfaction of specific dependencies and constraints
- Execution model based on codelets enables migration of data structures, work, and global control
- Multi-chip, multi-core, shared memory multiprocessing eliminates OS message-passing penalties and hardware-coherent caching dependencies
- Application awareness allows monitoring of hardware availability and dynamic application requirements

Swarm2c and SCALE
ETI’s SCALE (SWARM Codelet Association LanguagE) is an extension of C that simplifies the use of basic SWARM runtime constructs. Swarm2c is a program that converts SCALE programs to standard C programs employing the SWARM runtime library.
Swarm2c: Translate SCALE (SWARM Codelet Association LanguagE) to C
Who can benefit from SWARM now?
- ISVs can leverage SWARM to parallelize and scale their software for desktops, clusters, and clouds.
- Scripting language ISVs, such as Matlab or Mathematica, can enable their users to exploit parallelism on today’s workstations and clusters.
- Industry developers can accelerate and scale up cluster-/cloud-based in-house programs, even on commodity clusters.
- ISVs with new task-based algorithms that require dependency analysis, extremely low-latency scheduling, and dynamic resource allocation can leverage SWARM as the only commercial performance accelerator that can support these needs.
ETI is currently adding a number of new features to SWARM, including tighter networking integration, support for architectural heterogeneity within a node, support for GPU and Intel MIC architectures, and support for memory partitioning.
Click here to see SWARM Case Studies
For more information on SWARM, see:
SWARM for Application Customers
Download SWARM Beta
Please REGISTER to recieve instructions on how to download the SWARM beta and swarm2c binaries.

