Opened 4 months ago

Closed 4 months ago

#3416 closed help (answered)

Cylc Broadcast + Remote

Reported by: luciana Owned by: ros
Component: Rose/Cylc Keywords: Broadcast, Remote
Cc: Platform: JASMIN
UM Version:

Description

Hello.

I'm trying to run the example for Cylc Broadcast + Remote in GitHub?, but I'm having problems with the suite.

https://github.com/cylc/cylc-flow/tree/master/tests/functional/broadcast/09-remote

I'm using Cylc om Jasmin, so I'm already having to convert some things for the version on Jasmin. The only way I was able to make this suite run was changing:

—-
platform = {{ environCYLC_TEST_PLATFORM? }}
—-

to

—-
[environment?]

SUITE_OWNER_HOME_DIR_ON_SUITE_HOST = {{ environHOME? }}

—-

Now the suite runs, but I'm not sure about what's actually going on. When I keep CYLC_TEST_PLATFORM (which I'm assuming would be an equivalent suite)m, I have the following error:

—-
UndefinedError?: 'os._Environ object' has no attribute 'CYLC_TEST_PLATFORM'
—-

Can I have some clarifications about this example, please?

Kind regards.

Luciana.

Change History (10)

comment:1 Changed 4 months ago by luciana

I'm sorry for the error in formatting.

platform = {{ environ [ ' CYLC_TEST_PLATFORM ' ] }}

[ [ [ environment ] ] ]

SUITE_OWNER_HOME_DIR_ON_SUITE_HOST = {{environ [ ' HOME ' ] }}

comment:2 Changed 4 months ago by ros

Hi Luciana,

CYLC_TEST_PLATFORM is a Linux environment variable that you need to set before running the suite. I assume, to be the host you wish to run the task on (e.g. export CYLC_TEST_PLATFORM="login.archer.ac.uk").

Regards,
Ros.

comment:3 Changed 4 months ago by luciana

Hi Rosalyn.

The test works now, but I'm still confused. Is it running on Archer? How can I check that? I've tried the log files inside job and suite and they don't mention any connection to Archer. The suite I'm running now (still on Jasmin) is:

—-
[ runtime ]

[ [ t1 ] ]

script = """

cylc broadcast -v -v —debug "${CYLC_SUITE_NAME}" \

-n t2 -s 'script=true'

"""
[ [ [ environment ] ] ]

platform = {{ environ[ 'CYLC_TEST_PLATFORM' ] }}

[ [ t2 ] ]

script = false

—-

I've done another test. I just removed "environment and platform" and then the cylc broadcast work as expected, producing pretty much the same result. So I'm not getting where this example is testing remote access at all. As far as I'm understanding, task t1 should run on Archer and task t2 on Jasmin (with the broadcast modification), but I don't have a clue of how to check if that is really happening.

Because the [remote] in the other thread (without broadcast) is not working with Archer, I'm actually surprised that something similar is working here (by working I mean the suite runs and gets succeed in the end). This is just another reason to believe that it's not actually doing any job remotely. Of course, I also tried to change [ environment ] to [ remote ] (trying to survive with different Cylc syntax), but now it's just like a guessing game for me.

Kind regards.

Luciana.

comment:4 Changed 4 months ago by grenville

Luciana

You should have a cylc-run directory on ARCHER if the task ran there, with the usual log files

Grenville

comment:5 Changed 4 months ago by luciana

Hi Grenville. There is nothing in Archer.

Hi Ros. Can you tell me how the test remote09 is actually testing remote access? What's the purpose of defining 'platform'?

Kind regards.

Luciana.

comment:6 Changed 4 months ago by ros

  • Owner changed from um_support to ros
  • Status changed from new to accepted

Hi Luciana,

I believe the link you have put above to the github repository is looking at the cylc-8 files which is a totally different version of cylc which has not been released yet and uses totally different underlying infrastructure. I read platform = as host = above so didn't register.

In a cylc 7.x suite you need a [[[remote]]] host = section for a task to run on a remote platform. In the cylc-7.8.6 tests directory that we have on pumatest the contents of the 09-remote test suite.rc is as follows:

[cylc]
    UTC mode = True
    [[reference test]]
        required run mode = live
        live mode suite timeout = PT3M

[scheduling]
    initial cycle point=1999
    final cycle point=1999
    [[dependencies]]
        [[[P1Y]]]
            graph="""t1 => t2"""
[runtime]
    [[t1]]
        script = cylc broadcast -v -v --debug "${CYLC_SUITE_NAME}" -n t2 -s 'script=true'
        [[[remote]]]
            host = {{environ["CYLC_TEST_HOST"]}}
    [[t2]]
        script = false

Then you export CYLC_TEST_HOST=login.archer.ac.uk for example, before running the suite and it will pick up the host from there.

Regards,
Ros.

comment:7 Changed 4 months ago by luciana

Dear Ros.

Thank you for the explanation. I believe the folder /apps/jasmin/metomi/cylc-7.8.6/tests is the one you have in mind, right? That's a very good reference for me, thank you so much. I'll play with these tests from now. Just to manage my expectations, according to your previous message, the remote access is not supposed to work now, right? I still need to wait for pumatest and the fixing in archer.

From Puma, I believe the directory I have to consider is /home/fcm/cylc-6.11.4/tests. I'll try these new tests and see if I can make the remote access work from Puma to Jasmin.

BTW, I forgot to ask you something important. The majority of the tests has a .t (env bash) file together with suite.rc. It looks like this file has some environment variables. Do I need to run it before running Cylc? Some suites I tested from Cylc8 worked without directly running the .t file. In fact, for those tests, I got errors when running the .t file, so I just ignore it.

Thank you for your support.

Kind regards.

Luciana.

comment:8 Changed 4 months ago by ros

Hi Luciana,

1)

I believe the folder /apps/jasmin/metomi/cylc-7.8.6/tests is the one you have in mind

Yes that is correct.

2) Remote submission from PUMA → ARCHER. That's correct you'll need to wait for access to pumatest and ARCHER to fix something for me which I hope won't be too long.

3) Remote submission from PUMA → JASMIN. Yes you will need to look at the /home/fcm/cylc-6.11.4/tests until you get access to pumatest. I would suggest just for the example tests to run the remote task on xfer1.jasmin.ac.uk as this doesn't involve the added complication of having to set up tunnelling through the jasmin login nodes to the sci nodes.

You will need to add the following to your ~/.bash_profile to add cylc-6.11.4 to your path on xfer1.jasmin.ac.uk

if [[ $(hostname) = xfer*.jasmin.ac.uk ]]; then
  # Rose/cylc on xfer servers
  export PATH=/home/users/aosprey/software/bin:$PATH
fi

If you still have no luck going from PUMA to JASMIN I would leave it until you get an account on pumatest which will make things easier.

4) The .t files I believe are to do with the test battery which the developers will use to run all the tests during development you can ignore these.

Regards,
Ros.

comment:9 Changed 4 months ago by luciana

Hi Ros.

Still no luck going from Puma to Jasmin. I'm going to focus on the other tests for now. Thanks!

Kind regards.

Luciana.

comment:10 Changed 4 months ago by ros

  • Resolution set to answered
  • Status changed from accepted to closed

Closing this ticket now - superceded by #3426

Note: See TracTickets for help on using tickets.