Actions

Open Community Runtime: Difference between revisions

From Modelado Foundation

imported>VivekSarkar
mNo edit summary
imported>Mjacobsen
 
(36 intermediate revisions by 6 users not shown)
Line 1: Line 1:
=Introduction=
== Announcement ==
* OCR v1.1.0 released ! [[Open_Community_Runtime#Links|Links]]


== Goal ==
== Goal ==
The goal of the Open Community Runtime (OCR) project is to propose and evaluate an API and framework aimed at:
The goal of the Open Community Runtime (OCR) project is to propose, implement, and evaluate a runtime framework and API that:
* Expressing large amounts of parallelism in a task-based model
* Is representative of future execution models
* Explicitly representing data dependences
* Can express large amounts of parallelism in a task-based model
* Running efficiently on tomorrow's exascale machines
* Can explicitly capture logical dependences and data movements
 
* Can be targeted by multiple high-level programming systems
* Can be mapped efficiently on to future extreme scale platforms
* Is available as an open-source testbed
== Audience ==  
== Audience ==  
In its current state, the project aims to release a '''prototype implementation''' of a reference API by September 2015. As such, the project is mostly geared towards early adopters who would like to provide feedback on our programming model and API, runtime developers who are interested in implementing various algorithms and heuristics within our runtime framework and higher-level language/models implementors who are interested in determining if their model can map to OCR.
In its current state, the project aims to release a '''prototype implementation''' of a reference API by September 2015, while making work-in-pogress transparently visible at the git location mentioned below. As such, the project is mostly geared towards early adopters among application developers who would like to provide feedback on the runtime model and API, higher-level language/models implementers who are interested in determining if their model can map to OCR, hardware developers who would like to experiment with OCR as a proxy for an exascale runtime, and runtime developers who are interested in using and/or contributing to OCR.
 
The initial release of OCR will be a development platform aimed at better understanding the challenges of executing task-based programming models on large scale systems.
 
== Value of the OCR project ==
== Value of the OCR project ==
The OCR project is creating an application building framework that explores new methods of high-core-count programming with an initial focus on HPC applications. The project aims to explore, among other things:
The OCR project is creating an application building framework that explores new methods of high-core-count programming with an initial focus on HPC applications. The project aims to explore, among other things:
* Expressability: how can application programmers express their applications in a hardware-agnostic manner; i.e.: how can they express the semantic of an application as opposed to the mapping of it to a particular kind of hardware
* Expressiveness: how can application programmers express their applications in a hardware-agnostic manner; i.e.: how can they express the intrinsic parallelism and locality in an application as opposed to the mapping on to a particular kind of hardware?
* Scheduling and data placement: what heuristics allow locality-aware scheduling and data-placement on an exascale system
* Scheduling and data placement: what tuning hints and adaptive heuristics can enable locality-aware scheduling and data-placement on an exascale system?
* Introspection: how can a runtime system improve its execution characteristics by monitoring itself
* Introspection: how can a runtime system improve its execution characteristics by monitoring itself?
* Resiliency: how can a runtime system deal with failures in an exascale system
* Resiliency: how can a runtime system deal with failures in an exascale system?


The OCR project aims to propose a low-level API to address the challenges of exascale programming and is meant to be targeted by higher-level abstractions.
The OCR project aims to propose a low-level API to address the challenges of exascale programming and is meant to be targeted by higher-level abstractions.  Early implementations of higher-level abstractions that target OCR include the CnC programming model, the HTA programming model, the RStream compiler, the Habanero-C library, and the Habanero-UPC++ library.


== Timeline ==
== Timeline ==
The OCR software is available under the BSD open source license.
The OCR software is available under the BSD open source license.
* Initial unveiling at SC 2012
* Initial unveiling at SC 2012
* v0.8 was introduced in SC 2013 and was a significant rewrite of most of the internal code to increase modularity and allow more community participation
* v0.8 was introduced at SC 2013 with a significant rewrite to increase modularity and enable more community participation
* v0.9 was released in mid October 2014.
* v0.9 will be presented at SC 2014 with several updates (including support for execution on distributed-memory clusters)
* An initial draft of the specification will be released at SC 2014
* v1.0 released on May 31, 2015
* v1.0.2 released on April 5, 2016
* v1.1.0 released on April 5, 2016
 
== Quick Start Instructions ==
 
To get the OCR v1.1.0 release:
<ol>
<li> Download the [https://xstack.exascale-tech.com/git/public?p=ocr.git;a=blob;f=ocr/spec/ocr-1.1.0.pdf;h=c99da3076b6126714c63753295de82cf13c16e77;hb=HEAD OCR v1.1.0 Specification]  </li>
<li> Clone the repository using git <pre>
git clone https://xstack.exascale-tech.com/git/public/ocr.git ocr
git clone https://xstack.exascale-tech.com/git/public/apps.git apps
</pre>
</li>
<li> Follow OCR installation instructions located under ocr/INSTALL.make </li>
</ol>
To get the latest, in development, version of OCR:
<ol>
<li> Clone the repository using git
<pre>git clone https://xstack.exascale-tech.com/git/public/ocr.git
cd ocr
git checkout dev/master
</pre>
</li>
<li> Follow OCR installation instructions located under ocr/INSTALL.make </li>
</ol>


= Links =
== Links ==
* The source code is available on [https://github.com/01.org/ocr GitHub]
* [https://xstg.modelado.org/xstack-wiki/Quick_Start Quick-start] web page to download, build, and run the OCR code on some sample applications
* Mailing lists are available [https://lists.01.org/mailman/listinfo/ocr-discuss here]
* [https://xstg.modelado.org/xstack-wiki/Getting_Started Getting started] with OCR
* [https://xstg.modelado.org/git/public?p=ocr.git;a=blob;f=ocr/spec/ocr-1.1.0.pdf;h=c99da3076b6126714c63753295de82cf13c16e77;hb=HEAD OCR v1.1.0 Specification]
* [https://xstg.modelado.org/xstack-wiki/Main_Page OCR Documentation]: Specification and guides/how-to documents are online, along with best-practices information
* [https://xstg.modelado.org/git/public/ocr.git OCR Source Code]: The OCR source code is available as a git repository to be cloned
* [https://xstg.modelado.org/git/public?p=apps.git;a=tree;f=apps;hb=refs/heads/dev/master Applications]: Many applications and common HPC kernels are included in the git code repository
* [https://xstg.modelado.org/git/public?p=apps.git;a=tree;f=hll;hb=refs/heads/dev/master Productivity Environments]: Support for productivity environments, including CNC, RStream, Habanero C, and HTA
* [https://xstg.modelado.org/git/public?p=apps.git;a=tree;f=apps/libs/src/mpilite Legacy Support]: Legacy C environment support and an MPI implementation are included for easier code migration
* Mailing lists are available [https://xstg.modelado.org/xstack-wiki/Main_Page#Code_Repositories_and_Mailing_Lists here]

Latest revision as of 01:04, August 9, 2018

Announcement

  • OCR v1.1.0 released ! Links

Goal

The goal of the Open Community Runtime (OCR) project is to propose, implement, and evaluate a runtime framework and API that:

  • Is representative of future execution models
  • Can express large amounts of parallelism in a task-based model
  • Can explicitly capture logical dependences and data movements
  • Can be targeted by multiple high-level programming systems
  • Can be mapped efficiently on to future extreme scale platforms
  • Is available as an open-source testbed

Audience

In its current state, the project aims to release a prototype implementation of a reference API by September 2015, while making work-in-pogress transparently visible at the git location mentioned below. As such, the project is mostly geared towards early adopters among application developers who would like to provide feedback on the runtime model and API, higher-level language/models implementers who are interested in determining if their model can map to OCR, hardware developers who would like to experiment with OCR as a proxy for an exascale runtime, and runtime developers who are interested in using and/or contributing to OCR.

Value of the OCR project

The OCR project is creating an application building framework that explores new methods of high-core-count programming with an initial focus on HPC applications. The project aims to explore, among other things:

  • Expressiveness: how can application programmers express their applications in a hardware-agnostic manner; i.e.: how can they express the intrinsic parallelism and locality in an application as opposed to the mapping on to a particular kind of hardware?
  • Scheduling and data placement: what tuning hints and adaptive heuristics can enable locality-aware scheduling and data-placement on an exascale system?
  • Introspection: how can a runtime system improve its execution characteristics by monitoring itself?
  • Resiliency: how can a runtime system deal with failures in an exascale system?

The OCR project aims to propose a low-level API to address the challenges of exascale programming and is meant to be targeted by higher-level abstractions. Early implementations of higher-level abstractions that target OCR include the CnC programming model, the HTA programming model, the RStream compiler, the Habanero-C library, and the Habanero-UPC++ library.

Timeline

The OCR software is available under the BSD open source license.

  • Initial unveiling at SC 2012
  • v0.8 was introduced at SC 2013 with a significant rewrite to increase modularity and enable more community participation
  • v0.9 will be presented at SC 2014 with several updates (including support for execution on distributed-memory clusters)
  • v1.0 released on May 31, 2015
  • v1.0.2 released on April 5, 2016
  • v1.1.0 released on April 5, 2016

Quick Start Instructions

To get the OCR v1.1.0 release:

  1. Download the OCR v1.1.0 Specification
  2. Clone the repository using git
    git clone https://xstack.exascale-tech.com/git/public/ocr.git ocr
    git clone https://xstack.exascale-tech.com/git/public/apps.git apps
    
  3. Follow OCR installation instructions located under ocr/INSTALL.make

To get the latest, in development, version of OCR:

  1. Clone the repository using git
    git clone https://xstack.exascale-tech.com/git/public/ocr.git
    cd ocr
    git checkout dev/master
    
  2. Follow OCR installation instructions located under ocr/INSTALL.make

Links