public class Module1 extends Module0
runtimeInitialized
Modifier | Constructor and Description |
---|---|
protected |
Module1()
Private constructor to disallow instance creation.
|
Modifier and Type | Method and Description |
---|---|
static void |
async(HjSuspendable suspendable)
Creates a new asynchronous task to execute the wrapped statements.
|
static <T> void |
asyncAwait(HjFuture<T> f1,
HjFuture<T> f2,
HjFuture<T> f3,
HjSuspendable suspendable)
Construct to create an asynchronous task which is executed when all the futures are resolved.
|
static <T> void |
asyncAwait(HjFuture<T> f1,
HjFuture<T> f2,
HjSuspendable suspendable)
Construct to create an asynchronous task which is executed when both the futures are resolved.
|
static <T> void |
asyncAwait(HjFuture<T> f1,
HjSuspendable suspendable)
Construct to create an asynchronous task which is executed when the futureNb is resolved.
|
static <T> void |
asyncAwait(List<HjFuture<T>> dependences,
HjSuspendable suspendable)
Construct to create an asynchronous task which is executed when all the futureNb are resolved.
|
static void |
forall(HjRegion.HjRegion1D hjRegion,
HjSuspendingProcedureInt1D body)
Construct to represent loop-level parallelism.
|
static void |
forall(HjRegion.HjRegion2D hjRegion,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static void |
forall(HjRegion.HjRegion3D hjRegion,
HjSuspendingProcedureInt3D body)
Construct to represent loop-level parallelism.
|
static void |
forall(int startInc,
int endInc,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism.
|
static void |
forall(int s0,
int e0,
int s1,
int e1,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static <T> void |
forall(Iterable<T> iterable,
HjSuspendingProcedure<T> body)
Construct to represent loop-level parallelism.
|
static void |
forallChunked(HjRegion.HjRegion1D hjRegion,
HjSuspendingProcedureInt1D body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forallChunked(HjRegion.HjRegion2D hjRegion,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forallChunked(HjRegion.HjRegion3D hjRegion,
HjSuspendingProcedureInt3D body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forallChunked(int startInc,
int endInc,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forallChunked(int startInc,
int endInc,
int chunkSize,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forallChunked(int s0,
int e0,
int s1,
int e1,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism using chunking/grouping.
|
static void |
forasync(HjRegion.HjRegion1D hjRegion,
HjSuspendingProcedureInt1D body)
Construct to represent loop-level parallelism.
|
static void |
forasync(HjRegion.HjRegion2D hjRegion,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static void |
forasync(HjRegion.HjRegion3D hjRegion,
HjSuspendingProcedureInt3D body)
Construct to represent loop-level parallelism.
|
static void |
forasync(int startInc,
int endInc,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism.
|
static void |
forasync(int s0,
int e0,
int s1,
int e1,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static <T> void |
forasync(Iterable<T> iterable,
HjSuspendingProcedure<T> body)
Construct to represent loop-level parallelism.
|
static void |
forasyncChunked(HjRegion.HjRegion1D hjRegion,
HjSuspendingProcedureInt1D body)
Construct to represent loop-level parallelism.
|
static void |
forasyncChunked(HjRegion.HjRegion2D hjRegion,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static void |
forasyncChunked(HjRegion.HjRegion3D hjRegion,
HjSuspendingProcedureInt3D body)
Construct to represent loop-level parallelism.
|
static void |
forasyncChunked(int startInc,
int endInc,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism.
|
static void |
forasyncChunked(int startInc,
int endInc,
int chunkSize,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism.
|
static void |
forseq(HjRegion.HjRegion1D hjRegion,
HjSuspendingProcedureInt1D body)
Construct to represent a sequential loop while working with regions.
|
static void |
forseq(HjRegion.HjRegion2D hjRegion,
HjSuspendingProcedureInt2D body)
Construct to represent a sequential loop while working with regions.
|
static void |
forseq(HjRegion.HjRegion3D hjRegion,
HjSuspendingProcedureInt3D body)
Construct to represent a sequential loop while working with regions.
|
static void |
forseq(int startInc,
int endInc,
HjSuspendingProcedure<Integer> body)
Construct to represent loop-level parallelism.
|
static void |
forseq(int s0,
int e0,
int s1,
int e1,
HjSuspendingProcedureInt2D body)
Construct to represent loop-level parallelism.
|
static <T> void |
forseq(Iterable<T> iterable,
HjSuspendingProcedure<T> body)
Construct to represent loop-level parallelism.
|
static <V> HjFuture<V> |
future(HjSuspendingCallable<V> callable)
Construct to create an asynchronous task that returns a result which will be available in the futureNb.
|
static <T,V> HjFuture<V> |
futureAwait(HjFuture<T> f1,
HjFuture<T> f2,
HjFuture<T> f3,
HjSuspendingCallable<V> callable)
futureAwait.
|
static <T,V> HjFuture<V> |
futureAwait(HjFuture<T> f1,
HjFuture<T> f2,
HjSuspendingCallable<V> callable)
futureAwait.
|
static <T,V> HjFuture<V> |
futureAwait(HjFuture<T> f1,
HjSuspendingCallable<V> callable)
futureAwait.
|
static <T,V> HjFuture<V> |
futureAwait(List<HjFuture<T>> dependences,
HjSuspendingCallable<V> callable)
futureAwait.
|
abstractMetrics, asyncNb, asyncNbAt, asyncNbAwait, asyncNbAwait, asyncNbAwait, asyncNbAwait, asyncNbSeq, asyncNbSeq, asyncPhased, asyncPhased, asyncPhased, computeDefaultChunkSize, doWait, doWork, dumpEventLog, emergencyShutdown, finalizeHabanero, finish, finish, finish, finish, finish, forallNb, forallNb, forallNb, forallNb, forallNb, forallNb, forallNbChunked, forallNbChunked, forallNbChunked, forallNbChunked, forallNbChunked, forallNbChunked, forallPhased, forallPhased, forasync, forasyncChunked, forasyncNb, forasyncNb, forasyncNb, forasyncNb, forasyncNb, forasyncNbChunked, forasyncNbChunked, forasyncNbChunked, forasyncNbChunked, forasyncPhased, forasyncPhased, forasyncPhased, forseqNb, forseqNb, forseqNb, forseqNb, forseqNb, forseqNb, futureNb, futureNbAwait, futureNbAwait, futureNbAwait, futureNbAwait, futureNbSeq, futureNbSeq, group, group, here, initializeHabanero, launchHabaneroApp, launchHabaneroApp, myGroup, myGroup, newDataDrivenFuture, newDataDrivenFuture, newDDF, newDDF, newFinishAccumulator, newPhaser, newPhaser, newPoint, newRectangularRegion1D, newRectangularRegion2D, newRectangularRegion3D, next, numPlaces, numWorkerThreads, place, printBuildInfo, signal, waitAll, waitAny
public static void async(HjSuspendable suspendable)
Usage:
HjSuspendable aSuspendable = () -> { S1; };
async(aSuspendable);
OR
async(() -> S1);
OR
async(() -> {S1; S2;...});
Spawn a new child task to execute statements S1, S2, ... asynchronously (i.e., before, after, or in parallel)
with the remainder of the parent task.
In general, an HJ program can create an unbounded number of tasks
at runtime.
The HJ runtime system is responsible for scheduling these tasks on a fixed number of
processors.
suspendable
- a HjSuspendable
object.HjRuntime.asyncSuspAt(edu.rice.hj.api.HjPlace, edu.rice.hj.api.HjSuspendable)
public static <V> HjFuture<V> future(HjSuspendingCallable<V> callable)
HjCallable aCallable = () -> { return S1; };
HjFuture aFuture = future(aSuspendable);
OR
HjFuture aFuture = future(() -> { return S1; });
Support for async tasks with return values. aFuture
contains a "futureNb handle" to the newly created
task and the operation aFuture.get()
(also known as a force operation) can be performed to obtain the
result of the futureNb task.
The futureNb task executes statement S1 asynchronously (i.e., before, after,
or in parallel) with the remainder of the parent task.
In general, an HJ program can create an unbounded
number of futures at runtime.
The HJ runtime system is responsible for scheduling these futureNb tasks on
a fixed number of processors.
V
- a V object.callable
- a HjCallable
object.HjFuture
object.HjRuntime.futureSusp(edu.rice.hj.api.HjSuspendingCallable)
public static <T> void forseq(Iterable<T> iterable, HjSuspendingProcedure<T> body) throws SuspendableException
The semantics of
forseqNb(iterableOfT, (k) -> S2(k))
are as follows:
for (T k : iterableOfT) {
S2(k);
}
iterable
- a Iterable
object.body
- a HjSuspendingProcedure
object.SuspendableException
public static <T> void forall(Iterable<T> iterable, HjSuspendingProcedure<T> body) throws SuspendableException
The semantics of
forallNb(iterableOfT, (k) -> S2(k))
are as follows:
finish(() -> {
for (T k : iterableOfT) {
final T kk = k;
async(() -> {
S2(kk);
});
}
});
T
- a T object.iterable
- a Iterable
object.body
- a HjSuspendingProcedure
object.SuspendableException
forasync(Iterable, edu.rice.hj.api.HjSuspendingProcedure)
public static <T> void forasync(Iterable<T> iterable, HjSuspendingProcedure<T> body) throws SuspendableException
The semantics of
forasync(iterableOfT, (k) -> S2(k))
are as follows:
for (T k : iterableOfT) {
final T kk = k;
async(() -> {
S2(kk);
});
}
T
- a T object.iterable
- a Iterable
object.body
- a HjSuspendingProcedure
object.SuspendableException
public static void forseq(int startInc, int endInc, HjSuspendingProcedure<Integer> body) throws SuspendableException
The semantics of
forseq(startInc, endInc, (k) -> S2(k))
are as follows:
for (int k = startInc; k <= endInc; k++) {
S2(k);
}
startInc
- a int.endInc
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forall(int startInc, int endInc, HjSuspendingProcedure<Integer> body) throws SuspendableException
The semantics of
forallNb(startInc, endInc, (k) -> S2(k))
are as follows:
finish(() -> {
for (int k = startInc; k <= endInc; k++) {
final int kk = k;
async(() -> {
S2(kk);
});
}
});
startInc
- a int.endInc
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasync(int startInc, int endInc, HjSuspendingProcedure<Integer> body)
The semantics of
forasync(startInc, endInc, (k) -> S2(k))
are as follows:
for (int k = startInc; k <= endInc; k++) {
final int kk = k;
async(() -> {
S2(kk);
});
}
startInc
- a int.endInc
- a int.body
- a HjSuspendingProcedure
object.public static void forallChunked(int startInc, int endInc, HjSuspendingProcedure<Integer> body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
refer to forall(int, int, edu.rice.hj.api.HjSuspendingProcedure)
, forallChunked(int, int, int, edu.rice.hj.api.HjSuspendingProcedure)
, and forasyncChunked(int, int, int, edu.rice.hj.api.HjSuspendingProcedure)
startInc
- a int.endInc
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
public static void forallChunked(int startInc, int endInc, int chunkSize, HjSuspendingProcedure<Integer> body) throws SuspendableException
In this variant, the user has control over the chunk size used and hence the number of tasks created for the loop.
refer to forall(int, int, edu.rice.hj.api.HjSuspendingProcedure)
and forasyncChunked(int, int, int, edu.rice.hj.api.HjSuspendingProcedure)
startInc
- a int.endInc
- a int.chunkSize
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
public static void forasyncChunked(int startInc, int endInc, int chunkSize, HjSuspendingProcedure<Integer> body) throws SuspendableException
In this variant, the user has control over the chunk size used and hence the number of tasks created for the loop.
startInc
- a int.endInc
- a int.chunkSize
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
public static void forasyncChunked(int startInc, int endInc, HjSuspendingProcedure<Integer> body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
startInc
- a int.endInc
- a int.body
- a HjSuspendingProcedure
object.SuspendableException
forasyncChunked(int, int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forseq(HjRegion.HjRegion1D hjRegion, HjSuspendingProcedureInt1D body) throws SuspendableException
The semantics of
final HjRegion1D iterSpace = newRectangularRegion1D(startInc, endInc);
forseq(iterSpace, (k) -> S2(k))
are as follows:
for (int k = startInc; k <= endInc; k++) {
S2(k);
}
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
public static void forall(HjRegion.HjRegion1D hjRegion, HjSuspendingProcedureInt1D body) throws SuspendableException
The semantics of
final HjRegion1D iterSpace = newRectangularRegion1D(startInc, endInc);
forallNb(iterSpace, (k) -> S2(k))
are as follows:
finish(() -> {
for (int k = startInc; k <= endInc; k++) {
final int kk = k;
async(() -> {
S2(kk);
});
}
});
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasync(HjRegion.HjRegion1D hjRegion, HjSuspendingProcedureInt1D body)
The semantics of
final HjRegion1D iterSpace = newRectangularRegion1D(startInc, endInc);
forasync(iterSpace, (k) -> S2(k))
are as follows:
for (int k = startInc; k <= endInc; k++) {
final int kk = k;
async(() -> {
S2(kk);
});
}
hjRegion
- The region to loop overbody
- The body of the loopforasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forallChunked(HjRegion.HjRegion1D hjRegion, HjSuspendingProcedureInt1D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion1D
object.body
- a HjSuspendingProcedureInt1D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasyncChunked(HjRegion.HjRegion1D hjRegion, HjSuspendingProcedureInt1D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion1D
object.body
- a HjSuspendingProcedureInt1D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forseq(int s0, int e0, int s1, int e1, HjSuspendingProcedureInt2D body) throws SuspendableException
The semantics of
forallNb(s0, e0, s1, e1, (i, j) -> S2(i, j))
are as follows:
for (int i = s0; i <= e0; i++) {
for (int j = s1; j <= e1; j++) {
S2(i, j);
}
}
body
- The body of the loops0
- a int.e0
- a int.s1
- a int.e1
- a int.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forseq(HjRegion.HjRegion2D hjRegion, HjSuspendingProcedureInt2D body) throws SuspendableException
The semantics of
final HjRegion2D iterSpace = newRectangularRegion2D(s0, e0, s1, e1);
forseq(iterSpace, (i, j) -> S2(i, j))
are as follows:
for (int i = s0; i <= e0; i++) {
for (int j = s1; j <= e1; j++) {
S2(i, j);
}
}
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
public static void forall(int s0, int e0, int s1, int e1, HjSuspendingProcedureInt2D body) throws SuspendableException
The semantics of
forallNb(s0, e0, s1, e1, (i, j) -> S2(i, j))
are as follows:
finish(() -> {
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
async(() -> {
S2(ii, jj);
});
}
}
});
body
- The body of the loops0
- a int.e0
- a int.s1
- a int.e1
- a int.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forall(HjRegion.HjRegion2D hjRegion, HjSuspendingProcedureInt2D body) throws SuspendableException
The semantics of
final HjRegion2D iterSpace = newRectangularRegion2D(s0, e0, s1, e1);
forallNb(iterSpace, (i, j) -> S2(i, j))
are as follows:
finish(() -> {
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
async(() -> {
S2(ii, jj);
});
}
}
});
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasync(HjRegion.HjRegion2D hjRegion, HjSuspendingProcedureInt2D body)
The semantics of
final HjRegion2D iterSpace = newRectangularRegion2D(s0, e0, s1, e1);
forasync(iterSpace, (i, j) -> S2(i, j))
are as follows:
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
async(() -> {
S2(ii, jj);
});
}
}
hjRegion
- The region to loop overbody
- The body of the loopforasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasync(int s0, int e0, int s1, int e1, HjSuspendingProcedureInt2D body)
The semantics of
forasync(s0, e0, s1, e1, (i, j) -> S2(i, j))
are as follows:
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
async(() -> {
S2(ii, jj);
});
}
}
body
- The body of the loops0
- a int.e0
- a int.s1
- a int.e1
- a int.forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forallChunked(int s0, int e0, int s1, int e1, HjSuspendingProcedureInt2D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
s0
- a int.e0
- a int.s1
- a int.e1
- a int.body
- a HjSuspendingProcedureInt2D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forallChunked(HjRegion.HjRegion2D hjRegion, HjSuspendingProcedureInt2D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion2D
object.body
- a HjSuspendingProcedureInt2D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasyncChunked(HjRegion.HjRegion2D hjRegion, HjSuspendingProcedureInt2D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion2D
object.body
- a HjSuspendingProcedureInt2D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forseq(HjRegion.HjRegion3D hjRegion, HjSuspendingProcedureInt3D body) throws SuspendableException
The semantics of
final HjRegion3D iterSpace = newRectangularRegion3D(s0, e0, s1, e1, s2, e2);
forseq(iterSpace, (i, j, k) -> S2(i, j, k))
are as follows:
for (int i = s0; i <= e0; i++) {
for (int j = s1; j <= e1; j++) {
for (int k = s2; k <= e2; k++) {
S2(i, j, k);
}
}
}
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
public static void forall(HjRegion.HjRegion3D hjRegion, HjSuspendingProcedureInt3D body) throws SuspendableException
The semantics of
final HjRegion3D iterSpace = newRectangularRegion3D(s0, e0, s1, e1, s2, e2);
forallNb(iterSpace, (i, j, k) -> S2(i, j, k))
are as follows:
finish(() -> {
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
for (int k = s2; k <= e2; k++) {
final int kk = k;
async(() -> {
S2(ii, jj, kk);
});
}
}
}
});
hjRegion
- The region to loop overbody
- The body of the loopSuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasync(HjRegion.HjRegion3D hjRegion, HjSuspendingProcedureInt3D body)
The semantics of
final HjRegion3D iterSpace = newRectangularRegion3D(s0, e0, s1, e1, s2, e2);
forasync(iterSpace, (i, j, k) -> S2(i, j, k))
are as follows:
for (int i = s0; i <= e0; i++) {
final int ii = i;
for (int j = s1; j <= e1; j++) {
final int jj = j;
for (int k = s2; k <= e2; k++) {
final int kk = k;
async(() -> {
S2(ii, jj, kk);
});
}
}
}
hjRegion
- The region to loop overbody
- The body of the loopforasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forallChunked(HjRegion.HjRegion3D hjRegion, HjSuspendingProcedureInt3D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion3D
object.body
- a HjSuspendingProcedureInt3D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static void forasyncChunked(HjRegion.HjRegion3D hjRegion, HjSuspendingProcedureInt3D body) throws SuspendableException
The HJ runtime ensures that it does not create more tasks than the number of available worker threads for the loop.
hjRegion
- a HjRegion.HjRegion3D
object.body
- a HjSuspendingProcedureInt3D
object.SuspendableException
forasync(int, int, edu.rice.hj.api.HjSuspendingProcedure)
public static <T> void asyncAwait(HjFuture<T> f1, HjSuspendable suspendable)
f1
- The futureNb (or DDF) on which to register the callbacksuspendable
- The callback to execute asynchronously when the futureNb (or DDF) is resolvedHjRuntime.asyncSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendable)
public static <T> void asyncAwait(List<HjFuture<T>> dependences, HjSuspendable suspendable)
dependences
- a List
object.suspendable
- a HjSuspendable
object.HjRuntime.asyncSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendable)
public static <T> void asyncAwait(HjFuture<T> f1, HjFuture<T> f2, HjSuspendable suspendable)
f1
- The futureNb (or DDF) on which to register the callbackf2
- The futureNb (or DDF) on which to register the callbacksuspendable
- The callback to execute asynchronously when the both futures (or DDFs) are resolvedHjRuntime.asyncSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendable)
public static <T> void asyncAwait(HjFuture<T> f1, HjFuture<T> f2, HjFuture<T> f3, HjSuspendable suspendable)
f1
- The futureNb (or DDF) on which to register the callbackf2
- The futureNb (or DDF) on which to register the callbackf3
- The futureNb (or DDF) on which to register the callbacksuspendable
- The callback to execute asynchronously when the all futures (or DDFs) are resolvedHjRuntime.asyncSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendable)
public static <T,V> HjFuture<V> futureAwait(HjFuture<T> f1, HjSuspendingCallable<V> callable)
futureAwait.
V
- a V object.f1
- a HjFuture
object.callable
- a HjSuspendingCallable
object.HjFuture
object.HjRuntime.futureSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendingCallable)
public static <T,V> HjFuture<V> futureAwait(List<HjFuture<T>> dependences, HjSuspendingCallable<V> callable)
futureAwait.
V
- a V object.dependences
- a List
object.callable
- a HjSuspendingCallable
object.HjFuture
object.HjRuntime.futureSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendingCallable)
public static <T,V> HjFuture<V> futureAwait(HjFuture<T> f1, HjFuture<T> f2, HjSuspendingCallable<V> callable)
futureAwait.
V
- a V object.f1
- a HjFuture
object.f2
- a HjFuture
object.callable
- a HjSuspendingCallable
object.HjFuture
object.HjRuntime.futureSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendingCallable)
public static <T,V> HjFuture<V> futureAwait(HjFuture<T> f1, HjFuture<T> f2, HjFuture<T> f3, HjSuspendingCallable<V> callable)
futureAwait.
V
- a V object.f1
- a HjFuture
object.f2
- a HjFuture
object.f3
- a HjFuture
object.callable
- a HjSuspendingCallable
object.HjFuture
object.HjRuntime.futureSuspAwait(java.util.List, edu.rice.hj.api.HjSuspendingCallable)
Copyright © 2015 Rice University - Department of Computer Science. All rights reserved.