Actions

Open Community Runtime: Difference between revisions

From Modelado Foundation

imported>VincentCave
imported>VivekSarkar
No edit summary
Line 1: Line 1:
== Announcement ==
* OCR v1.0.0 released ! [[Open_Community_Runtime#Links|Links]]
== Goal ==
== Goal ==
The goal of the Open Community Runtime (OCR) project is to propose, implement, and evaluate a runtime framework and API that:
The goal of the Open Community Runtime (OCR) project is to propose, implement, and evaluate a runtime framework and API that:
Line 25: Line 28:
* v0.8 was introduced at SC 2013 with a significant rewrite to increase modularity and enable more community participation
* 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)
* v0.9 will be presented at SC 2014 with several updates (including support for execution on distributed-memory clusters)
* v1.0 released on June 2015
   
   
== Links ==
== Links ==
* The specification for OCR version 9 can be downloaded [[Media:Ocr-v0.9-spec.pdf|here]]
* The specification for OCR v1.0 can be downloaded [[Media:Ocr-v0.9-spec.pdf|here]]
* The source code is available on [https://github.com/01org/ocr GitHub]
* The OCR source code is available as a git repository and can be cloned [https://xstack.exascale-tech.com/git/public/xstack.git here]
* Mailing lists are available [https://lists.01.org/mailman/listinfo/ocr-discuss here]
* Getting started instructions are available [https://xstack.exascale-tech.com/wiki/index.php/Getting_Started here]
 
* Mailing lists are available [https://xstack.exascale-tech.com/wiki/index.php/Main_Page#Code_Repositories_and_Mailing_Lists here]
== Install Instructions for Distributed-OCR ==
The 'sc14' github branch contains the most recent OCR implementation used for the SC14 demos.  It will be merged into the trunk in the near future.
 
== Checking out the code ==
 
<pre>
git clone https://github.com/01org/ocr.git
cd ocr
git branch sc14 --track origin/sc14
git checkout sc14
</pre>
 
== Environment setup ==
 
From the checked-out ocr folder setup the following environment variable.
 
<pre>
export OCR_INSTALL_ROOT=$PWD/install
export OCR_SRC=$PWD
export OCR_BUILD_ROOT=$PWD/build
export APPS_ROOT=$PWD/ocr-apps
</pre>
 
== Compiling and Running Applications ==
 
The ocr-apps folder contains various applications. Those applications
relies on pre-defined makefiles to ease compiling and linking against the OCR
interface.
 
The general pattern to get an OCR application to run is as follow:
* Select a target platform
* Invoke the corresponding Makefile to build the application
* Select an OCR configuration file
* Invoke the corresponding Makefile to run the application
 
For instance, the npbCG application defines Makefiles for the following targets:
* x86-pthread-x86: for shared-memory OCR
* x86-pthread-mpi: for distributed-memory OCR relying on MPI for communications.
 
Hence to build npbCG for distributed, one executes the following command:
 
<pre>
make -f Makefile.x86-pthread-mpi prerun install
</pre>
 
Note that the Makefile checks if the runtime needs to be built too.
 
Once the application is built for distributed a configuration file must be provided. OCR relies on text-based configuration files to setup runtime instances. Some sample configuration files are available under machine-configs/
 
<pre>
export OCR_CONFIG=/path/to/configfile
</pre>
 
Additionally, one can point to file containing hostname to use for the the distributed run
 
<pre>
export OCR_NODEFILE=/path/to/nodefile
</pre>
 
Running the application can be done through the Makefile system as well:
 
<pre>
make -f Makefile.x86-pthread-mpi run WORKLOAD_ARGS"-t B -b 1000"
</pre>

Revision as of 03:35, June 1, 2015

Announcement

  • OCR v1.0.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 github 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 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 June 2015

Links

  • The specification for OCR v1.0 can be downloaded here
  • The OCR source code is available as a git repository and can be cloned here
  • Getting started instructions are available here
  • Mailing lists are available here