HQS Tasks

HQS Tasks is a solution to execute scientific software applications on a remote high-performance computing environment, and to control the execution from anywhere, such as your favorite local Python environment.

Providing access to cloud and therefore a virtually unlimited amount and a variety of compute hardware, the user is able to leverage a vast amount of compute resources with almost no additional setup effort.

Every software HQS releases as a task can be executed on the respective computing platform.

About this documentation

This documentation is targeted to developers who want to write new tasks to be deployed to HQS Tasks.

Since this can be done either on a lower or on a higher level, the documentation is divided into the corresponding sections:

  • Python (higher Level; recommended): To write tasks, we recommend developers to utilize a dedicated library for programming languages such as Python which provide an easy to use interface. The library essentially implements the communication aspects on top of the below mentioned CLI, and therefore simplifies the implementation of new tasks significantly.

    Currently, we provide such a library for Python only. This interface is documented in the section Python Interface of this documentation.

  • CLI (low level): Tasks can also be written as a CLI tool. The developer is responsible for implementing the corresponding task CLI using their favorite programming language and toolset. Therefore, an understanding of how CLIs are written and how their basic functions are working is required. Furthermore, knowledge about JSON schemas is required, since that is the fundamental aspect for defining new tasks on the level of CLI.

    This interface and other core concepts which are relevant when writing your tasks on the level of CLI are documented in the section Core Concepts of this documentation.

  • In addition, the documentation explains some tooling for developers in the section Developer Tooling.

We assume the reader has the corresponding understanding of the technologies depending on which interface is to be used. We furthermore assume a basic understanding of HQS Tasks from the users perspective and refer to the HQS Tasks User Documentation.