# Techila Grid

The Techila Distributed Computing Engine (earlier known as Techila Grid) is a commercial grid computing software product. Techila Distributed Computing Engine is developed and licensed by Techila Technologies Ltd, a privately held company headquartered in Tampere, Finland. The product is also available as an on-demand solution in Google Cloud Launcher, the online marketplace created and operated by Google.
According to IDC, Techila enables organizations to create HPC infrastructure without the capital investments and operating expenses required by new HPC hardware.

## Product features

Techila Distributed Computing Engine is a distributed computing middleware and management solution, which can be used to access and manage on-premises and cloud IT resources for various high-performance computing (HPC) uses, including high-throughput computing (HTC) scenarios. It creates a scalable computing service and execution environment that can also support applications that are deployed within production environments.
The technology of Techila Distributed Computing Engine is built on an autonomic computing architecture that is patented by Techila Technologies. This has facilitated the development of features such as automated system management and fault tolerance, which can simplify the deployment, use, and administration of large-scale distributed computing systems.

## Architecture
### Techila Server

Techila Server is a Java-based software product, which is designed to optimize the performance of a Techila Distributed Computing Engine environment and the jobs in it. The optimization done by Techila Server supports large jobs, and can also make the system suitable for running small computational jobs. The performance of Techila Distributed Computing Engine in different scenarios was evaluated in a thesis at the Tampere University of Technology.
Originally, the Techila Server was delivered as an embedded appliance. The embedded appliance product was discontinued in 2012. Currently, Techila Server is delivered either as a virtual appliance or using cloud-specific deployment tools.

### Techila Worker

Techila Worker is the software agent that must be installed on each computer that will participate in a Techila Distributed Computing Engine environment. The computers can be physical, or they can be virtualized computers running on a hypervisor or in a cloud virtual machine. Techila Distributed Computing Engine supports following public cloud services: Microsoft Azure, Amazon ec2 and Google Compute Engine. Once the Techila Worker software is installed on a computer, it will authenticate the computer to the Techila Server using a certificate, and the system will use self-management to automatically configure the computer to run jobs received from the Techila Server.
Techila Worker is a Java-based client middleware component that can be run on Microsoft Windows or Linux. Because of this, the client computers participating in the Techila Distributed Computing Engine system can have different hardware and software platforms. Techila Worker software runs on the lowest possible priority on the computer. The Techila Worker is also interoperable with batch-queuing systems, like the SLURM, TORQUE, or Oracle Grid Engine (previously known as Sun Grid Engine, SGE). This interoperability allows existing HPC users to use their existing infrastructures as a part of a Techila Distributed Computing Engine system without the Techila Worker interfering with the other system.

### Techila SDK

Techila SDK (earlier known as Techila Grid Management Kit or Techila GMK) is a library of software components that connect applications to the Techila Distributed Computing Engine environment. The SDK includes plug-ins for many commonly used research and development tools and languages, such as MATLAB, R, Python, Perl, Java, C#/ .NET C/ C++, FORTRAN, and Command-line interface script. The applications that have been developed using application programming interfaces in the Techila SDK can also be deployed within production environments and run as a service in a SOA environment. Techila SDK supports both Windows and Linux operating systems.

### Administrator User Interface

A web-based Administrator User Interface provides administrators an interface to the Techila Server. The Administrator User Interface allows monitoring system activity, view and control job execution, execution policy, monitor and control Techila Workers and Techila Worker Groups, control security settings, and manage users.

## History

The motivation for Techila Distributed Computing Engine was to simplify grid computing, enabling fast simulations, and analyses without the complexity associated with traditional high-performance computing systems.
The security of the Techila Distributed Computing Engine was evaluated by Nixu Ltd in 2008. Following this evaluation, the technology gained acceptance in security-sensitive industries, including Finance and Insurance, Engineering, and Pharmaceuticals.
In 2011, a research team at the University of Helsinki demonstrated the Techila Distributed Computing Engine’s ability to autonomously manage large-scale computing environments, including extensive deployments of Windows Azure cloud instances. The University also showcased how the engine enhances the usability and efficiency of large-scale cluster resources in projects utilizing MATLAB, R, Python, Java, and C/ C++/ C#.
The Techila Distributed Computing Engine system allows computational resources to be organized into device groups, to improve control for organizational, security, compliance, and administrative needs. Despite its capacity for managing large-scale systems such as CSC – IT Center For Science, the engine is equally effective in smaller environments. For instance, the TUTGrid at Tampere University of Technology uses Techila to harness idle capacity from desktop PCs and other computers for scientific computing tasks.