|
Using XGE-based distribution, up to a X15 improvement in execution time may be achieved.
The following graph depicts the improvement in build time of a Visual Studio project, as more
Agents are added to the Grid:
Performance-Related Features
XGE technology incorporates a combination of techniques designed to maximize the efficiency of task
distribution over the network. Here are a few examples:
-
File Caching: In order to cut down on network traffic, a file cache is created on
every Agent's file system, storing recently accessed files. Intelligent file swapping,
hard-linking and metadata refresh algorithms are utilized in order to bring file synchronization to a
minimum. File caching is particularly effective when source files used by distributed tasks
are stored on network storage devices, which are typically slower to access in comparison to
local file storage.
-
Real-Time Compression: To further reduce network traffic, data transferred over the
network is compacted using real-time compression/decompression algorithms.
-
Idle CPU Operation: Office workstations are typically used for tasks such as text
editing, surfing the Internet and data-based applications. Since these tasks consume very
little CPU, they make office workstations excellent resources for accelerating CPU-intensive
jobs through network distribution. IncrediBuild achieves this by executing distributed tasks
on workstations using idle CPU cycles, meaning anyone using a workstation practically doesn't
notice when it is being utilized as a computing resource. Installing IncrediBuild Agents on
office workstations thus helps utilize an office's existing hardware while eliminating costs
for dedicated Grid hardware.
-
Adaptive Resource Assignment: Because availability of computers in the Grid constantly
varies, XGE employs adaptive assignment logic that responds to changes in nodes' availability.
As soon as a node's CPU/Network availability falls below a minimum level (as a result of other
activity on that node), it automatically stops participating as a remote resource in the grid,
and any uncompleted tasks being executed on that node are transferred to another, more
available Agent. This behavior improves the distributed job performance while keeping remote
nodes responsive.
-
Multiple CPU/Core Utilization: IncrediBuild Agents can utilize additional processors
and cores whenever available. CPUs/Cores can be used as independent computing resources,
each capable of executing a task in parallel with others. As a result, each computer's
hardware is fully utilized.
-
Task Doubling: This unique feature optimizes performance whenever an Agent executing
a distributed job is left waiting for a single remote Agent to complete a task. As soon as
this state is reached, the node that initiated the distributed job starts executing the
pending task in parallel, "racing" against the remote Agent. As soon as one of the Agents
completes the task, output from that Agent is applied to the distributed job, which can
consequently either complete execution or continue executing any remaining tasks which
depended on the completed task.
|