Difference between revisions of "Habanero"
Line 11: | Line 11: | ||
Futures create tasks that return a value. | Futures create tasks that return a value. | ||
− | [http://www.cse.wustl.edu/~cosgroved/courses/cse231/s17/javadocs/edu/wustl/cse231s/rice/classic/HabaneroClassic.html#future-edu.rice.hj.api.HjSuspendingCallable- future(body)] returns an [http://www.cs.rice.edu/~vs3/hjlib/doc/edu/rice/hj/api/HjFuture.html HjFuture] | + | [http://www.cse.wustl.edu/~cosgroved/courses/cse231/s17/javadocs/edu/wustl/cse231s/rice/classic/HabaneroClassic.html#future-edu.rice.hj.api.HjSuspendingCallable- future(body)] returns an instance of [http://www.cs.rice.edu/~vs3/hjlib/doc/edu/rice/hj/api/HjFuture.html HjFuture]. Invoking the [http://www.cs.rice.edu/~vs3/hjlib/doc/edu/rice/hj/api/HjFuture.html#get-- get()] method on that instance waits for the task to complete. |
Futures are covered in [https://edge.edx.org/courses/RiceX/COMP322/1T2014R/courseware/a900dd0655384de3b5ef01e508ea09d7/9eacfea8754549a4bc42918149130a74/1 RiceX Topic 2.1]. | Futures are covered in [https://edge.edx.org/courses/RiceX/COMP322/1T2014R/courseware/a900dd0655384de3b5ef01e508ea09d7/9eacfea8754549a4bc42918149130a74/1 RiceX Topic 2.1]. |
Revision as of 05:48, 3 March 2017
Async, Finish
Async and finish make up the fundamental building blocks of task-level parallelism in Habanero.
async(body) creates a new child task that can run before, after, or in parallel with all remaining statements of the parent task.
finish(body) executes body and waits for all child tasks to complete.
These concepts are first covered in RiceX Topic 1.1.
Future
Futures create tasks that return a value.
future(body) returns an instance of HjFuture. Invoking the get() method on that instance waits for the task to complete.
Futures are covered in RiceX Topic 2.1.
FinishAccumulator
Finish Accumulators provide a convenient way to keep track of a count (for example: the number of solutions in the n-queens problem) or perform a reduction as in the MapReduce_Assignment.
finish(register(accumulators), body)
FinishAccumulators are covered in RiceX Topic 2.3.