Skip to content

BigPicture

Philipp Gschwandtner edited this page Apr 19, 2017 · 1 revision

The Big Picture

Introduction

The AllScale (http://www.allscale.eu) environment aims at facilitating the development of parallel application codes for very large distributed memory systems without application developers having to concern themselves with details of the underlying runtime systems and hardware.

The following figure shows a topological overview of the components of AllScale:

Responsibilities

Component Developed and maintained by Repository
API University of Innsbruck, Austria https://github.com/allscale/allscale_api
Compiler University of Innsbruck, Austria https://github.com/allscale/allscale_compiler
Runtime University of Erlangen-Nuremberg, Germany https://github.com/allscale/allscale_runtime
Monitoring KTH Royal Institute of Technology, Sweden https://github.com/allscale/allscale_runtime
Resilience Queen's University Belfast, Northern Ireland https://github.com/allscale/allscale_runtime
Scheduler IBM Research, Ireland https://github.com/allscale/allscale_runtime

Toolchains

The AllScale environment combines two essential aspects in developing large scale parallel applications. First, it aims at maximizing the developer's productivity during application development, requiring a development setup with a small footprint and few dependencies. Second, it needs to offer scalable performance and resilience for large distributed memory systems, requiring additional tools such as a resilience manager.

In order to meet both requirements, the AllScale environment provides two toolchains, one for each use case:

  • The Standard toolchain supports the development of applications using the AllScale API on shared memory systems with a minimal footprint, only requiring a C++14-compliant compiler and standard library.
  • The AllScale toolchain supports the deployment of applications using the AllScale API on large distributed memory systems, featuring resilience, multi-objective optimization and developer feedback.

Toolchain Features and Use Cases

Standard Toolchain AllScale Toolchain
Supports parallel operator primitives and data structures
Requires C++14-compliant compiler
Supports shared memory parallelism
Supports short development cycles
Supports standard development and debugging tools
Requires third party libraries
Supports distributed memory parallelism
Supports resilience features
Supports OpenCL devices
Supports multi-objective optimization
Supports online monitoring

Clone this wiki locally