Giter Site home page Giter Site logo

Comments (5)

agraubert avatar agraubert commented on August 10, 2024

So right now, all jobs on SLURM are indexed using $SLURM_ARRAY_TASK_ID and execute job-specific setup by sourcing {staging_dir}/jobs/$SLURM_ARRAY_TASK_ID/setup.sh. That means one of three things needs to happen to make custom job names work out:

  1. In pipelines with custom names, canine can generate a {staging_dir}/aliases file, with one job alias per line. Jobs can read line $SLURM_ARRAY_TASK_ID to determine their name, then continue setup by running {staging_dir}/jobs/$CANINE_JOB_ALIAS/setup.sh
  2. The jobs directory should jointly encode the task id and custom name (ie: {staging_dir}/jobs/0_foo/) so that jobs can source {staging_dir}/jobs/${SLURM_ARRAY_TASK_ID}_*/setup.sh. This would allow jobs to jump straight to the correct directory, while still keeping them human-readable.
  3. In pipelines with custom names, canine should symlink {staging_dir}/alias/{custom name} to {staging_dir}/jobs/{proper job id}. That way, jobs can continue to launch as normal, and humans can inspect the workspace by browsing the alias directory

At the moment, I'm leaning towards option 2, because it seems like the simplest change to achieve the desired goal. It also avoids any uniqueness requirements because the outputs/ folder could also follow the same id_alias naming scheme.


@hurrialice @julianhess what are your thoughts?

from canine.

hurrialice avatar hurrialice commented on August 10, 2024

I like the first one best - I just want a table to trace my jobs and this does not really need to be reflected in the file structure.

If we will have a table of aliases - is it possible that we combine with #5 ?
A possible table format could be -
<job_id> <custome_name> <job_status>

from canine.

agraubert avatar agraubert commented on August 10, 2024

Okay, so it seems like overall, nobody really needs the jobs/ directory to be labeled with entity names, so here's my compromise:

  1. jobs/ stays numbered by the array task id
  2. Custom aliases are set within setup.sh like other canine variables
  3. The output/ folder will use custom aliases (which requires that the aliases all be unique)
  4. The job alias will be included in the output dataframe from Orchestrator.run_pipeline() a la #5

from canine.

hurrialice avatar hurrialice commented on August 10, 2024

That is beautiful! 👏

from canine.

agraubert avatar agraubert commented on August 10, 2024

closed in 63cc655

from canine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.