holdingpattern should not be a required key

Create issue
Issue #57 new
Ian Hinder created an issue

Currently, the key "holdingpattern" must be provided in all machine definitions. This is not necessary for machines on which you don't have a queuing system, for example a laptop. The key should be optional.


Comments (3)

  1. Erik Schnetter
    • removed comment

    This applies not only to holding pattern, but to all other keys in the "simulation" section as well.

    On the other hand, checking for the presence of keys only when they are required complicates debugging, as e.g. the consistency of keys necessary for mpirun would only be checked once the simulation starts after waiting in the queue. Many keys also have default values, and missing keys are then difficult to detect.

    What we should have instead is a way to specify whether a machine supports building, or running, or archiving, and these keys should then only be required if that is the case. If the machine does not support an activity, an error should be emitted early.

  2. Ian Hinder reporter
    • removed comment

    OK, this seems to be the best solution. What would be a good way to implement it? We could have a key called machine-capabilities which could have any of a set of capabilities such as build, run, archive. What would be a sensible set of capabilities?

    I propose

    machine-capabilities = build run queue archive

    Everywhere that does building probably does running as well. Some machines won't have a queuing system (e.g. laptops) so they shouldn't have the queuing commands (a rudimentary system using "at" could be provided, but in that case, all the keys should be present).

  3. anonymous
    • removed comment

    I'll go ahead and implement this. I'll modify the syntax file to require a machine-capabilities key, and modify all mdb entries with the default "machine-capabilities = build run queue". I'll then pepper throughout the code a function kind of like SimLib.RequireCapability('build') for instance, when sim-build is called. archive will be added when i implement archive mdb entries, which hopefully will be soon!

  4. Log in to comment