
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, waitAnypublic 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.SuspendableExceptionpublic 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.SuspendableExceptionforasync(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.SuspendableExceptionpublic 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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionpublic 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.SuspendableExceptionpublic 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.SuspendableExceptionpublic 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.SuspendableExceptionforasyncChunked(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 loopSuspendableExceptionpublic 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 loopSuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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 loopSuspendableExceptionpublic 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.SuspendableExceptionforasync(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 loopSuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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 loopSuspendableExceptionpublic 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 loopSuspendableExceptionforasync(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.SuspendableExceptionforasync(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.SuspendableExceptionforasync(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.