public class Task
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
name
Task name
|
Constructor and Description |
---|
Task()
Default constructor (all fields to 0 or null)
|
Task(java.lang.String name,
double flopsAmount,
double bytesAmount)
Construct a new task with the specified processing amount and amount
of data needed.
|
Task(java.lang.String name,
Host[] hosts,
double[] flopsAmount,
double[] bytesAmount)
Construct a new parallel task with the specified processing amount and amount for each host
implied.
|
Modifier and Type | Method and Description |
---|---|
void |
cancel()
Cancels a task.
|
void |
dsend(java.lang.String mailbox)
Send the task asynchronously on the specified mailbox,
with no way to retrieve whether the communication succeeded or not
|
void |
dsendBounded(java.lang.String mailbox,
double maxrate)
Send the task asynchronously on the specified mailbox,
with no way to retrieve whether the communication succeeded or not
|
void |
execute()
Executes a task on the location on which the current process is running.
|
protected void |
finalize()
Deletes a task once the garbage collector reclaims it
|
double |
getFlopsAmount()
Gets the remaining amount of flops to execute in this task
If it's ongoing, you get the exact amount at the present time.
|
double |
getMessageSize() |
java.lang.String |
getName()
Gets the name of the task
|
Process |
getSender()
Gets the sender of the task (or null if not sent yet)
|
Host |
getSource()
Gets the source of the task (or null if not sent yet).
|
static Comm |
irecv(java.lang.String mailbox)
Starts listening for receiving a task from an asynchronous communication
|
static Comm |
irecvBounded(java.lang.String mailbox,
double rate)
Starts listening for receiving a task from an asynchronous communication with a capped rate
|
Comm |
isend(java.lang.String mailbox)
Sends the task on the mailbox asynchronously
|
Comm |
isendBounded(java.lang.String mailbox,
double maxrate)
Sends the task on the mailbox asynchronously (capping the sending rate to \a maxrate)
|
static boolean |
listen(java.lang.String mailbox)
Listen whether there is a task waiting (either for a send or a recv) on the mailbox identified by the specified alias
|
static int |
listenFrom(java.lang.String mailbox)
Tests whether there is a pending communication on the mailbox identified by the specified alias, and who sent it
|
protected void |
nativeFinalize() |
static void |
nativeInit()
Class initializer, to initialize various JNI stuff
|
static Task |
receive(java.lang.String mailbox)
Retrieves next task on the mailbox identified by the specified alias
|
static Task |
receive(java.lang.String mailbox,
double timeout)
Retrieves next task on the mailbox identified by the specified alias (wait at most \a timeout seconds)
|
static Task |
receiveBounded(java.lang.String mailbox,
double rate)
Retrieves next task from the mailbox identified by the specified name with a capped rate
|
static Task |
receiveBounded(java.lang.String mailbox,
double timeout,
double rate)
Retrieves next task on the mailbox identified by the specified name (wait at most \a timeout seconds) with a capped rate
|
void |
send(java.lang.String mailbox)
Sends the task on the specified mailbox
|
void |
send(java.lang.String mailbox,
double timeout)
Sends the task on the specified mailbox (wait at most \a timeout seconds)
|
void |
sendBounded(java.lang.String mailbox,
double maxrate)
Sends the task on the specified mailbox (capping the sending rate to \a maxrate)
|
void |
sendBounded(java.lang.String mailbox,
double timeout,
double maxrate)
Sends the task on the specified mailbox (capping the sending rate to \a maxrate) with a timeout
|
void |
setBound(double bound)
Changes the maximum CPU utilization of a computation task.
|
void |
setBytesAmount(double bytesAmount)
Set the amount of bytes to exchange the task
Warning if the communication is already started and ongoing, this call does nothing.
|
void |
setFlopsAmount(double flopsAmount)
Set the computation amount needed to process the task
Warning if the execution is already started and ongoing, this call does nothing.
|
void |
setName(java.lang.String name)
Sets the name of the task
|
void |
setPriority(double priority)
This method sets the priority of the computation of the task.
|
public Task()
public Task(java.lang.String name, double flopsAmount, double bytesAmount)
name
- Task's nameflopsAmount
- A value of the processing amount (in flop) needed to process the task.
If 0, then it cannot be executed with the execute() method.
This value has to be ≥ 0.bytesAmount
- A value of amount of data (in bytes) needed to transfert this task.
If 0, then it cannot be transfered with the get() and put() methods.
This value has to be ≥ 0.public Task(java.lang.String name, Host[] hosts, double[] flopsAmount, double[] bytesAmount)
name
- The name of the parallel task.hosts
- The list of hosts implied by the parallel task.flopsAmount
- The amount of operations to be performed by each host of hosts.
flopsAmount[i] is the total number of operations that have to be
performed on hosts[i].bytesAmount
- A matrix describing the amount of data to exchange between hosts. The
length of this array must be hosts.length * hosts.length. It is actually
used as a matrix with the lines being the source and the columns being
the destination of the communications.public java.lang.String getName()
public Process getSender()
public Host getSource()
public double getFlopsAmount()
public void setName(java.lang.String name)
name
- the new task namepublic void setPriority(double priority)
priority
- The new priority of the task.public void setFlopsAmount(double flopsAmount)
flopsAmount
- the amount of computation needed to process the taskpublic void setBytesAmount(double bytesAmount)
bytesAmount
- the size of the taskpublic void execute() throws HostFailureException, TaskCancelledException
public void setBound(double bound)
public void cancel()
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
protected void nativeFinalize()
public void dsendBounded(java.lang.String mailbox, double maxrate)
public void dsend(java.lang.String mailbox)
public void send(java.lang.String mailbox) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- where to send the messageTimeoutException
HostFailureException
TransferFailureException
public void send(java.lang.String mailbox, double timeout) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- where to send the messagetimeout
- TimeoutException
HostFailureException
TransferFailureException
public void sendBounded(java.lang.String mailbox, double maxrate) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- where to send the messagemaxrate
- TransferFailureException
HostFailureException
TimeoutException
public void sendBounded(java.lang.String mailbox, double timeout, double maxrate) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- where to send the messagetimeout
- maxrate
- TransferFailureException
HostFailureException
TimeoutException
public Comm isend(java.lang.String mailbox)
public Comm isendBounded(java.lang.String mailbox, double maxrate)
public static Comm irecv(java.lang.String mailbox)
mailbox
- public static Task receive(java.lang.String mailbox) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- TransferFailureException
HostFailureException
TimeoutException
public static Task receive(java.lang.String mailbox, double timeout) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- timeout
- TransferFailureException
HostFailureException
TimeoutException
public static Comm irecvBounded(java.lang.String mailbox, double rate)
mailbox
- public static Task receiveBounded(java.lang.String mailbox, double rate) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- TransferFailureException
HostFailureException
TimeoutException
public static Task receiveBounded(java.lang.String mailbox, double timeout, double rate) throws TransferFailureException, HostFailureException, TimeoutException
mailbox
- timeout
- TransferFailureException
HostFailureException
TimeoutException
public static int listenFrom(java.lang.String mailbox)
public static boolean listen(java.lang.String mailbox)
public static void nativeInit()
public double getMessageSize()