Opened 8 years ago

Last modified 8 years ago

#57 new defect

holdingpattern should not be a required key

Reported by: Ian Hinder Owned by: mthomas
Priority: minor Milestone:
Component: SimFactory Version:
Keywords: Cc:


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.

Attachments (0)

Change History (3)

comment:1 Changed 8 years ago by Erik Schnetter

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.

comment:2 Changed 8 years ago by Ian Hinder

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).

comment:3 Changed 8 years ago by mthomas

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!

Modify Ticket

Change Properties
Set your email in Preferences
as new The owner will remain mthomas.
Next status will be 'review'.
as The resolution will be set.
to The owner will be changed from mthomas to the specified user.
Next status will be 'confirmed'.
The owner will be changed from mthomas to anonymous.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.