On Wed, May 28, 2014 at 08:14:35AM -0400, Roland Haas wrote: > This is similar to > simfactories current (it still does that, yes?) behaviour of scanning a > parfile for TerminationTrigger::max_walltime (which I *also* find > questionable but was apparently put in on explicit user request).
I actually find this very useful - but yes, I can understand how this could surprise users - although as long as it works this should be fine. But let's leave this out of the discussion now - as this isn't concerning the thornlist. We should take a step back and think about what it is that we want. The following list is what *I* think would be good. Please comment when this deviates from your opinion. 1) An annotated thornlist should download all thorns in the ET, but has to disable some of them by default because they are not expected to work on all machines. 2) The same thornlist should, if used without Simfactory, produce a working configuration on most machines - without the problematic thorns. 3) The same thornlist should, if used with simfactory, produce a working configuration on any machine simfactory knows about. 3.1) Where possible, some of the disabled thorns should be added to a configuration (enabled), if these are known to work on that machine, and if they are actually present in the source tree. This would make is easy to test all relevant thorns on any machine, without changing the thornlist. 3.2) Simfactory might disable some thorns from a thornlist, if a particular machine is known to have problems with them - even without annotating them in the thornlist. After looking at this, we might want to have two ways to "disable" thorns. One would disable them for good, turning the line into a comment and nothing would change it. The other might be used to enable thorns by simfactory. Examples here are "if cuda is suggested on a given machine, enable a list of thorns that can use it if they are present". In this sense, it would be nice to not say "enable thorns x,y, and z on machine X", but "enable thorns x,y, and z if cuda is available on any particular machine", and whether that is the case would be known by simfactory. So, without thinking about the details of how to implement this, let me give a (not necessarily good) example of how this could look like: #ifdef HAVE_CUDA CactusExamples/HelloWorldCUDA #ifdef HAVE_OPENCL CactusExamples/HelloWorldOpenC #ifdef HAVE_OPENCL CactusExamples/WaveToyOpenCL #ifdef HAVE_OPENCL CactusUtils/OpenCLRunTime #ifdef HAVE_OPENCL ExternalLibraries/OpenCL #ifdef HAVE_OPENCL McLachlan/ML_WaveToy_CL Simfactory could then "define" these on each machine, or not. Frank
signature.asc
Description: Digital signature
_______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users