This chapter has described the theoretical concepts and methodology required for high-fidelity rendering. Point sampling methods for solving the rendering equation, which have been adapted for shared computing resources as described in this thesis, have been presented. Previous techniques for accelerating render- ing by employing sparse sampling, image reconstruction and parallel rendering have also been discussed. The next chapter will provide an overview on shared computing resources and also explain why the traditional rendering algorithms are not suited for using such parallel resources.
CHAPTER 3
Computing on Shared Resources
This chapter presents an overview of shared computational resources. It begins by categorising different types of grids before describing computational and desk- top grids. Subsequently, traditional fault-tolerance techniques: replication and checkpointing are discussed. Next, the master-worker paradigm for computing on shared resources is presented. This is followed by a description of two grid mid- dlewares: Globus and Condor, which have been employed in this thesis. Finally, a discussion on parallel rendering on shared resources is presented.
3.1
Taxonomy of Grid Computing
Grid computing can be classified into two broad categories: computational grids and desktop grids (see Figure 3.1). A computational grid usually refers to shar- ing of dedicated resources while a desktop grid refers to sharing of non-dedicated resources. A desktop grid can be further distinguished into Internet-based and LAN-based, depending on the type of interconnect used for communication be-
Grid Computing
Computational Grid Desktop Grid
Internet-based LAN-based
Figure 3.1: Grid computing taxonomy
3. Computing on Shared Resources 32
tween the resources. The following subsections present a further comparison among these types of grid computing to elucidate the differences.
3.1.1
Computational Grid vs. Desktop Grids
The main point of differentiation between a desktop grid and a computational grid is the underlying resources which provide the computational power. A desktop grid is powered by idle CPU cycles of commodity workstations while a compu- tational grid usually uses compute cycles from clusters and supercomputers. A computational grid may additionally also combine databases and scientific equip- ment, which are shared across institutions. These resources are connected via dedicated high speed networks. In contrast, desktop grid resources are connected via non-dedicated networks.
The volatility of desktop grid resources is considerably higher than those on a computational grid. This is due to the fact that the resource providers in a computational grid are trustworthy in comparison to a desktop grid and they are sometimes required to commit to service level agreements before being allowed to be a part of it. On the other hand, the resources in a desktop grid only provide compute power when not being used by the owner, which is the root cause for volatility of such resources. Furthermore, computational grids sometimes provide facilities for reserving the resources in advance such that they can be dedicated for a specific user application. Hence, computational grids are more reliable than a desktop grid. This attribute is further corroborated by the fact that computational grids have been targeted towards high performance computing while desktop grids have been typically employed for high throughput computing [Cho07].
3.1.2
Internet-based vs. LAN-based Desktop Grids
A desktop grid can be further distinguished into Internet-based and LAN-based [Cho07]. An Internet-based desktop grid is powered by CPU cycles donated by desktop machines of volunteers across the globe, while a LAN-based desktop grid typically uses workstations within an institution such as a university or an office. An Internet-based desktop grid is the cheapest option for grid computing from the user perspective, as the resources are owned and maintained by volunteers. But the main issue is that the user application needs to be appealing enough to gen-
3. Computing on Shared Resources 33
erate sustainable interest from volunteers, for example SETI@Home [ACK∗02], FightAIDS@home [CLOB07] and Genome@home [LSS∗04]. The primary func- tion for machines on a LAN-based desktop grid is not to be a part of it, but they may be personal workstations of the staff in an institute or machines in a student lab or an office. Hence, they are suitable for running any applications which the institution deems useful.
An application employing an Internet-based desktop grid generates interest by giving credits to the volunteers for successfully completed computations. The ap- plication thus needs to incorporate result verification strategies to prevent against malicious volunteers who tamper with the normal execution of the application to gain more credits. This results in a loss of useful computation, since many copies of same task are generally computed and the most common result is accepted to be correct [DSMS07]. In contrast, as a LAN-based desktop grid is created by an institutional policy rather than on voluntary basis, and thus such a need for cross checking the results does not arise. Furthermore, Internet-based desk- top grid applications need to support a large variety of platforms and processors while the heterogeneity of resources in a LAN-based desktop grid is limited. As an example, BOINC projects [And04] list about 4400 variations of host CPUs and 64 different operating systems [BOI10].