Render farm

Last updated
Render farm in Madrid, 2008 Render farm (2825013521).jpg
Render farm in Madrid, 2008

A render farm is a high-performance computer system, e.g. a computer cluster, built to render computer-generated imagery (CGI), typically for film and television visual effects.

Contents

A render farm is different from a render wall, which is a networked, tiled display used for real-time rendering. [1] The rendering of images is a highly parallelizable activity, as frames and sometimes tiles can be calculated independently of the others, with the main communication between processors being the upload of the initial source material, such as models and textures, and the download of the finished images.

Render capacity

Over the decades, advances in computer capability have allowed an image to take less time to render. However, the increased computation is appropriated to meet demands to achieve state-of-the-art image quality. While simple images can be produced rapidly, more realistic and complicated higher-resolution images can now be produced in more reasonable amounts of time. The time spent producing images can be limited by production time-lines and deadlines, and the desire to create high-quality work drives the need for increased computing power, rather than simply wanting the same images created faster. Project such as the Big and Ugly Rendering Project have been available for rendering images using Blender across both widely distributed networks and local networks. [2]

Management

To manage large farms, a queue manager is required that automatically distributes processes to the many processors. Each "process" could be the rendering of one full image, a few images, or even a sub-section (or tile) of an image. The software is typically a client–server package that facilitates communication between the processors and the queue manager, although some queues have no central manager. Some common features of queue managers are: re-prioritization of the queue, management of software licenses, and algorithms to best optimize throughput based on various types of hardware in the farm. Software licensing handled by a queue manager might involve dynamic allocation of licenses to available CPUs or even cores within CPUs. A tongue-in-cheek job title for systems engineers who work primarily in the maintenance and monitoring of a render farm is a render wrangler to further the "farm" theme. This job title can be seen in film credits.

Beyond on-site render farms, cloud-based render farm options have been facilitated by the rise of high-speed Internet access. Many cloud computing services, including some dedicated to rendering, offer to render farm services that bill only for processor time used. Understanding the cost or processing time required to complete rendering is unpredictable so render farms bills using GHz per hour. Those considering outsourcing their renders to a farm or to the cloud can do a number of things to improve their predictions and reduce their costs. [3] [4] These services eliminate the need for a customer to build and maintain their own rendering solution. Another phenomenon is collaborative rendering, in which users join a network of animators who contribute their processing power to the group. However, this has technological and security limitations. Some cloud rendering farms have been developed over a long period of time and are TPN certified, which is a relatively authoritative certification in terms of security performance. [5]

Cloud-based render farms

Cloud-based render farms leverage the scalability and flexibility of cloud computing to offer on-demand rendering services, allowing users to distribute tasks across a vast network of virtualized servers.

A graphic illustrating the Cloud-based render farm pipeline from file transference to the downloading of the rendered frames. RenderFarmPipeline.png
A graphic illustrating the Cloud-based render farm pipeline from file transference to the downloading of the rendered frames.

This approach provides significant advantages, such as the ability to scale resources dynamically, cost efficiency through a pay-as-you-go model, and accessibility from any location with an internet connection. These services integrate seamlessly with existing production pipelines, supporting various 3D software and rendering engines, and are increasingly favored for their ability to handle complex projects quickly without the need for expensive on-site hardware.

However, cloud-based render farms also present challenges, including the time required to upload large files, potential cost escalation for extensive projects, and dependency on reliable internet connectivity. Security remains a critical concern, with reputable providers offering robust measures to protect intellectual property. Despite these challenges, cloud-based rendering is becoming a vital tool in industries like film and gaming, offering a flexible and powerful alternative to traditional render farms. [6]

See also

Related Research Articles

<span class="mw-page-title-main">Rendering (computer graphics)</span> Process of generating an image from a model

Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as a rendering. Multiple models can be defined in a scene file containing objects in a strictly defined language or data structure. The scene file contains geometry, viewpoint, textures, lighting, and shading information describing the virtual scene. The data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file. The term "rendering" is analogous to the concept of an artist's impression of a scene. The term "rendering" is also used to describe the process of calculating effects in a video editing program to produce the final video output.

<span class="mw-page-title-main">Cache (computing)</span> Additional storage that enables faster access to main storage

In computing, a cache is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store; thus, the more requests that can be served from the cache, the faster the system performs.

<span class="mw-page-title-main">Thin client</span> Non-powerful computer optimized for remote server access

In computer networking, a thin client, sometimes called slim client or lean client, is a simple (low-performance) computer that has been optimized for establishing a remote connection with a server-based computing environment. They are sometimes known as network computers, or in their simplest form as zero clients. The server does most of the work, which can include launching software programs, performing calculations, and storing data. This contrasts with a rich client or a conventional personal computer; the former is also intended for working in a client–server model but has significant local processing power, while the latter aims to perform its function mostly locally.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

<span class="mw-page-title-main">Network interface controller</span> Hardware component that connects a computer to a network

A network interface controller is a computer hardware component that connects a computer to a computer network.

<span class="mw-page-title-main">Electric Sheep</span> Volunteer computing screensaver

Electric Sheep is a volunteer computing project for animating and evolving fractal flames, which are in turn distributed to the networked computers, which display them as a screensaver.

<span class="mw-page-title-main">Network-attached storage</span> Computer data storage server

Network-attached storage (NAS) is a file-level computer data storage server connected to a computer network providing data access to a heterogeneous group of clients. The term "NAS" can refer to both the technology and systems involved, or a specialized device built for such functionality.

<span class="mw-page-title-main">Thread pool</span> Software design pattern

In computer programming, a thread pool is a software design pattern for achieving concurrency of execution in a computer program. Often also called a replicated workers or worker-crew model, a thread pool maintains multiple threads waiting for tasks to be allocated for concurrent execution by the supervising program. By maintaining a pool of threads, the model increases performance and avoids latency in execution due to frequent creation and destruction of threads for short-lived tasks. The number of available threads is tuned to the computing resources available to the program, such as a parallel task queue after completion of execution.

Parallel rendering is the application of parallel programming to the computational domain of computer graphics. Rendering graphics can require massive computational resources for complex scenes that arise in scientific visualization, medical visualization, CAD applications, and virtual reality. Recent research has also suggested that parallel rendering can be applied to mobile gaming to decrease power consumption and increase graphical fidelity. Rendering is an embarrassingly parallel workload in multiple domains and thus has been the subject of much research.

<span class="mw-page-title-main">Diskless node</span> Computer workstation operated without disk drives

A diskless node is a workstation or personal computer without disk drives, which employs network booting to load its operating system from a server.

<span class="mw-page-title-main">Big and Ugly Rendering Project</span> BOINC based volunteer computing project for rendering videos

Big and Ugly Rendering Project (BURP) is a non-commercial volunteer computing project using the BOINC framework for the rendering of 3D graphics that has been in hibernation as of 2020. The project website currently shows the status as "extended maintenance" until 2027.

Utility computing, or computer utility, is a service provisioning model in which a service provider makes computing resources and infrastructure management available to the customer as needed, and charges them for specific usage rather than a flat rate. Like other types of on-demand computing, the utility model seeks to maximize the efficient use of resources and/or minimize associated costs. Utility is the packaging of system resources, such as computation, storage and services, as a metered service. This model has the advantage of a low or no initial cost to acquire computer resources; instead, resources are essentially rented.

A job scheduler is a computer application for controlling unattended background program execution of jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though traditional job and batch are distinguished and contrasted; see that page for details. Other synonyms include batch system, distributed resource management system (DRMS), distributed resource manager (DRM), and, commonly today, workload automation (WLA). The data structure of jobs to run is known as the job queue.

Software multitenancy is a software architecture in which a single instance of software runs on a server and serves multiple tenants. Systems designed in such manner are "shared". A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance—including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants.

3Delight is a 3D computer graphics software that runs on Microsoft Windows, macOS and Linux. Developed by Illumination Research, it is both a photorealistic and NPR path tracing offline renderer based on its NSI API scene description and on Open_Shading_Language for shading. It has been used to render full CGI animation and VFX for numerous feature films. It comes with supported, open source plug-in integrations for several DCC applications, such as Autodesk Maya, Houdini, Cinema4D, Katana, OpenUSD Hydra, and a democratic free license that allows for commercial use. It also provides a fully distributed cloud rendering service called 3Delight Cloud.

Sun Cloud was an on-demand cloud computing service operated by Sun Microsystems prior to Sun's acquisition by Oracle Corporation. The Sun Cloud Compute Utility provided access to a substantial computing resource over the Internet for US$1 per CPU-hour. It was launched as Sun Grid in March 2006—the same month Amazon Web Services began offering their first IT infrastructure services. It was based on and supported open source technologies such as Solaris 10, Sun Grid Engine, and the Java platform.

<span class="mw-page-title-main">Virtualization</span> Methods for dividing computing resources

In computing, virtualization (v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.

<span class="mw-page-title-main">Computer cluster</span> Set of computers configured in a distributed computing system

A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newest manifestation of cluster computing is cloud computing.

Computation offloading is the transfer of resource intensive computational tasks to a separate processor, such as a hardware accelerator, or an external platform, such as a cluster, grid, or a cloud. Offloading to a coprocessor can be used to accelerate applications including: image rendering and mathematical calculations. Offloading computing to an external platform over a network can provide computing power and overcome hardware limitations of a device, such as limited computational power, storage, and energy.

Visual Cloud is the implementation of visual computing applications that rely on cloud computing architectures, cloud scale processing and storage, and ubiquitous broadband connectivity between connected devices, network edge devices and cloud data centers. It is a model for providing visual computing services to consumers and business users, while allowing service providers to realize the general benefits of cloud computing, such as low cost, elastic scalability, and high availability while providing optimized infrastructure for visual computing application requirements.

References

  1. ""renderwall" definition from Double-Tongued Dictionary". 28 October 2004.
  2. Flavell, Lance (2011). Beginning Blender: Open Source 3D Modeling, Animation, and Game Design. Apress. p. 374. ISBN   9781430231271 . Retrieved 24 September 2017.
  3. "How render farm pricing actually works". GarageFarm. 2021-10-24. Retrieved 2021-10-24.
  4. "How Blender Render Farms Save Time and Money". rentaflop. Retrieved 31 May 2023.
  5. "TPN Homepage".
  6. "Garage Farm Render Farm".