[Users] Enabling CUDA/OpenCL thorns by default in Simfactory?

Frank Loeffler knarf at cct.lsu.edu
Thu May 29 09:55:01 CDT 2014


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://lists.einsteintoolkit.org/pipermail/users/attachments/20140529/4f5e7d16/attachment-0001.bin 


More information about the Users mailing list