To gauge the performance of both GridFactory and virtualization layers in a high-CPU/low-throughput setting, we chose the standard ray-tracing program POV-Ray and a standard benchmarking image, shipped with the program.
The standard image that was rendered.
This example is a fairly naive benchmarking exercise consisting simply in rendering the same image with POV-Ray 20 times. Each POV-Ray job used a 24 kB input file and generated a 128×96 pixel image of 28 kB as output.
We first ran on a small GridFactory cluster: The cluster consisted of older hardware: a Pentium 4 server with 500 MB of RAM and Pentium 4 worker nodes, each with 1 GB of RAM and running one job at a time in a VirtualBox CentOS-5.4 virtual machine.
Each job consumed 171-184 seconds of CPU time. The submission time for a single job was 16 seconds and for 20 jobs submitted in 5 parallel threads, 60-74 seconds. The total execution time per job, i.e. the time it took for a job to go through the full cycle of submission, pick-up by a WN and upload of output file to the server, was 401-422 seconds. That is, there’s an overhead of around 250 seconds involved for each job. 20 jobs were run and timed on 2, 4, 6, 8 and10 nodes. The result is plotted below.
Total execution time for rendering a test image as a function of number of nodes in a GridFactory cluster.
For comparison we ran the same 20 jobs via ARC on the same hardware – 13 nodes with no virtualization involved. In this case, submission took 37 seconds, each job consumed 104 -145 seconds of CPU time and the total execution time of each job was 378 seconds.
If we extrapolate the GridFactory execution times to 13 nodes we get ~590 seconds or 212 seconds (~50%) more than the ARC execution time. Of this, the virtualization overhead for each job is approximately 53 seconds. For 13 nodes we have two ‘generations’ of jobs and thus the total virtualization overhead amounts to ~106 seconds. This means that the pull architecture of GridFactory has an overhead of about 5 seconds per job as compared to the push architecture of ARC.
Notice that the runs described above don’t use the application available in the GridPilot app store. Runs using this application will be described in a future post.