Modelling of A-Brain MULM application execution times and output file

May 2, 2012 - Ratios below 0.8 need to be investigated, it may due to small values, in which ... F-statistic: 7.282e+04 on 7 and 897 DF, p-value: < 2.2e-16.
279KB taille 2 téléchargements 144 vues
Modelling of A-Brain MULM application execution times and output file sizes Louis-Claude Canon May 2, 2012 The MULM application was launched on the Grid5000 paradent cluster using OrangeFS 2.8.5 for storing all the data on top of a squeeze-nfs image. The number of voxel chunks was put to 8, the number of cores per processor on paradent, and the number of snp chunks was put to 5, the number of nodes. Each map task run in a single wave on each core and one combiner per node was launched. The numbers of voxels, of snp and of permutations were drawn uniformly in between 1 and 10000, 10000 and 199 (50000 in the true image, almost 500000 in the true genetic data and at least 10000 permutations in practice).

1

Map execution times

Let’s take a first look at the durations when executing map. > D names(D) plot(~voxel + snp + perm + time, data = D, cex = 0.1)

1

Let’s also take a look at the proportion of user time in the total time. > plot.ecdf(D[, "user"]/D[, "time"], cex = 0.1)

2

0.0

0.2

0.4

Fn(x)

0.6

0.8

1.0

ecdf(x)

0.6

0.7

0.8

0.9

1.0

x Ratios below 0.8 need to be investigated, it may due to small values, in which case we can discard them (in practice, there is only large values). > fivenum(D[D[, "user"]/D[, "time"] < 0.8, "time"]) [1] 2.07 2.20 2.28 4.13 4.51 > fivenum(D[D[, "user"]/D[, "time"] > 0.95, "time"]) [1]

13.77

28.30

38.09

66.02 173.79

> nrow(D[D[, "user"]/D[, "time"] > 0.95, ])/nrow(D) [1] 0.6284722 > D 0.95, ] The assumptions is that the execution time is linear in the number of voxels, snp and permutations. > summary(fit |t|) (Intercept) 1.334e+01 2.178e+00 6.124 1.36e-09 I(voxel/8) -1.707e-02 2.838e-03 -6.014 2.64e-09 I(snp/5) -9.281e-03 1.637e-03 -5.670 1.93e-08 perm -8.857e-02 1.537e-02 -5.763 1.14e-08 I(voxel/8):I(snp/5) 1.491e-05 1.982e-06 7.521 1.32e-13 I(voxel/8):perm 1.560e-04 1.933e-05 8.070 2.25e-15 I(snp/5):perm 1.284e-04 1.196e-05 10.733 < 2e-16 I(voxel/8):I(snp/5):perm 4.028e-07 1.420e-08 28.371 < 2e-16 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

*** *** *** *** *** *** *** ***

Residual standard error: 1.529 on 897 degrees of freedom Multiple R-squared: 0.9982, Adjusted R-squared: 0.9982 F-statistic: 7.282e+04 on 7 and 897 DF, p-value: < 2.2e-16 The R-squared is excellent. Let’s focus on the most important relation with an intercept in zero. > summary(fit |t|) I(voxel/8 * snp/5 * perm) 6.276e-07 1.828e-09 343.2 D names(D) plot(~voxel + snp + perm + size, data = D, cex = 0.1) 4

The assumptions is that the same for the model. > summary(fit |t|) I(voxel/8 * snp/5 * perm) 8.490e-04 3.838e-07 2212 D names(D) summary(fit |t|) I(voxel/8 * snp/5 * perm) 8.988e-09 6.268e-10 14.34 fivenum(D[, "time"]) [1] 0.930 0.985 1.020 1.080 1.250 The R-squared is low but values are low. With realistic values, the aggregated execution time for all combiners could be around 26.00767 days. > summary(fit |t|) (Intercept) 9.273e-01 4.098e-03 226.303 < 2e-16 I(voxel/8) -2.652e-06 5.965e-06 -0.445 0.6572 I(snp/5) -1.523e-06 5.637e-06 -0.270 0.7873 perm 6.756e-04 5.105e-05 13.234 < 2e-16 I(voxel/8):I(snp/5) 1.357e-08 6.545e-09 2.073 0.0397 I(voxel/8):perm 1.213e-07 6.831e-08 1.776 0.0775 I(snp/5):perm 1.521e-07 5.552e-08 2.740 0.0068 I(voxel/8):I(snp/5):perm 3.032e-10 6.782e-11 4.471 1.41e-05 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

6

***

*** * . ** ***

Residual standard error: 0.00807 on 172 degrees of freedom Multiple R-squared: 0.985, Adjusted R-squared: 0.9844 F-statistic: 1612 on 7 and 172 DF, p-value: < 2.2e-16 The intercept has actually a significant impact on the value. This confirms that there is some start-up time that is not hidden by the actual computation. Larger experiments could provide a better model.

4

Combiner output sizes

> D names(D) summary(fit |t|) (Intercept) 1.008e+02 5.675e+02 0.178 0.859224 I(voxel/8) 1.112e+00 8.261e-01 1.346 0.179913 I(snp/5) 4.807e+00 7.806e-01 6.158 5.04e-09 perm 2.618e+01 7.070e+00 3.704 0.000286 I(voxel/8):I(snp/5) 2.026e-02 9.064e-04 22.349 < 2e-16 I(voxel/8):perm -8.922e-03 9.460e-03 -0.943 0.346937 I(snp/5):perm -8.059e-03 7.689e-03 -1.048 0.296089 I(voxel/8):I(snp/5):perm 1.631e-05 9.393e-06 1.737 0.084222 --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1118 on 172 degrees of freedom Multiple R-squared: 0.9942, Adjusted R-squared: 0.994 F-statistic: 4224 on 7 and 172 DF, p-value: < 2.2e-16 It seems that permutations have no impact. > summary(fit |t|) I(voxel/8 * snp/5) 0.0288440 0.0003626 79.54 D names(D) fivenum(D[, "time"]) [1] 0.430 0.450 0.465 0.470 0.490 The values are too small for modelling.

6

Conclusion

Given the settings of a MULM execution, a linear model predicts with good precision the significant part of the computation: the duration of each map and the size of their output files.

8