Skip to content

Target Machines for Executing AL Workflows

ROSE enables the orchestration of ML Surrogate building workflows on diverse computing resources using radical.asyncflow. Below, we will show how you can specify your local computer and remote HPC machine as target resources using the DragonExecutionBackend from RHAPSODY.

Local Computer

For local execution, user can use their desktops, laptops, and their own small clusters to execute their AL workflows as follows:

import os

from concurrent.futures import ProcessPoolExecutor

from radical.asyncflow import WorkflowEngine
from rhapsody.backends import ConcurrentExecutionBackend

from rose.al import SequentialActiveLearner

engine = await ConcurrentExecutionBackend(ProcessPoolExecutor())

asyncflow = await WorkflowEngine.create(engine)

acl = SequentialActiveLearner(asyncflow)

HPC Resources

To execute AL workflows on HPC machines, users must have an active allocation on the target machine and specify their resource requirements to execute their workflows. Remember, ROSE uses DragonExecutionBackend from RHAPSODY (rhapsody-py) which is an interface for multip execution and AI runtime system. For more information on how to access, set up, and execute workflows on HPC machines, refer to the following link ROSE with RHAPSODY on HPC:

Note

For any ROSE script that uses DragonExecutionBackend, user must run the rose_script.py with dragon binary instead of python. Please refer to the following link for more information: use ROSE with RHAPSODY-Dragon on HPC

import os

from radical.asyncflow import WorkflowEngine
from rhapsody.backends import DragonExecutionBackend

from rose.al import SequentialActiveLearner


hpc_engine = await DragonExecutionBackend()

asyncflow = await WorkflowEngine.create(hpc_engine)

acl = SequentialActiveLearner(asyncflow)