Part of this offering is opt-in and once deployed, is responsibility of users to maintain and update (i.e. Execute and Submit nodes). Feel free to ask for feedback in the #peer-support channel on EWC RocketChat.


Introduction

Many problems in Earth Observation and modelling communities require a common processing algorithm independently applied to thousands (or millions!) of bits of input data.  A system to do this with many processing nodes is "High Throughput Computing" (vs "High Performance Computing", which concentrates on running large jobs that will not fit on a single machine on a pool of processing nodes, typically using MPI).

EWC provides a common solution for HTC batch processing, using HTCondor.  The major advantage of this approach is that it provides a centrally-managed system where users can take advantage of a much larger pool of resources than they have themselves.  The resources come from tenants contributing their spare resources for the common good, and additional spare resources from EWC that are also made available for anyone to use. 

The common EWC solution for HTC batch processing service is HTCondor.  HTCondor is a specialized batch system for managing compute-intensive jobs. HTCondor provides a queuing mechanism, scheduling policy, priority scheme, and resource classifications.

Users can submit their compute jobs to HTCondor, HTCondor puts the jobs in a queue, runs them, and then informs the user as to the result.

Of course, any tenant can install their own batch processing systems for their own purposes with their own resources, but will not be able to take advantage of other shared resources in a centrally organised way.


Service Architecture

EWC HTcondor is a managed service. The central manager node is deployed in a tenancy on the EWC. Users can join the existing pool adding compute and submit nodes.

Some features of the HTCondor in EWC:

Maintenance

Centrally Managed Tenancy, easy 'one click' deployment

Deployment 

Multi tenancy

Resource 

Join automatically the main HTCondor Pool, no need for password or any configuration, only choose the plan for the machine your want to add

Usage

Easy 'one click' deployment, simple examples for running a job with docker universe

Network 

VPN, which allows processing nodes in a tenancy to communicate with the scheduler / master nodes

Scheduling

Single schedulers in each tenancy, no possibility to erase other tenancies jobs

User-facing nodes

Execute nodes

  • No access to execute host for containers​
  • No access to other containers running on execute node​
  • Isolated environment for containers​
  • No autoscaling​
  • No NFS

Submit nodes

  • Vanilla (Bash), Docker, and Singularity universes allowed​
  • Only a relevant subset of condor command allowed (condor_submit, condor_status, condor_rm, etc.)
  • Private network in the tenancy enabled​ to allow access to tenancy-internal resources/files
  • Condor transfer mechanism allowed

How to provision Execute nodes or Submit nodes

If provisioning after August of 2026, we recommend deploying based on the community hub, to benefit form upcoming features or fixes.

Deployment based on the EWC Community Hub

Checkout the corresponding Community Hub Items:

If you wish to know how to deploy this and other Items via the EWCCLI, please see EWC User Stories: I want to deploy an Hub Item using the ewccli.

Using HTCondor nodes

Submitting Jobs

  • SSH into your submit node
  • Create a simple job:
# dockertest.sub -- example docker job

universe                = docker
docker_image            = debian
executable              = /bin/cat
arguments               = /etc/hosts
should_transfer_files   = YES
when_to_transfer_output = ON_EXIT
log                     = log/job_$(Process)_sleep.log
output                  = output/job_$(Process)_output.txt
error                   = error/job_$(Process)_errors.txt

request_cpus   = 1
request_memory = 1024M
request_disk   = 10240K

queue 10
  • Use condor_submit dockertest.sub
  • Verify jobs are running, using condor_q command

Checking Jobs Status

  • SSH into your submit node
  • Check if the node appears in the list of execute nodes, running condor_status

Docker universe job in HTCondor

Try this tutorial on how to create a container and push it to a registry using docker. Moreover it provides an example job that can be submitted to HTCondor. If you cannot use public container registry, you can use EUMETSAT - Container Registry for HTC Batch Processing and Kubernetes specifically added for this purpose mainly.

Singularity job in HTCondor

Since May 2025, EWC HTC batch processing introduced the possibility to run singularity jobs. Singularity (https://sylabs.io/singularity/) is a container runtime system popular in scientific and HPC communities. HTCondor can run jobs inside Singularity containers.

Submit nodes created before April 2025, will fail when trying to run singularity jobs. In order to enable running singularity jobs, you need to provision a new submit node.

Try this tutorial example job that can be submitted to HTCondor. 


Additional resources

Full documentation specific to HTCondor can be found on the official documentation website.

Related articles