4.0.0 GRAM Throughput Statistics

Test Machine Specifications

All tests were done on ruly.mcs.anl.gov, running Red Hat Linux release 7.3 with two Intel(R) Xeon(TM) CPUs at 2.20 GHz, and sporting 2 GB of RAM.

Test Description

Results were obtained by sustaining a job load N from 1 to 128 by 2n (1,2,4,...,128) for 15 minutes. The number of client threads M were also varied from 1 to 128 by 2n giving actual sustained loads of N * M. For example, if 4 client threads (M) are started with a job load value of 64 (N), then in total there would be in general 4 * 64 = 256 jobs being operated on by the service through the duration of the test.

More specifically, each thread doesn't necessarily submit just N jobs for the entire duration of the test. When one or more jobs finish (i.e. the load becomes less than N), the client thread that "owns" the jobs destroys the job resources and starts new jobs until the load is back to N. When the test duration expires and at least N jobs were submitted for each client, then the submission rate is calculated by dividing the actual test duration by the total number of jobs submitted among all of the M client threads (i.e. at least but can be greater than M*N).

The results below show submission rates in jobs per minute.

The first set of results are for simple sleep-for-five-seconds jobs with no delegation done. The second set are for simple jobs that share a delegated credential. The third set are for jobs which stage in the echo tool to a new job directory, run the echo command with boring output, and then stage out their stdout and stderr files (all using a shared credential to contact RFT). The cells labeled "Serv. OOM" and "Cli. OOM" are tests which failed to complete because of a java.lang.OutOfMemoryError on the service and client respectively with the default heap size. The cells labeled "N/A" are tests which were not attempted because of assumed failure.

Throughput Without Delegation for Simple Job
N/A Number of Client Threads (M)
1 2 4 8 16 32 64 128
Sustained Job Load Per Client Thread (N) 1 9 15 30 57 72 67 63 Cli. OOM
2 15 30 5572 69 62 34 Serv. OOM
4 30 58 73 71 65 Serv. OOM Serv. OOM N/A
8 58 74 69 68 Serv. OOM N/A N/A N/A
16 71 72 66 Serv. OOM N/A N/A N/A N/A
32 68 68 Serv. OOM N/A N/A N/A N/A N/A
64 68 Serv. OOM N/A N/A N/A N/A N/A N/A
128 44 N/A N/A N/A N/A N/A N/A N/A

Throughput With Shared Delegation for Simple Job
N/A Number of Client Threads (M)
1 2 4 8 16 32 64 128
Sustained Job Load Per Client Thread (N) 1 7 15 29 55 72 67 62 N/A
2 15 30 5770 68 61 Serv. OOM N/A
4 29 51 72 71 65 N/A N/A N/A
8 59 72 69 67 Serv. OOM N/A N/A N/A
16 70 71 64 N/A N/A N/A N/A N/A
32 66 66 Serv. OOM N/A N/A N/A N/A N/A
64 68 N/A N/A N/A N/A N/A N/A N/A
128 35 N/A N/A N/A N/A N/A N/A N/A

Throughput With Staging for a Simple Job
  Number of Client Threads (M)
1 2 4 8 16 32 64 128
Sustained Job Load Per Client Thread (N) 1 5 9 11 9 9 8 6 N/A
2 8 11 1110 9 6 Serv. OOM N/A
4 11 11 10 10 9 N/A N/A N/A
8 11 10 9 8 2 N/A N/A N/A
16 10 9 8 N/A N/A N/A N/A N/A
32 9 8 5 N/A N/A N/A N/A N/A
64 8 N/A N/A N/A N/A N/A N/A N/A
128 5 N/A N/A N/A N/A N/A N/A N/A