Frequently Asked Questions about the Utilify Platform
Collapse all
What is the the Utilify Platform (UP) and what is it useful for?
The Utilify Platform is a set of tools that consists of a developer framework and an associated runtime to develop distributed/Grid applications using the .NET Framework.
It enables developers to easily create applications that distribute compute intensive portions of the processing as independent tasks to a bunch of computers on a network, so that the overall performance of the application is drastically improved.
Can the framework be used for any sort of application?
No. Typically applications which have compute intensive tasks / processing to do are most suitable candidates that will likely get a benefit from using this framework.
Not all compute intensive applications will be easily parallelisable though, and only applications where tasks can be clearly defined/seperated
into independent units of work operating on its own set of inputs are able to use this framework at this point.
Will the Utilify Framework automatically parallelise my existing application?
No. As of now, we have no way to meaningfully determine units of work to automatically parallelise - for applications written in a general purpose procedural / object-oriented programming language.
In other words, most applications today cannot be parallelised automatically. The developer will have to make modifications to the existing application,
and use the Utilify Framework API to create 'tasks' or 'jobs' that will be distributed, executed and managed on a network of computers.
So, what do I gain by using this framework? How does it help developers create applications?
Like most application frameworks, the Utilify Framework aims to make the developer's life easier. The Utilify Framework does this by providing a set of easy to use APIs that do all the hard work of creating, distributing, executing and monitoring a set of tasks on a set of machines.
Distributed computing in general has a variety of difficult to solve problems - such as network discovery and membership (which nodes are part of the network), communication (how do you efficiently transfer data),
fault tolerance (how do you handle node failures) at a resource level and job scheduling, remote execution, I/O management, and monitoring at the task level.
The Utilify Platform and Framework aim to make many of these tasks transparent to the application developer, freeing them to concentrate on the application logic and getting the most out of their network of machines.
How does the Utilify Platform compare to the Alchemi .NET Grid computing framework?
The Utilify Platform is similar to the Alchemi framework - and in fact is developed by the same team.
When we realised that Alchemi's architecture was inflexible, we set out to re-design it and vastly improve various aspects of the architecture,
to make it more resilient, fault tolerant, extensible and adaptable to different usage scenarios.
Are the Utilify Platform and Utilify Framework two different things?
Yes - and they both work together.
The Utilify Framework consists of the class libraries that implement the Utilify Framework API which developers use to code against.
The Utilify Platform includes the Framework and the runtime components (Manager and Executors), and tools like the Dashboard - and as such the Framework is a part of the Platform.
How do I get started with the Utilify Platform ?
Getting started with the Utilify Platform is very easy:
- Download the Platform components
- Learn how to use the APIs and go through the documentation
- Develop an application using the Utilify Framework API
- Use the free Utilify Management Dashboard tool which is part of the SDK, to launch a grid a specified number of machines
- Configure your application to point to the Utilify Manager running on the grid started in the previous step, and launch your application.
- Post any questions on the user forums
What is the license fee for the Utilify Platform?
At this point, the Utilify Platform is provided under a proprietary
license - however the terms are very fair. There is no license key / activation process. There is no restriction on number of developers / development machines that can use the SDK.
The SDK and tools provided in version 1.0 are free of charge for any purpose including commercial development.
For use in production environments in commercial applications please use the
Utilify Platform for EC2 product.
Where can I find the documentation for the Utilify Platform?
How is the Utilify Platform supported?
At present the product is supported free of charge via the
user forums.
What if my question is not answered here?
Please ask your question in the
user forums and we will answer it. If we find that the same types of questions come up often, we will also post it on this FAQ.