sphuber/aiida-shell

How to specify RemoteData as output?

Closed this issue · 2 comments

I want to run multiple consecutive shell jobs on a specific remote computer. The output data files of one job should be the input data files of the next.

I see that specifying a RemoteData as input is possible by specifying it in the nodes-dict. But how to specify the RemoteData as an output? I would like to use RemoteData because the data may be large and I would like to avoid transferring it to the local repository.

The working directory of a job is automatically attached as a RemoteData node using the remote_folder link label. So you should be able to do the following:

results, node = launch_shell_job(
   ...
)

results, node = launch_shell_job(
    ...,
    nodes={
        'remote_previous_job': node.outputs.remote_folder,
    }
)

Note that there currently is a bug in the code that prevents this code from functioning properly as the submission script of the remote folder input are overwriting that of the new jobs script. See #58

I have fixed the problem in https://github.com/sphuber/aiida-shell/tree/feature/058/remote-folder-symlink but it requires a change in aiida-core that is not yet released. So for the time being you would also have to check out the main branch of aiida-core and install that.

It should be released soon in v2.6, which hopefully drops in a few weeks

By the way, questions about usage (both aiida-core and aiida-shell) might be better suited on our Discourse forum: https://aiida.discourse.group/
There are a lot more people active there and this way the questions will also reach more users and can hopefully be useful to them as well.