Template of a LEXIS workflow allowing to transfer a dataset from DDI to a Cloud Compute instance on which a computation will be done by a Docker container created from a private image archive stored in DDI:
The Run workflow is:
- getting details on the input dataset (size, locations)
- asking the Dynamic Allocation Module (DAM) to select the best Cloud infrastructure to compute these input data
- transferring the input dataset from DDI to the selected Cloud Staging Area
- transferring the private docker image archive dataset from DDI to the selected Cloud Staging Area
- creating a Cloud Compute instance
- installating and starting Docker
- SSHFS-mounting the staging area directory where the input dataset was staged on this compute instance
- SSHFS-mounting the staging area directory where the private docker image archive dataset was staged on this compute instance
- loading the private docker image from the archive
- executing the Docker container performing a computation on these inputs
- copying computation results to the cloud staging area
- transferring of these results from the cloud staging area to DDI
- replicating these results to other sites if specified
- cleaning up the cloud staging area and releasing the cloud compute instance
The template expects the following input properties (mandatory inputs in bold):
- token: OpenID Connect access token
- project_id: LEXIS project identifier
- computation_dataset_path_input_path: Dataset containing input data
- computation_dataset_path_docker_image_path: Docker image tar archive path in DDI
- computation_container_volumes: List of volumes to mount within the computation container. Use docker CLI-style syntax: /host:/container[:mode]
- Example: map of environment variables expected by the container:
/mnt/lexis_input:/input_dataset/lexis/output:/output
- Example: map of environment variables expected by the container:
- computation_docker_image_name: Name of docker image to load (name:tag)
- computation_ddi_project_path: Path where to transfer the computation results in DDI
- computation_decrypt_dataset_input: Should the input dataset be decrypted
- default:
false
- default:
- computation_uncompress_dataset_input: the input dataset be uncompressed
- default:
false
- default:
- computation_mount_point_input_dataset: Directory on the compute instance where to mount the dataset
- default:
/mnt/lexis_input
- default:
- computation_container_env_vars: Computation container environment variables
- Example:
INPUT_DIR: "/input_dataset"RESULT_DIR: "/output"RESULT_FILE_NAME: "computation_result.txt"
- Example:
- computation_container_published_ports: List of ports to publish from the container to the host. Use docker CLI syntax: 8000, 9000:8000, or 0.0.0.0:9000:8000, where 8000 is a container port, 9000 is a host port, and 0.0.0.0 is a host interface.
- computation_output_directory: Computation output directory
- default:
/lexis/output
- default:
- computation_metadata_dataset_result: Metadata for the computation results dataset to create in DDI
- default:
- creator:
Cloud Computation Private Container worflow
- contributor:
Cloud Computation Private Container worflow
- publisher:
Cloud Computation Private Container worflow
- resourceType:
Dataset - title:
LEXIS Cloud Computation Private Container workflow results
- creator:
- default:
- computation_encrypt_dataset_result: Encrypt the result dataset
- default:
false
- default:
- computation_compress_dataset_result: Compress the result dataset
- default:
false
- default:
- computation_result_dataset_replication_sites: List of sites where the result dataset should be available - WARNING: a replicated dataset can't be deleted - (example of values: it4i, lrz)
- default: []
The following output attribute is provided:
- attribute
destination_pathof componentCloudToDDIJob: the path to the result dataset in DDI