You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Habanero-C is a project designed to add the Habanero parallelism constructs to the C language.

Habanero-C has two basic primitives for the task parallel
programming model borrowed from X10: \textsf

Unknown macro: {async}

and \textsf

Unknown macro: {finish}

.
The

Unknown macro: {sf async}

statement,

Unknown macro: {em async $langle$stmt$rangle$}

, causes the
parent task to fork a new child task that executes

Unknown macro: {em                                                                                                                                                                             $langle$stmt$rangle$}

. Execution of the

statement
returns immediately, i.e., the parent task can proceed to its
following statement without waiting for the child task to complete.
The

Unknown macro: {sf finish}

statement,

Unknown macro: {em finish $langle$stmt$rangle$}

,
performs a join operation that causes the parent task to execute

Unknown macro: {em                                                                                                                                                               $langle$stmt$rangle$}

and then wait until all the tasks created
within

Unknown macro: {em $langle$stmt$rangle$}

have terminated (including
transitively spawned tasks).
Habanero-C has two basic primitives for the task parallel programming model borrowed from X10: async and finish. The async statement, async <stmt>, causes the parent task to fork a new child task that executes <stmt>. Execution of the async statement returns immediately, i.e., the parent task can proceed to its following statement without waiting for the child task to complete.

The finish statement, finish <stmt>, performs a join operation that causes the parent task to execute <stmt> and then wait until all the tasks created within <stmt> have terminated (including transitively spawned tasks).

The Habanero-C runtime is written completely in ANSI C, with a couple of library routines for low-level synchronization and atomic operations written in assembly language.

The Habanero-C compiler is written in C++ and is built on top of the ROSE optimizing compiler infrastructure.

Habanero-C has been ported and tested on Intel X86, Cyclops 64 and Intel SCC multicore platforms.

Habanero-C implementation is very much in a preliminary phase and constantly evolving. If you would like to try it, please contact one of the project leads (Vivek Sarkar, Zoran Budimlic, Yonghong Yan or Vincent Cave) to gain access to the svn repository.

  • No labels