Package jline.api.fj
Class FJ_parallel
java.lang.Object
jline.api.fj.FJ_parallel
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class[C, I, Cend, E] of fj_dag_makespan.static final classEverything Green's cycle decomposition produces.static final class[Rreq, Rtask, Q, p] of fj_respt_bulk.static final class[R, rho] of fj_respt_nosplit.static final class[P, delay, Rtot] of fj_serialization.static final class[Lmax, Llp, Lfcfs, states, prob] of fj_tsm_capacity. -
Method Summary
Modifier and TypeMethodDescriptionfj_dag_makespan(boolean[][] pred, double[][] rate) Makespan of a task system with precedence constraints.static FJ_parallel.FJIsmGreenResultfj_ism_green(double lambda, double mu, int s, double[] c) Green's independent server model: a customer needs j servers at once with probability c(j) and releases them asynchronously as each of its j tasks completes at rate mu, so its own service is the maximum of j exponentials.fj_respt_bulk(int K, double lambda, double mu, int c) fj_respt_bulk(int K, double lambda, double mu, int c, int nmax) Centralized splitting as an M[K]/M/c bulk arrival system, solved by truncating the level chain.fj_respt_nosplit(int K, double lambda, double mu) Distributed no splitting: a job of K tasks goes in one piece to a single server chosen uniformly among the K, which is an M/E_K/1 queue and reduces to R = [ K - (K-1) rho/2 ] / (mu - lambda).fj_serialization(double[] Rs, double R0, int M) fj_serialization(double[] Rs, double R0, int M, double alpha) Blocking probability and pseudoserver delay of serialization phases: P_s(M) = 1 - [ 1 - R_s(M)/R(M) ]^(M-1), with the delay charged at the pseudoserver equal to alpha R_s(M).fj_tsm_capacity(int s, double[] f, int[] r, double[] x) Saturation throughput of the team service model.
-
Method Details
-
fj_respt_nosplit
Distributed no splitting: a job of K tasks goes in one piece to a single server chosen uniformly among the K, which is an M/E_K/1 queue and reduces to R = [ K - (K-1) rho/2 ] / (mu - lambda). -
fj_respt_bulk
public static FJ_parallel.FJResptBulkResult fj_respt_bulk(int K, double lambda, double mu, int c, int nmax) Centralized splitting as an M[K]/M/c bulk arrival system, solved by truncating the level chain. The request response time is the completion of the LAST of the K tasks: by PASTA the batch finds n tasks in system, its last task is the (n+K)-th in line, and under first come first served with c exponential servers it starts after max(0, n+K-c) departures, each an exponential of rate c mu. -
fj_respt_bulk
-
fj_ism_green
public static FJ_parallel.FJIsmGreenResult fj_ism_green(double lambda, double mu, int s, double[] c) Green's independent server model: a customer needs j servers at once with probability c(j) and releases them asynchronously as each of its j tasks completes at rate mu, so its own service is the maximum of j exponentials. E[B] is the j-th order statistic of s exponentials, because all s servers are busy whenever a customer enters service during a queueing period; E[D] is the initial delay of the customer that starts one; and the waiting-time transform factors into the equilibrium transform of D and the Pollaczek-Khinchine transform with service B, so the means add. Eq. (65) of the survey prints the inner sum of E[D] as starting at 1/(s mu) even though only i servers are busy; it is started at 1/(i mu) here, which is what the accompanying text prescribes. -
fj_tsm_capacity
public static FJ_parallel.FJTsmCapacityResult fj_tsm_capacity(int s, double[] f, int[] r, double[] x) Saturation throughput of the team service model. The apparent rate Lambda_max = s / sum_k f(k) r(k) x(k) is attainable only when the scheduler can pack jobs into execution states that leave no server idle; the attainable capacity is the optimum of max Lambda s.t. sum_j p_j n(j,k)/x(k) = Lambda f(k), sum_j p_j = 1, p >= 0 over the multisets of jobs whose total server demand is at most s. For the two-server two-class case with r = (1,2), strict first come first served cannot pack at all and reaches only the printed lambda_FCFS. -
fj_serialization
public static FJ_parallel.FJSerializationResult fj_serialization(double[] Rs, double R0, int M, double alpha) Blocking probability and pseudoserver delay of serialization phases: P_s(M) = 1 - [ 1 - R_s(M)/R(M) ]^(M-1), with the delay charged at the pseudoserver equal to alpha R_s(M). -
fj_serialization
-
fj_dag_makespan
Makespan of a task system with precedence constraints. The chain whose state is the SET of completed tasks is acyclic, so it is swept level by level: task i among the k eligible completes at rate rate[i][k-1], the state is held for 1/T(S), and p(R) = sum p(S) b(S,R), D(R) = M(R) p(R) + sum b(S,R) D(S), started at p(empty) = 1. Making the rate depend on the concurrency is what couples the task system to the queueing network underneath it.
-