hpc-intro icon indicating copy to clipboard operation
hpc-intro copied to clipboard

Adopting the Carpentries Workbench...and reducing divergent forks!

Open ocaisa opened this issue 1 year ago • 13 comments
trafficstars

At some point (soon) we will need to adopt the Carpentries Workbench. We've discussed trying to reduce our usage of the snippet libraries as they have proved cumbersome to maintain.

One idea that has been floated is to provide example outputs for different schedulers (probably just SLURM and PBS for now) and use tabs to switch between them (one could probably have a config setting that triggers which is the default?). Tab support in the workbench is a WIP.

We can also use child documents as "hooks" for each episode to allow people to have their own fork without ever having to worry about git conflicts. This would allow people to include arbitrary site specific content on a per-episode basis.

ocaisa avatar Apr 04 '24 14:04 ocaisa

Some references to other work:

There's an issue about templates for snippets that came up at the May 16 HPCC meeting, at the end of which @trhallam (from EPCC) mentions that they have versions of HPC Intro has been ported to the workbench, with snippets. Whether we want to do exactly this, or something like it, or something else remains an open question.

There are a bunch of github repos in the EPCCed project on GitHub, the most recent HPC Intro reflects their Workbench port.

reid-a avatar Jun 20 '24 18:06 reid-a

Hi, thanks for looping me in.

I have experimented with and delivered this carpentry using the new workbench template a few times now (which you have linkted to). FWIW, I don't think it would be easy to teach this set of lessons without the customisation to the location/infrastructure being used for instruction. Thus a slurm or pbs tab wouldn't be helpful, as student at this level expect the examples to work verbatim.

As an example, I taught this class this week using Archer2, which has specific flags and values for the Slurm commands such as the partition names, the qos name and so forth. Archer2 doesn't need you specify the account/project or reservation but a lot of other systems do. Another example, is that different systems have different levels/approaches to authentication, thus connecting to the system is not the same for every cluster.

I don't necessarily think that the current snippets are the best approach, but this ability to customise the carpentry to the teaching system is very important in my opinion.

I have some familiarity with the workbench now, so happy to contribute more if needed.

trhallam avatar Jun 21 '24 12:06 trhallam

Tab support in the workbench is a WIP.

Tabs are now working and I make use of them, particularly when discussing different local systems (mac/linux/windows).

trhallam avatar Jun 21 '24 12:06 trhallam

Hello, author of tabs in the workbench here. I am very interested in snippets/the issue of customisation of commands, setup instructions etc per institution for the Fortran course I'm looking at. I notice in sandpaper issue 81 there is mention of a possible Lua way to add in some customisation I might look at in the next couple of months.

astroDimitrios avatar Jun 21 '24 13:06 astroDimitrios

Hi there, new to HPC carpentries and very interested in a Workbench version of the HPC intro!

For the transition to Workbench, is the next step to try and incorporate UCL snippets into a fork of the Workbench-transitioned EPCCed HPC intro lesson and evaluate whether trhallam's solution (child documents for snippets plus a YAML file for loading snippet into each Rmd) will work and whether the end result seems feasible to current maintainers/instructors? @reid-a @ocaisa @cdkharris @trhallam - If a test of multi-institution snippets sounds like the correct next step, I should have time in October to give it a try if it isn't already on someone's plate.

jlchang avatar Sep 15 '24 15:09 jlchang

@jlchang Perhaps this is something to discuss at the next HPC Carpentry meeting? I have been looking at some work others have started porting the Workbench over to Quarto which has built in support for includes, variables, and conditional content based on metadata. I think this would cover everything in @trhallam's solution.

astroDimitrios avatar Sep 16 '24 10:09 astroDimitrios

Where does Quarto fit into the Workbench ecosystem? Is it an enhancement or replacement for the current Workbench packages?

trhallam avatar Sep 16 '24 12:09 trhallam

@trhallam (I think, currently exploring this based off the work of others in the community) It would combine the custom callout lua from sandpaper and the styling from Varnish into a Quarto extension - so it would be a Workbench (Quarto) version that doesn't rely on/replaces sandpaper, pkgdown, and varnish but would gives us access to all the features present in Quarto.

astroDimitrios avatar Sep 16 '24 13:09 astroDimitrios

@astroDimitrios discussing Quarto vs current Workbench at this week's HPC carpentries meeting and planning next steps sounds great! Which HPC Carpentries meeting do you usually attend (meeting 1 at 13:00 Central European Time or meeting 2 at 17:00 Eastern US Time)? Getting folks interested in a Workbench version of HPC intro onto the same call would be ideal.

jlchang avatar Sep 16 '24 13:09 jlchang

For my own reference, a kind-of-summary of the status of the Carpentries Workbench and Quarto: https://github.com/UCL-ARC/carpentries-quarto/issues/43

ocaisa avatar Sep 16 '24 14:09 ocaisa

@jlchang I normally attend meeting 1 (meeting 2 is 10 pm for me so I could, but would need chocolate to stay awake!).

astroDimitrios avatar Sep 16 '24 14:09 astroDimitrios

@astroDimitrios discussing Quarto vs current Workbench at this week's HPC carpentries meeting and planning next steps sounds great! Which HPC Carpentries meeting do you usually attend (meeting 1 at 13:00 Central European Time or meeting 2 at 17:00 Eastern US Time)? Getting folks interested in a Workbench version of HPC intro onto the same call would be ideal.

I will add it to the agenda, it should go out later today.

reid-a avatar Sep 16 '24 14:09 reid-a

@astroDimitrios I'll plan to attend meeting 1 (I'm an early bird so not a problem!) and I'll add the specific meeting to my mention of interest in discussing Workbench'd HPC shell lesson in #hpc-carpentry.

jlchang avatar Sep 16 '24 14:09 jlchang